文章目录
2 单变量线性回归(Linear Regression with One Variable)
2-1 模型表达(Model Representation)
符号定义:
- m m m:训练样本数
- x x x:输入变量 / 特征
- y y y:输出变量 / 目标变量
- ( x , y ) (x, y) (x,y):一个训练样本
- ( x ( i ) , y ( i ) ) (x^{(i)}, y^{(i)}) (x(i),y(i)):第 i i i 个训练样本
-
h
h
h:机器学习算法的输出,一个假设函数,输入
x
x
x,输出
y
y
y 的估计值
- 形式(单变量线性回归):
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_θ(x)=θ_0+θ_1x
hθ(x)=θ0+θ1x
- 简写为: h ( x ) h(x) h(x)
- 形式(单变量线性回归):
h
θ
(
x
)
=
θ
0
+
θ
1
x
h_θ(x)=θ_0+θ_1x
hθ(x)=θ0+θ1x
单变量线性回归,也叫univariate regression
2-2 代价函数(Cost Function)
符号定义:
-
θ
i
θ_i
θi:(模型)参数
- 线性回归:确定参数的值
选取 θ 0 θ_0 θ0, θ 1 θ_1 θ1,使得对于训练样本 ( x , y ) (x, y) (x,y),有 h θ ( x ) h_θ(x) hθ(x)接近 y y y
平方误差代价函数(square error cost function)【垂直距离之和】:
J
(
θ
0
,
θ
1
)
=
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta_0,\theta_1)=\frac{1}{2m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2
J(θ0,θ1)=2m1i=1∑m(hθ(x(i))−y(i))2
线性回归目标:
min
θ
0
,
θ
1
J
(
θ
0
,
θ
1
)
\min_{\theta_0, \theta_1}J(\theta_0,\theta_1)
θ0,θ1minJ(θ0,θ1)
平方误差代价函数是线性回归的常用代价函数
*损失函数≠代价函数
- 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
- 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
- 目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
2-3&2-4 Cost Function intuition I&II
线性回归的代价函数是碗状(bow-shaped)曲面(凸函数,convex function)
为便于分析,使用等高线图(Contour Plots)展示
2-5 梯度下降(Gradient Descent)
用于最小化代价函数J
适用于线性回归和机器学习等问题
outline
- 初始化 θ 0 \theta_0 θ0, θ 1 \theta_1 θ1(一般初始值都为0)
- 一直改变 θ 0 \theta_0 θ0和 θ 1 \theta_1 θ1的值,使 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)变小,直到找到其最小值
梯度下降的特点:初始值的差异可能导致收敛至不同的局部最小值
梯度下降算法:
repeat until convergence {
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)
θj:=θj−α∂θj∂J(θ0,θ1) (for
j
j
j = 0 and
j
j
j = 1)
}
上式中,
α
\alpha
α为学习速率(learning rate)
梯度下降的正确计算方法:同时更新(Simultaneous Update)
先计算参数的更新值(即上式赋值符号右边的部分),所有参数的更新值计算完成后,再更新参数【避免先更新参数后计算梯度值导致错误】
2-6 Gradient Descent intuition
学习率低:收敛速度慢
学习率高:可能错过最低点,或导致无法收敛,甚至发散
即使学习率不变,在接近最低点的过程中,随着偏导数的值的不断变小(即曲线越来越平缓),每一步的参数更新的幅度会越来越小
2-7 Gradient Descent for Linear Regression
线性回归的梯度下降参数更新公式:
θ
0
:
=
θ
0
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
\theta_0:=\theta_0-\alpha\frac{1}{m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})
θ0:=θ0−αm1i=1∑m(hθ(x(i))−y(i))
θ
1
:
=
θ
1
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
(
i
)
\theta_1:=\theta_1-\alpha\frac{1}{m}\displaystyle\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)}
θ1:=θ1−αm1i=1∑m(hθ(x(i))−y(i))⋅x(i)
这里用到的梯度下降是批梯度下降(Batch Gradient Descent):每步更新需要遍历所有训练集
*其他的梯度下降有些只需要使用训练集的子集
求解代价函数J的最小值时,存在其他不需要梯度下降的解法,如正规方程组(normal equations),但正规方程组在面对更大的数据量时不如梯度下降的扩展性好
2-8 What’s next
两个扩展:
- 无需迭代(梯度下降)的min J求解方式
- 更多的特征
- 使用矩阵可以向量可以更方便地表示多维特征及对应的目标变量