吴恩达机器学习系列课程

Jason Ma

点击查看【bilibili】

1-2 什么是机器学习

image.png
机器学习(Machine Learning)一个适当的学习问题定义如下:计算机程序从经验 E 中学习解决一些任务 T,并有性能指标 P,T 的性能 P 随着 E 的增长而提高。

机器学习算法:

  • 监督(Supervised)学习
  • 非监督学习
  • 半监督学习
  • ……

Others:强化(Reinforcement)学习,推荐(Recommender)系统

不同的算法适合解决不同类型的问题,本课程会大量教你如何运用这些算法工具解决实际问题

1-3 监督学习

image.png
监督学习指已给出正确的数据集,需要机器学习推测出更多正确的数据

对于该例子更专业的描述:这是一个(统计学)回归(Regression)问题,
预测连续的数值输出(Predict continuous valued output)

image.png
这个例子是分类(Classification)问题,预测一个离散(Discrete)值的输出。
肿瘤只有两种可能,恶性或良心,预测的结果也只有这两种可能。

image.png

1-4 无监督学习

image.pngimage.png
无监督学习尝试在没有标记的数据集里找到某种结构
这个例子中算法可能将数据分成两个簇,这就是聚类(Clustering)算法
比如谷歌新闻每天从无数新闻中将同一事件的新闻聚合到一起

image.png

image.png
此算法将两段不同位置录制的两种声音混在一起的音频,分离成两个单独的音频

2-1 模型描述

image.png
image.png
image.png
训练该例子之前根据问题的特征先设计一个假设(Hypothesis)算法:

这就是一元线性回归 / 单变量(Univariate)线性回归

补充:线性

image.png

2-2 代价函数

image.png
image.png
image.png
训练要随着经验 E 的增长而使性能 P 增长,所以需要一个代价(Cost)函数告诉我们每一次采样的 P,而任务 T 本质上就是找到最优的模型参数 θ0、θ1 使函数与样本之间的误差最小,也就是最小平方差:

m 是输入样本数量,x 是输入(面积),y 是输出(价格)

2-3 代价函数(一)

image.png
image.pngimage.pngimage.png

2-4 代价函数(二)

image.png
image.png
image.pngimage.png
所以我们的目标类似函数拟合,给出数据,选择最优类型的函数,算法自动找出使误差最小的参数。
越接近误差最小值,代价函数的梯度越小,反之越大,所以可以根据梯度调整参数,逼近最小值。

2-5 梯度下降

Gradient Descent
image.png
image.png
image.png
Colon Equal:
例如表示将 b 的值赋给 a,与计算机编程语言中的=同义。
数学公式中的=与编程语言中的==同义,表示等于(判断)

image.png
a 是学习率(Learning Rate),越大学习越快,下山的步长越大
image.pngimage.png
我们通常所说的梯度下降使用的迭代方法是对每一项参数计算完之后暂存,然后一次性同步更新(Simultaneous Update),再进入下一次迭代

2-6 梯度下降知识点总结

image.pngimage.png
image.png
梯度下降在一次次迭代中朝着切线的反方向前进,如果速度 a 太大则可能无法收敛,太小则收敛太慢。

image.png
如果初始参数已经是局部最小值,由于导数约等于零,所以结果不会发生变化。
image.png
当越接近最小值时,梯度会越来越小,自动减小步长,所以随着迭代次数的增多,结果会稳定在最小值

2-7 线性回归的梯度下降

image.png
image.pngimage.png

image.png
image.png
这里将梯度下降的公式展开,分别写出 θ0、θ1 求导后的公式

image.pngimage.png
当代价函数是一个标准的凹函数时,不论初始点在哪总是会收敛到全局最小值,否则会遇到局部最小值的问题。
image.png
这被称为“Batch”梯度下降,Batch 指下降的每一步都要遍历整个数据集(m)
还有其他梯度下降的方法,不用遍历全部数据。
对于线性回归问题,另有正态(正规)方程法(Normal Equations Method),可以直接算出代价函数最小值,但只适合比较小的数据集。

补充:求导

https://zh.wikipedia.org/wiki/%E5%AF%BC%E6%95%B0
点击查看【bilibili】
image.pngimage.png
https://zh.wikipedia.org/wiki/%E5%AF%BC%E6%95%B0%E5%88%97%E8%A1%A8 image.png

补充:复合函数求偏导函数

点击查看【bilibili】

3-5 矩阵乘法特征

矩阵乘法不满足交换律(Commutative Laws),但是满足结合律(Associative Laws)。
略。

3-6 逆和转置

只有方阵(Square Matrix,行数==列数)才有逆矩阵(Inverse)。
奇异(Singular)矩阵或退化(Degenerate)矩阵不存在逆矩阵。

