监督学习应用(Linear Regression)与梯度下降

本文介绍了监督学习中线性回归的应用及其实现方法,包括梯度下降算法及其变种——随机梯度下降算法,并详细阐述了这些算法的具体流程与实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监督学习应用(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 , 则:
线性回归的假设函数为:

{h(x)=ni=0θixi=ΘTXn=features  { h ( x ) = ∑ i = 0 n θ i x i = Θ T X n = f e a t u r e s  特征数目

于是,我们的目标就是使得:

i=1m(hθ(x(i))y(i))2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2
最小
为了后期的计算方便,我们的目标修改为:
J(θ)=12i=1m(hθ(x(i))y(i))2 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2

search Algorithm使得 J(θ) J ( θ ) 最小

  1. 假设,初始化 Θ=0⃗  Θ = 0 →
  2. 保持改变 Θ Θ ,直到使得 J(θ) J ( θ ) 最小

那么,如何改变 Θ Θ ??

梯度下降算法

为了使得 J(θ) J ( θ ) 最小,我们求其偏导,则可以以此确定每一个参数的前进方向。
Θi:=ΘiαddΘiJ(Θi) Θ i := Θ i − α d d Θ i J ( Θ i )

简单的推导:

dJ(Θi)dΘidJ(Θi)dΘi=212i=1m(hθ(x(i))y(i))dmi=1(hθ(x(i))y(i))dΘih(x)=i=0nθixi=ΘTX,y is realdmi=1(hθ(x(i))y(i))dΘi=xi=i=1m(hθ(x(i)y(i)))xi d J ( Θ i ) d Θ i = 2 ⋅ 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) d ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) d Θ i ∵ h ( x ) = ∑ i = 0 n θ i x i = Θ T X , y is real ∴ d ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) d Θ i = x i d J ( Θ i ) d Θ i = ∑ i = 1 m ( h θ ( x ( i ) − y ( i ) ) ) x 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很大的时候,梯度下降算法将消耗大量的时间和内存。而增量梯度下降算法则是可以节约大量的时间。

Repeat}{for j=1 to m{for all i Θi:=Θiα(hθ(x(j))y(j))x(j)} R e p e a t { for j=1 to m { for all i  Θ i := Θ i − α ( h θ ( x ( j ) ) − y ( j ) ) x ( j ) } }

随机梯度算法通常得到一个接近于全局最优解的可行解,但是一般不会差距太大。

一种更加广泛的表达方式

令:

ΔθJ=dJdθ0dJdθn Δ θ J = [ d J d θ 0 ⋮ d J d θ n ]

则:
{Θ:=ΘαΔθJ ΘRn+1 ΔθJRn+1 { Θ := Θ − α Δ θ J   Θ ∈ R n + 1   Δ θ J ∈ R n + 1

设函数 f f 是一个m×n空间到一维空间的映射:

f:Rm×nR ,f(A),ARm×n f : R m × n ↦ R  ,则 f ( A ) , A ∈ R m × n

ΔAf(A)=dfdA11dfdAm1dfdA1ndfdAmn Δ A f ( A ) = [ d f d A 11 ⋯ d f d A 1 n ⋮ ⋱ ⋮ d f d A m 1 ⋯ d f d A m n ]

tr(A)=ni=1Aii ,trA t r ( A ) = ∑ i = 1 n A i i  ,也写作: t r A

Facts:trAB=trBAtrABC=trCAB=trBCAf(A)=trABΔAtrAB=BTtrA=trATΔAtrABATC=CAB+CTABT F a c t s : t r A B = t r B A t r A B C = t r C A B = t r B C A f ( A ) = t r A B Δ A t r A B = B T t r A = t r A T Δ A t r A B A T C = C A B + C T A B T

由以上的定理,我们可以进行以下的推导:
XΘ=(x(1))T(x(n))TΘ=x(1)TΘx(n)TΘ=hθ(x(1))hθ(x(m)) X ⋅ Θ = [ ( x ( 1 ) ) T ⋮ ( x ( n ) ) T ] Θ = [ x ( 1 ) T Θ ⋮ x ( n ) T Θ ] = [ h θ ( x ( 1 ) ) ⋮ h θ ( x ( m ) ) ]

同理,
y⃗ =(y(1))(y(n))$,$XΘy⃗ =h(x(1)y(1))h(x(m)y(m)) y → = [ ( y ( 1 ) ) ⋮ ( y ( n ) ) ] $ , 则 : $ X ⋅ Θ − y → = [ h ( x ( 1 ) − y ( 1 ) ) ⋮ h ( x ( m ) − y ( m ) ) ]

矩阵转置再相乘: 12(XΘy⃗ )T(XΘy⃗ )=12mi=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(θ)=Δθ12(XΘy⃗ )T(XΘy⃗ )=12Δθ(ΘTXTXΘΘTXTy⃗ y⃗ TXΘ+y⃗ Ty⃗ )=12Δθtr(ΘTXTXΘΘTXTy⃗ y⃗ TXΘ+y⃗ Ty⃗ )=12Δθ(trΘTXTXΘ2try⃗ TXΘ)=12(XTXΘ+XTXΘXTy⃗ )=XTXΘXTy⃗  Δ θ J ( θ ) = Δ θ 1 2 ( X Θ − y → ) T ( X Θ − y → ) = 1 2 Δ θ ( Θ T X T X Θ − Θ T X T y → − y → T X Θ + y → T y → ) = 1 2 Δ θ t r ( Θ T X T X Θ − Θ T X T y → − y → T X Θ + y → T y → ) = 1 2 Δ θ ( t r Θ T X T X Θ − 2 t r y → T X Θ ) = 1 2 ( X T X Θ + X T X Θ − X T y → ) = X T X Θ − X T y →

因为目标是使得 Jθ J θ 最小,则,我们令其最小为0:
XTXΘΘ=XTy⃗ =XTy⃗ XTX X T X Θ = X T y → Θ = X T y → X T X

参考自【斯坦福】机器学习(Machine Learning)- 吴恩达(Andrew Ng)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值