吴恩达机器学习课程笔记——第一周

1. 单变量线性回归(Linear Regression with One Variable)

1.1 模型表示

《吴恩达机器学习课程笔记——第一周》 单变量线性回归

像上述公式,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。

例子如下:

《吴恩达机器学习课程笔记——第一周》 回归函数图示

单变量线性方程,就是我们初中就学的一元一次函数。
当然啦,除了这个模型之外,我们还有很多其他的线性模型,比如指数模型、对数模型等等,除了线性模型之外,还有非线性模型,有这么多的模型,其目的就是在于更好的拟合训练集的数据,以使得预测率更高。

以下是对模型的具体定义:

《吴恩达机器学习课程笔记——第一周》 回归图示

2. 代价函数(Cost Function)

代价函数就是为了就是找到目的函数的最优解。

因为在一个训练集中,有无数个模型(一元一次函数),我们需要找到最拟合这个训练集的一个函数,所以就引入了代价函数,用来找到那个最好的模型。

2.1公式表示

《吴恩达机器学习课程笔记——第一周》 代价函数

上述是平方误差代价函数,这也是常用到的代价函数,它通过目的函数跟各个实际值的误差平方建立新的函数。为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。

《吴恩达机器学习课程笔记——第一周》 平方误差代价函数图示

2.2 代价函数的直观理解①

最优解即为代价函数的最小值,根据以上公式多次计算可得到代价函数的图像:

《吴恩达机器学习课程笔记——第一周》 代价函数图示

可以看到该代价函数的确有最小值,这里恰好是横坐标为1的时候。

2.3 代价函数的直观理解②

如果有更多参数,就会更为复杂,两个参数的时候就已经是三维图像了:

《吴恩达机器学习课程笔记——第一周》 代价函数图示2

3. 梯度下降算法(Gradient Descent)

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0,θ1) 的最小值。

个人理解,代价函数是分析模型与实际训练集之间的误差,而梯度下降算法的作用,就是找出那个误差最小的代价函数。

算法思想

《吴恩达机器学习课程笔记——第一周》 算法思想

  • 从参数的某一个(组)值开始,比如从θ0=0和θ1=0开始
  • 保持该(组)值持续减小,如果是一组值就要保证他们同步更新,直到找到我们希望找到的最小值

我们要找到一条最快下山的路径,我们走的每一步大小就是α 。

《吴恩达机器学习课程笔记——第一周》 梯度下降图示1

如果在不同的起点,最后到达的最低点也会不一样。

《吴恩达机器学习课程笔记——第一周》 梯度下降图示2

3.1批量梯度下降(batch gradient descent)

《吴恩达机器学习课程笔记——第一周》 批量梯度下降

  • α:学习速率,决定我们让代价函数下降程度最大的方向迈出的步子有多大
3.1.1 同步更新(Simultaneous update)

在梯度下降算法中,我们需要更新θ0,θ1,实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,你需要同时更新。

《吴恩达机器学习课程笔记——第一周》 同步更新公式

3.1.2 梯度下降算法理解

如果 α 太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果 α 太大,它会导致无法收敛,甚至发散。

《吴恩达机器学习课程笔记——第一周》 对α的理解

解决方法——乘偏导数

《吴恩达机器学习课程笔记——第一周》 批量梯度下降直观图

首先初始化我的梯度下降算法,在那个品红色的点初始化,如果
我更新一步梯度下降,随着我接近最低点,我的导数越来越接近零,所以,梯度下降一步后,新的导数会变小一点点。然后我想再梯度下降一步,在这个绿点,我自然会用一个稍微跟刚才在那个品红点时比,再小一点的一步,到了新的红色点,更接近全局最低点了,因此这点的导数会比在绿点时更小。所 以,我再进行一步梯度下降时,我的导数项是更小的,θ1更新的幅度就会更小。所以随着梯度下降法的运行,你移动的幅度会自动变得越来越小,直到最终移动幅度非常小,你会发现,已经收敛到局部极小值。

3.1.3 线性回归的批量梯度下降

偏导数求解推导过程

《吴恩达机器学习课程笔记——第一周》 偏导数求解推导过程

批量梯度下降方程

通过上面几条公式的整合,最终得出以下公式

《吴恩达机器学习课程笔记——第一周》 线性回归方程

4. 线性代数基础

个人现在认为,线性代数的作用主要是为了方便操作训练集。

4.1 矩阵的定义

横为行,竖为列,表示方法一般是R^(m*n)

《吴恩达机器学习课程笔记——第一周》 矩阵的定义

寻找某个矩阵元素

《吴恩达机器学习课程笔记——第一周》 某个矩阵元素

4.2 矩阵加法(Matrix Addition)

同一个位置的矩阵元素相加,得到新的矩阵

《吴恩达机器学习课程笔记——第一周》 矩阵加法

4.3 矩阵乘法(Scalar Multiplication)

将值与矩阵每个元素相乘,得到新的矩阵

《吴恩达机器学习课程笔记——第一周》 矩阵乘法

4.4 矩阵的组合运算(Combination of Operands)

将矩阵加减法和乘除法结合起来,道理都一样

《吴恩达机器学习课程笔记——第一周》 矩阵的组合运算

4.5 两个矩阵相乘

A矩阵的行 乘 B矩阵的列 得到新矩阵 y 。

《吴恩达机器学习课程笔记——第一周》 两个矩阵相乘1
《吴恩达机器学习课程笔记——第一周》 两个矩阵相乘2

4.6 矩阵应用到梯度下降算法实例

把训练集做成一个矩阵,把线性回归方程做成另外一个矩阵,将两个矩阵相乘,最后就能得出一个新的矩阵。

《吴恩达机器学习课程笔记——第一周》 矩阵应用到梯度下降算法实例图示

4.7 单位矩阵

在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵.它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。除此以外全都为0。

《吴恩达机器学习课程笔记——第一周》 单位矩阵

除0矩阵外,任何矩阵乘单位矩阵都等于它本身。

《吴恩达机器学习课程笔记——第一周》 单位矩阵运算

4.8 逆矩阵

《吴恩达机器学习课程笔记——第一周》 定义

用octave求得逆矩阵:pinv()函数

《吴恩达机器学习课程笔记——第一周》 octave求得逆矩阵

点赞