4-1 多元线性回归

image.png
上标加括号的意义是什么呢?
image.png
对于多元线性回归(Multivariate Linear Regression)有大量特征的情况,使用矩阵乘法简化计算,两个矩阵分别填充输入特征(Feature)和系数。

4-2 多元梯度下降法

image.pngimage.png
多元梯度下降:

根据:
假设函数:
代价函数:
计算偏导数得:

image.png
其中 θj 表示第 j 个系数
表示第 i 行第 j 列的输入特征
x 为一整行的输入特征,是一个向量
θ 为每个输入特征对应的系数,也是向量

image.png
是怎么来的:

计算关于偏导数,θ 是系数向量,除了 θj 之外都要看成常数,常数开导为 0,得:

求导得:

带入得:

4-3 多元梯度下降法演练:特征缩放

image.pngimage.pngimage.png

代价函数的等高线图像越接近圆形,梯度下降的速度越快,若输入特征的取值范围相差非常大,则会造成等高线图像非常狭长,不利于梯度下降。
可以用特征缩放(Feature Scaling)均值归一化(Mean Normalization)来使输入特征保持在近似的取值范围:

μ 是 x 的均值,s 是 x 的范围(最大值-最小值)

4-4 多元梯度下降法演练:学习率

image.pngimage.png
如果梯度下降工作正常,那么随着迭代次数的增加,梯度会不断减小,通过画出曲线可以帮助我们判断是否已收敛。也可以通过一些自动化的测试判断是否收敛。
image.png
如果无法收敛,通常是因为学习率太大。学习率足够小的情况下,每一次迭代梯度都会下降,但迭代次数也会相应增加。
image.png

4-5 特征和多项式回归

image.png
输入特征是有潜在优化空间的
image.png
可以将多项式回归转化成线性回归,转换一下输入特征的形式即可
image.png
凭借对函数图像和数据趋势的了解我们可以选择更合适的函数

4-6 正规方程 (区别与迭代方法的直接解法)

image.png
image.png
对于一个简单的 J(θ),可以对其求导,并使其=0 即可求出最小值的位置。
对于参数是向量的 J(θ),对于每一个元素求其偏导函数并=0,最终就可以直接得到最小化代价函数的 θ 值。
image.png
image.png
image.png
将输入特征 X 和输出 y 写成矩阵形式然后矩阵求导做最小二乘法直接得到最小值
image.png
正规方程的问题在于时间复杂度是矩阵维度的立方,当参数上万甚至百万时,计算将会非常耗时。
而梯度下降的时间复杂度只是随维度线性增长

补充:矩阵最小二乘法

弹幕:
XTX 将不一定为方阵且大小不固定的矩阵转换为大小固定为(n+1)*(n+1)的方阵,转换为 Ax=z 的方程组形式
并且这里的 XTX=A 是满秩的,从而可逆,接下来进行对 x 也就是 theat 的求解
最小二乘法的矩阵形式

这个方程是求最佳近似向量,可以参考矩阵论课本

投影矩阵。将 y 向系数矩阵的列空间投影,得到近似解

此处运用了 Moore-Penrose 广义逆矩阵
课件当中,(XTX)^(-1)XT 为 X 的左逆(M-P 广义逆的一种,相对应的还有右逆)
(XTX)^(-1)X 也即左逆存在的条件是 X 列满秩,相对应的 右逆存在的条件为 X 行满秩

点击查看【bilibili】

4-7 正规方程在矩阵不可逆情况下的解决方法

image.png
pinv(Pseudo Inverse)无论 XTX 是否可逆总能给我们想要的 θ 值:
https://www.geeksforgeeks.org/differenece-between-inv-and-pinv-functions-in-matlab/

image.png

X^T*X 出现不可逆的情况原因可能是:

  1. 方阵中的两个维度之间存在线性变换关系,导致方阵不满秩
  2. n(特征数量)相较于 m(样本数量)过大,导致其产生的齐次方程组 Ax=0 不只有零解

方阵线性相关导致不满秩、无解、不可逆的代数、几何解释:
https://www.zhihu.com/question/270393340

5-6 向量化

image.png
一些线性的计算可以可以用向量和矩阵的形式求解
image.png
image.png
遍历求和这种操作尤其适合向量化

6-1 分类

image.png
image.png
对于一个分类问题,比如判断肿瘤是否为恶性,如果使用之前学习的线性回归加阈值的方法可以跑通,但是如果出现几个距离阈值很远的样本,就会使平方差过大导致过拟合。
image.png

Logistic Regression 分类算法

6-2 假设陈述

