吴恩达机器学习笔记:Week2

2019-02-26  本文已影响0人  Mereder

多变量的线性规划问题

H_\theta(x) = \theta_0+\theta_1 x_1+\theta_2 x_2+...+\theta_n x_n​

理解 Andrew 所说的 x_1^{(4)}​的含义,其中下标表示第几个属性(特征)feature, 然后上标 (4) 是第几个样本。

x_j^{(i)} = value of feature j in the ith training example

x^{(i)} = the input (features) of the ith training example

m = the number of training examples

n = the number of features

H_\theta(x) = \theta^{T} X
\begin{bmatrix} \theta_0 & \theta_1 & \cdots & \theta_n \end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\\cdots\\ x_n \end{bmatrix}

多元变量的梯度下降法

Cost Function 损失函数

J(\theta_0...\theta_n) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2

(损失函数为什么定义为 上述形式 是可以从参数估计,极大似然函数那里推导过来的)

repeat until convergence{
\theta_j := \theta_j −α\frac{1}{m} \sum_{i=1}^{m}(h_θ(x(*i*))−*y*(*i*))⋅*x*(*i*)*j*for j := 0...n

MGradientDscent.png

特征缩放 Feature Scaling

将所有特征都在相同的scall上 会使得梯度下降的速度更快,更少的迭代次数。


(等高线的角度理解,如果两个特征的范围不一,会导致梯度下降非常慢 而且 来回摆动)

如果特征值相差不多还可以

但是如果相差很多,就是特征范围很差,需要调整一下

feature scalling and mean normalization.

特征缩放是输入值的范围

均值归一化包括从输入特征的值中减去输入特征的平均值,从而得到新的输入特征,并且这个新的输入特征的平均值为0

(eg: 1,2,3,4,5 五个数据 avg = 3 操作之后变成 -2,-1,0,1,2 avg_new = 0)

公式:

x_i = \frac{x_i-\mu_i}{S_i}

其中\mu_i 是输入特征的均值,S_i是输入特征的范围

例如,如果x_i房子的价格,100 - 2000为房价范围,均值为1000,则:

x_i = \frac{x_i - 1000}{2000-100} = \frac{x_i - 1000}{1900}

学习率影响

绘制损失函数的梯度下降运行曲线:X轴为迭代次数Y轴为损失函数的最小值,通过观察曲线来决定学习率的情况。

同时观察损失函数的收敛情况

如果损失函数在一次迭代中减少的值 小于 10e-3 基本可以判定损失函数收敛。

特征的重要性

了解数据,根据数据做特征工程

以房子的 长和宽举例子,这两个特征并不是我们需要的,我们需要的是 area 面积,所以将两个原始特征合并成一个新的特征 area

通常定义一个新的特征,可以得到一个更好的模型

(联系Kaggle的ELO比赛,不了解数据的实际意义的时候,就是 将各种数据进行组合 看特征的重要性)

注意:还是要对特征进行归一化,否则影响很大

这种方式选择特性,那么特性缩放就变得非常重要。

eg. if x_1 has range 1 - 1000 then range of x_1^2 becomes 1 - 1000000 and that of x_1^3 becomes 1 - 1000000000

多变量线性回归的标准方程(进行矩阵推导)

NormalEquation.png

\theta = (X^TX)^{-1}X^TY

没必要对数据进行特征缩放 或者 归一化

Gradient Discent Normal Equation
Need to choose alpha No need to choose alpha
Needs many iterations No need to iterate
O(kn^2) O (n^3), need to calculate (X^TX)^{-1}
Works well when n is large Slow if n is very large

标准方程适用于 特征量较小 的 数据。梯度下降适用于 特征量较大的。

标准方程的不可逆变性

奇异矩阵 或者 退化矩阵 不可逆

\theta = (X^TX)^{-1}X^TY 其中的 X^TX 要求是可逆的。

一般造成不可逆的原因有两个:

作业问题

Octave/Matlab 语言 A为矩阵

A^2 是指 A*A

A.^2 是指对 A中的元素 都进行 乘方

上一篇 下一篇

猜你喜欢

热点阅读