监督学习应用(LinearRegression)与梯度下降
变量定义
m = 训练数据数目
x = 输入变量(特征) features
y = 输出变量(目标) target
(x, y) 训练数据
ith
i
t
h
trainning example= {
x(i),y(i)
x
(
i
)
,
y
(
i
)
} 第i份训练数据
算法流程
graph TD
A[Trainning Set]-->B[Learning Algorithm]
B-->C[H, hypothesis 目标函数]
subgraph
D[X_test]-->C
C-->E[Y_test]
end
Linear Regression
假设
x0=1
x
0
=
1
, 则:
线性回归的假设函数为:
于是,我们的目标就是使得:
为了后期的计算方便,我们的目标修改为:
search Algorithm使得 J(θ) J ( θ ) 最小
- 假设,初始化 Θ=0⃗ Θ = 0 →
- 保持改变 Θ Θ ,直到使得 J(θ) J ( θ ) 最小
那么,如何改变 Θ Θ ??
梯度下降算法
为了使得
J(θ)
J
(
θ
)
最小,我们求其偏导,则可以以此确定每一个参数的前进方向。
Θi:=Θi−αddΘiJ(Θi)
Θ
i
:=
Θ
i
−
α
d
d
Θ
i
J
(
Θ
i
)
简单的推导:
从而:
Θi:=Θi−α∑mi=1(hθ(x(i)−y(i)))xi Θ i := Θ i − α ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) x i
其中 α α 是控制“步长”,控制前进的幅度。
如何确定
J(θ)
J
(
θ
)
已经最小?
当
J(θ)
J
(
θ
)
的值变化不大或者足够小的时候,我们可以认为他已经收敛,那么算法停止。
随机梯度下降算法(增量梯度下降算法)
当m很大的时候,梯度下降算法将消耗大量的时间和内存。而增量梯度下降算法则是可以节约大量的时间。
随机梯度算法通常得到一个接近于全局最优解的可行解,但是一般不会差距太大。
一种更加广泛的表达方式
令:
则:
{Θ:=Θ−αΔθJ Θ∈Rn+1 ΔθJ∈Rn+1 { Θ := Θ − α Δ θ J Θ ∈ R n + 1 Δ θ J ∈ R n + 1
设函数
f
f
是一个空间到一维空间的映射:
tr(A)=∑ni=1Aii ,也写作:trA t r ( A ) = ∑ i = 1 n A i i ,也写作: t r A
由以上的定理,我们可以进行以下的推导:
同理,
矩阵转置再相乘: 12(X⋅Θ−y⃗ )T(X⋅Θ−y⃗ )=12∑mi=1(h(x(i))−y(i))2 1 2 ( X ⋅ Θ − y → ) T ( X ⋅ Θ − y → ) = 1 2 ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2
于是:
因为目标是使得 Jθ J θ 最小,则,我们令其最小为0:
参考自【斯坦福】机器学习(Machine Learning)- 吴恩达(Andrew Ng)