第一周:引言、单变量回归
第 1 章 Introduction
1.1 引言
1.2 什么是机器学习
1.3 监督学习
监督学习指的就是我们给学习算法一个数据集,数据集内包括“正确答案”;
1.3.1 线性回归:
- 本质:推测出这一系列连续值属性;
- 例如:探究房价与建筑面积的关系
1.3.2 分类问题:
- 本质:推测出离散的输出值,如0或1、良性或恶性;
- 例如:根据肿瘤大小判断是否患有乳腺癌
1.4 无监督学习
无监督学习中,数据集中的每个数据点没有明确的输出目标或标签(即没有“答案”),而是通过分析数据的内部结构和模式来进行学习和推断。
1.4.1 聚类
- K-means 聚类
- 层次聚类(Hierarchical Clustering)
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
1.4.2 降维
- 主成分分析(PCA)
第2章 单变量线性回归
2.1 模型表示
- 表达式: h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x) = \theta_0 + \theta_1 x hθ(x)=θ0+θ1x
- 因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
2.2 代价函数
- 定义: 模型所预测的值与训练集中实际值之间的差距
- 表达式:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left(\theta_{0},\theta_{1}\right)=\frac{1}{2m}\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}
J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))2
- 直观展示: 绘制一个等高线图,可以看出在三维空间内存在一个使得
J
(
θ
0
,
θ
1
)
J(\theta_0, \theta_1)
J(θ0,θ1)最小的点。
因此,我们真正需要的是一个有效的算法,能够自动找出使得代价函数 J J J最小的参数 θ 0 \theta_0 θ0和 θ 1 \theta_1 θ1来。梯度下降算法应运而生。
2.3 代价函数的直观理解I
2.4 代价函数的直观理解II
2.5 梯度下降
2.5.1. 基本思想
开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合
(
θ
0
,
θ
1
,
.
.
.
.
.
.
.
,
θ
n
)
(\theta_0, \theta_1,....... ,\theta_n)
(θ0,θ1,.......,θn)。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
2.5.2. 计算过程
梯度下降是一个用来求函数最小值的算法,批量梯度下降算法的公式为:
Repeat until Convergence {
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
(
f
o
r
j
=
0
a
n
d
j
=
1
)
\theta_j := \theta_j - \alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)\quad(for\ j=0\ and\ j=1)
θj:=θj−α∂θj∂J(θ0,θ1)(for j=0 and j=1)
}
- 含义: 对于模型中的两个参数w和b(这里表示为 θ 0 \theta_0 θ0和 θ 1 \theta_1 θ1),将等式右边的值赋给左边,不断迭代,直到某次赋值后等式两边几乎相等时停止;
- 偏导决定了我们该往什么方向迈出babystep;
- α \alpha α 是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大;
-
α
\alpha
α的大小有讲究: 批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
- a 太小,迭代过程会很慢,它会需要很多步才能到达全局最低点;
- a 太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点。
结合梯度下降法,以及平方代价函数,我们会得出第一个机器学习算法,即线性回归算法。
2.5.3. 同时更新
对于w和b的更新是同时的。 即使更新完w,更新b的时候,代入偏导的w也应该是更新前的w而非更新后的,注意下例中二者的区别。同时更新的意义在于在原地寻找最陡的下坡方向。
2.5.4. 直观理解
假设我们控制b不变,J仅仅是w的函数。在J(w)关于w的图像熵,当J(w)处在最低点的右边时,偏导为正。那么根据我们的公式,w会变小,如此迭代,直到得到最低点的w;反之亦然。
2.6 梯度下降的线性回归
在以前的视频中我们谈到关于梯度下降算法,梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。在这段视频中,我们要将梯度下降和代价函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里。
梯度下降算法和线性回归算法比较如图:
对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数。
代价函数:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left(\theta_{0},\theta_{1}\right)=\frac{1}{2m}\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}
J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))2
求导:
∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)=\frac{\partial}{\partial\theta_j}\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2 ∂θj∂J(θ0,θ1)=∂θj∂2m1∑i=1m(hθ(x(i))−y(i))2
j = 0 j=0 j=0时: ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}) ∂θ0∂J(θ0,θ1)=m1∑i=1m(hθ(x(i))−y(i))
j = 1 j=1 j=1时: ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) ) \frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^{m}((h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)}) ∂θ1∂J(θ0,θ1)=m1∑i=1m((hθ(x(i))−y(i))⋅x(i))
则算法改写成:
Repeat until Convergence{
θ 0 = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) \theta_0=\theta_0-a\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)}) θ0=θ0−am1∑i=1m(hθ(x(i))−y(i))
θ
1
=
θ
1
−
a
1
m
∑
i
=
1
m
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
(
i
)
)
\theta_1=\theta_1-a\frac{1}{m}\sum_{i=1}^{m}((h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)})
θ1=θ1−am1∑i=1m((hθ(x(i))−y(i))⋅x(i))
}