文章目录
第二章 单变量线性回归
2.1 模型描述 Model representation
-
房价模型:已知样本数据集(训练集)中的房子对应的面积和价格,学习任何预测房价(输出一个假设函数 hypothesis)。
监督学习模型,回归模型(预测连续值)
![](https://i-blog.csdnimg.cn/blog_migrate/9309cdc8ebcfe3d1149407d9d64b6c7c.png)
- 定义符号:
1. m m m 表示数据集训练样本集的数量
2. x x x 表示输入变量/特征
3. y y y 表示输出变量/目标
4. ( x , y ) (x,y) (x,y) 表示一个训练样本
5. ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)) 表示特定样本,其中 ⋅ ( i ) \cdot^{(i)} ⋅(i) 表示索引 - 单变量线性回归 Univariate linear Regression:预测线性函数 h ( x ) = θ 0 + θ 1 x h(x)=\theta_0+\theta_1 x h(x)=θ0+θ1x
2.2 代价函数 Cost function
假设函数 Hypothesis: h ( x ) = θ 0 + θ 1 x h(x)=\theta_0+\theta_1 x h(x)=θ0+θ1x
目标:合适的选择模型参数 θ i \theta_i θi
-
解决最小化问题:尽量减少预测价格和实际卖出价格的差的平方和
minimize θ 0 , θ 1 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 \text{minimize }\theta_0,\theta_1\quad \dfrac{1}{2m}\sum\limits_{i=1}^m \left(h(x^{(i)})-y^{(i)}\right)^2 minimize θ0,θ12m1i=1∑m(h(x(i))−y(i))2 -
代价函数 Cost Function(平方误差函数):
-
定义: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 , h ( x ) = θ 0 + θ 1 x J(\theta_0,\theta_1)= \dfrac{1}{2m}\sum\limits_{i=1}^m \left(h(x^{(i)})-y^{(i)}\right)^2,\quad h(x)=\theta_0+\theta_1 x J(θ0,θ1)=2m1i=1∑m(h(x(i))−y(i))2,h(x)=θ0+θ1x
-
使用:
Hypothesis: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1 x hθ(x)=θ0+θ1x
Parameters: θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1
Cost Function: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)= \dfrac{1}{2m}\sum\limits_{i=1}^m \left(h(x^{(i)})-y^{(i)}\right)^2 J(θ0,θ1)=2m1i=1∑m(h(x(i))−y(i))2
Goal: min θ 0 , θ 1 J ( θ 0 , θ 1 ) \min\limits_{\theta_0,\theta_1} J(\theta_0,\theta_1) θ0,θ1minJ(θ0,θ1)
- 首先简化假设函数(使 θ 0 = 0 \theta_0=0 θ0=0): h = θ 1 x h=\theta_1x h=θ1x
- 根据不同斜率 θ 1 \theta_1 θ1,得到 J J J 关于 θ 1 \theta_1 θ1 的图像
-
![](https://i-blog.csdnimg.cn/blog_migrate/1ffffa48ec7e149df6d27e23764b2c35.png)
- 当 θ 0 ≠ 0 \theta_0\ne 0 θ0=0时,可以绘制 J J J 关于 θ 1 \theta_1 θ1 的三维图像(等高图像 Contour Figures)
![](https://i-blog.csdnimg.cn/blog_migrate/3fb31d73f168e62e8ec294be9dd80ebb.png)
2.3 梯度下降 Gradient Descent
目的:最小化函数值
-
定义:反复迭代 θ j \theta_j θj 直到收敛 θ i : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) ( for j = 0 and j = 1 ) \color{red}\theta_i :=\theta_j-\alpha\dfrac{\partial }{\partial \theta_j}J(\theta_0,\theta_1)\qquad (\text{for }j=0\text{ and }j=1) θi:=θj−α∂θj∂J(θ0,θ1)(for j=0 and j=1),其中 α \alpha α 称为学习速率 learning rate,用来控制梯度下降时的迈步大小
: = := := 赋值 Assignment
= = = 判等 Truth Assertion
- 重点:同时更新 simultaneous updates
θ
0
,
θ
1
\theta_0,\theta_1
θ0,θ1
temp0 : = θ 0 − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \text{temp0}:=\theta_0-\alpha\dfrac{\partial }{\partial \theta_j}J(\theta_0,\theta_1) temp0:=θ0−α∂θj∂J(θ0,θ1)
- 重点:同时更新 simultaneous updates
θ
0
,
θ
1
\theta_0,\theta_1
θ0,θ1
-
实例观察更新过程:当只有一个参数 θ 1 \theta_1 θ1 时
-
目标: min θ 1 J ( θ 1 ) , θ 1 ∈ R \min\limits_{\theta_1}J(\theta_1),\quad \theta_1\in R θ1minJ(θ1),θ1∈R
-
更新: θ 1 : = θ 1 − α d d θ 1 J ( θ 1 ) \theta_1:=\theta_1-\alpha\dfrac{d}{d\theta_1}J(\theta_1) θ1:=θ1−αdθ1dJ(θ1)
-
注意:
- 初始 θ 1 \theta_1 θ1 的选择不影响局部结果
- 若 α \alpha α 太小,每一次更新速度太慢;若 α \alpha α 太大,可能导致原理最优点(无法收敛)
-
疑问:若学习速率 α \alpha α 不变,梯度下降法每次步长不变吗,如何保证一定收敛到最优解?
解:由于越靠近最优解, d d θ J ( θ ) \dfrac{d}{d\theta}J(\theta) dθdJ(θ) 会越小。故 α \alpha α 不变时,梯度下降法将自动减小步长。当 θ 1 \theta_1 θ1 为局部最优解时, d d θ J ( θ ) = 0 \dfrac{d}{d\theta}J(\theta)=0 dθdJ(θ)=0 使得 θ 1 \theta_1 θ1 不变
-
![](https://i-blog.csdnimg.cn/blog_migrate/e750537161e1daa91506118a0e038975.png)
2.4 线性回归中的梯度下降法 Gradient descent for linear regression
-
Batch 梯度下降法:每一步下降均遍历整个数据集
-
计算步骤:
-
⨀ \color{red}\bigodot ⨀ 1.计算导数项: ∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j ⋅ 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = ∂ ∂ θ j ⋅ 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) 2 \dfrac{\partial }{\partial \theta_j}J(\theta_0,\theta_1)=\dfrac{\partial }{\partial \theta_j}\cdot\dfrac{1}{2m}\sum\limits_{i=1}^m \left(h_\theta(x^{(i)})-y^{(i)}\right)^2=\dfrac{\partial }{\partial \theta_j}\cdot\dfrac{1}{2m}\sum\limits_{i=1}^m \left(\theta_0+\theta_1x^{(i)}-y^{(i)}\right)^2 ∂θj∂J(θ0,θ1)=∂θj∂⋅2m1i=1∑m(hθ(x(i))−y(i))2=∂θj∂⋅2m1i=1∑m(θ0+θ1x(i)−y(i))2
j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \begin{aligned}&j=0:\dfrac{\partial }{\partial \theta_0}J(\theta_0,\theta_1)=\dfrac{1}{m}\sum\limits_{i=1}^m \left(h_\theta(x^{(i)})-y^{(i)}\right)\\ &j=1:\dfrac{\partial }{\partial \theta_1}J(\theta_0,\theta_1)=\dfrac{1}{m}\sum\limits_{i=1}^m \left(h_\theta(x^{(i)})-y^{(i)}\right)\cdot x^{(i)}\\ \end{aligned} j=0:∂θ0∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))j=1:∂θ1∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))⋅x(i) -
⨀ \color{red}\bigodot ⨀ 2.运用梯度下降法:重复计算直到收敛(一定要同时更新)
θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x ( i ) \begin{aligned}&\theta_0:=\theta_0-\alpha\dfrac{1}{m}\sum\limits_{i=1}^m \left(h_\theta(x^{(i)})-y^{(i)}\right)\\ &\theta_1:=\theta_1-\alpha\dfrac{1}{m}\sum\limits_{i=1}^m \left(h_\theta(x^{(i)})-y^{(i)}\right)\cdot x^{(i)}\\ \end{aligned} θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))θ1:=θ1−αm1i=1∑m(hθ(x(i))−y(i))⋅x(i)
-
-
注意:由于线性回归代价函数的定义,所有代价函数(平方误差函数)均为凸函数 Convex function,可理解为弓形函数 Bow shaped function。于是代价函数只有全局最优解,而不存在错误的局部最优解,因此一定可以运用梯度下降法找到正确答案。
-