- 2.1 Model representation(模型描述)
- 2.2 Cost function(代价函数)
- 2.5 Gradient descent(梯度下降)
- 2.6 Gradient descent intuition(梯度下降总结)
- 2.7 Gradient descent for linear regression(线性回归的梯度下降)
这门课程中的符号表示
m
m
m: Number of training examples(#Training set)
x
′
s
x's
x′s: “input” variable / features
y
′
s
y's
y′s: “output” variable / “target” variable
(
x
,
y
)
(x,y)
(x,y): one training example
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i)): The
i
i
i’th training example of training set
监督学习算法的工作流程:我们向学习算法提供训练集,学习算法的任务是输出一个函数,通常用 h h h表示,称为假设函数(hypothesis)。假设函数的作用是输入 x x x,输出预测值 y y y。
对于单变量线性回归,假设函数如下表示: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x
若 x x x是一个列向量,则 θ 1 \theta_1 θ1是一个行向量,对应多变量线性回归。
2.2 Cost function(代价函数)如何选择参数
θ
0
\theta_0
θ0和
θ
1
\theta_1
θ1?
Idea:选择
θ
0
\theta_0
θ0和
θ
1
\theta_1
θ1,使得对于训练集中的
(
x
,
y
)
(x,y)
(x,y),
h
θ
(
x
)
h_\theta(x)
hθ(x)与
y
y
y接近。
因此,有了如下最小化问题 min θ 0 , θ 1 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \min_{\theta_0,\theta_1} \frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 θ0,θ1min2m1i=1∑m(hθ(x(i))−y(i))2令 J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))2,则上述最小化问题转化为 min J ( θ 0 , θ 1 ) \min J(\theta_0,\theta_1) minJ(θ0,θ1), J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)就是这个线性回归的代价函数。这个代价函数也被称为平方误差(代价)函数。
平方误差函数对于大多数问题,特别是回归问题,都是一个合理的选择。当然也有其它代价函数,只不过在回归问题中常用的是平方误差代价函数。
2.5 Gradient descent(梯度下降)利用梯度下降法最小化代价函数
J
(
θ
0
,
θ
1
)
J(\theta_0,\theta_1)
J(θ0,θ1),参数更新方向为负梯度方向。它不仅被用在线性回归上,还广泛应用于机器学习的众多领域。本节只是以单变量线性回归为例子来进行说明。
迭代以下步骤直到收敛:
θ
j
←
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
)
\theta_j\leftarrow\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)
θj←θj−α∂θj∂J(θ0,θ1) 正确 (同时更新
θ
0
,
θ
1
\theta_0,\theta_1
θ0,θ1):
t
e
m
p
0
←
θ
0
−
α
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
;
t
e
m
p
1
←
θ
1
−
α
∂
∂
θ
1
J
(
θ
0
,
θ
1
)
temp0\leftarrow\theta_0-\alpha\frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1);temp1\leftarrow\theta_1-\alpha\frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1)
temp0←θ0−α∂θ0∂J(θ0,θ1);temp1←θ1−α∂θ1∂J(θ0,θ1)
θ
0
←
t
e
m
p
0
;
θ
1
←
t
e
m
p
1
\theta_0\leftarrow temp0;\theta_1\leftarrow temp1
θ0←temp0;θ1←temp1
梯度下降算法中的下降步长 α \alpha α在机器学习中被称为学习速率(learning rate)。
问题来了: α \alpha α取多大呢?固定值,还是自适应?这就和线搜索一样了。
2.7 Gradient descent for linear regression(线性回归的梯度下降)根据复合函数求导法则,有 ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ; ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ∗ x ( i ) \frac{\partial}{\partial\theta_0}J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)}); \frac{\partial}{\partial\theta_1}J(\theta_0,\theta_1)=\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})*x^{(i)} ∂θ0∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i));∂θ1∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))∗x(i)代入梯度下降算法即可。
梯度下降算法会陷入局部最优,但是对于线性回归就没有这个问题。因为线性回归的代价函数是二次函数,所以是一个凸函数。
对于线性回归问题的最小化代价函数,除了使用梯度下降算法迭代求解,还可以通过最小二乘法(吴的课程中称为正规方程组法)直接求解。梯度下降适用于大规模的数据集。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)