吴恩达机器学习笔记:Week2

多变量的线性规划问题

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

= value of feature j in the ith training example

= the input (features) of the ith training example

m = the number of training examples

n = the number of features


多元变量的梯度下降法

Cost Function 损失函数

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

repeat until convergence{

吴恩达机器学习笔记:Week2
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)

公式:

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

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

学习率影响

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

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

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

  • 当学习率过大,损失函数会来回摆动,始终收敛不到最优点
  • 学习率过小,收敛速度很慢

特征的重要性

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

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

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

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

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

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

eg. if has range 1 - 1000 then range of becomes 1 - 1000000 and that of becomes 1 - 1000000000

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

吴恩达机器学习笔记:Week2
NormalEquation.png

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

Gradient Discent Normal Equation
Need to choose alpha No need to choose alpha
Needs many iterations No need to iterate
, need to calculate
Works well when n is large Slow if n is very large

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

标准方程的不可逆变性

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

其中的 要求是可逆的。

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

  • 冗余特征,其中两个特征密切相关(即它们是线性相关的)

    eg: size in feet size in meter^2

  • 太多的特性(如m≤n),这时候需要删除一些特征 或者 使用正则化?

作业问题

Octave/Matlab 语言 A为矩阵

A^2 是指 A*A

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