image.png
假设函数在之前线性回归的基础上加以修改,结果带入 Logistic(与 Sigmoid 同义)函数
image.png
假设函数结果的意义是:肿瘤为恶性(y=1)在特定输入(输入的 Size)下的概率

6-3 决策边界(Decision Boundary)

image.png
还是以 0.5 为阈值将连续的概率划分为离散值
image.png
对假设函数等量代换后得到的 x1+x2=3 这根线就是决策边界
当所有 θ 确定后,假设函数的决策边界也就确定了
image.png

待补充:线性规划

https://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E8%A7%84%E5%88%92

6-4 代价函数

image.png
image.png
之前的代价函数现在成了非凸函数,不利于梯度下降
image.png
这里使用新的代价函数,使用-log 让预测错误时代价无限大,预测正确时代价为 0

待补充:凸优化

机器学习必知必会:凸优化

6-5 简化代价函数与梯度下降

image.png
image.png
image.png
Logistic 回归公式
假设函数:

代价函数:

梯度下降法,对开导后:

假设函数给出的是连续的概率,代价函数使用了极大似然估计

补充:统计学中的极大似然估计

似然估计
https://zh.wikipedia.org/zh-hans/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1
一文搞懂极大似然估计
点击查看【bilibili】

补充:对数

https://zh.wikipedia.org/wiki/%E5%AF%B9%E6%95%B0
image.png
image.png

补充:Logistic 回归代价函数的推导

Logistic 回归代价函数的数学推导及实现_空字符(公众号:月来客栈)的博客-CSDN 博客_logistics 回归的代价函数

补充:Logistic Regression

【机器学习】逻辑回归(非常详细)

6-6 高级优化

image.png
image.png
image.png
通常不需要完全理解高级算法(比如共轭梯度法(Conjugate Gradient))的全部细节,直接调用就可以了,我们需要做的是实现计算

6-7 多元分类:一对多

image.png
image.png
image.png
一对多:针对每个类别分别训练模型,在预测新样本时选择概率最高的模型结果

7-1 过拟合(Over Fitting)问题

image.png
当特征过少,比如用直线拟合房价,就会出现欠拟合(Under Fitting),或称作具有高偏差(High Bias)。
一个优秀的模型应当适当(Just Right)拟合,以增强泛化(Generalize,预测新样本)能力。
但特征过多,就会面临过拟合(Over Fitting),或称作高方差(High Variance),失去预测新样本的能力。
image.png
image.png
为了避免过拟合,我们可以减少特征的数量,这就涉及到特征提取。
理想的特征应该尽可能少,同时尽可能描述样本之间的差异
另一个选择是正则化(Regularization),保留所有特征但是减小 θj

补充:特征提取(Feature Extraction)

机器学习之数据清洗、特征提取与特征选择
https://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%B5%E6%8F%90%E5%8F%96
https://www.bilibili.com/video/BV1734y117nR?p=3
image.png

7-2 正则化(Regularization)代价函数

image.png
image.png
image.png
正则化通过增大 θ 过大的惩罚来缩小 θ,从而简化参数,平滑曲线,消除过拟合
(Lambda)为正则化系数
image.png
正则化系数过大时会导致欠拟合
多重选择会自动选择最合适的正则化系数

7-3 线性回归的正则化

image.png
image.png
对于 θ1-n,在计算代价时加入惩罚,求导并简化后可以直观地看到,相当于每次迭代把 θj 缩小一点点,说的正式一点就是 θj 的平方范数变小了

正规方程的正则化

image.png
image.png
结论是在 XTX 之后加上就可以实现正规方程法的正则化
这还顺便解决了一些不可逆的问题,比如 XTX 不满秩的情况下,加上该矩阵后即满秩

7-4Logistic 回归的正则化

image.png
image.png
不能说很像,只能说一模一样
image.png

注意事项

  • 第五章 Octave 教程、第十八章应用实例,这两章可以不用学,有点过时了。
  • 原版的 octave 作业可以不用做,可以做修改过的 python 版本作业。
  • 如果和吴恩达老师的《深度学习》公开课一起看,第四、五、六周的内容可以直接学习《深度学习》的相关内容。
  • 这个教程建议在三个月内看完,如果有些地方看不懂,没关系,以后用到的时候再回头看看。
  • 这个课程建议配合课程笔记一起看。本站已经提供了笔记下载
  • Title: 吴恩达机器学习系列课程
  • Author: Jason Ma
  • Created at: 2022-03-04 20:51:39
  • Updated at: 2023-06-14 23:26:45
  • Link: https://elysium.jason-ma.com/2022/03/04/Reading/吴恩达机器学习系列课程/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments