一个线性函数的regression详细数学推导

假设前提:所有数据同分布(符合同一函数)
待拟合函数: y ∗ = k x + b y^*=kx+b y=kx+b
误差函数(L2范数): L ( y , y ∗ ) = ( y ∗ − y ) 2 = ( k x + b − y ) 2 L(y,y^*)=(y^*-y)^2=(kx+b-y)^2 L(y,y)=(yy)2=(kx+by)2
a = b − y a=b-y a=by,则函数为:
L ( w ) = k 2 x 2 + 2 a k x + a 2 L(w) = k^2x^2+2akx+a^2 L(w)=k2x2+2akx+a2
L(w)函数最低点为
4 x 2 a 2 − 4 a 2 x 2 4 x 2 = 0 \frac {4x^2a^2-4a^2x^2} {4x^2} =0 4x24x2a24a2x2=0
这种简单函数可以直接算出结果:
w = − 2 a x 2 x 2 = − a x w= - \frac {2ax} {2x^2}=- \frac {a} {x} w=2x22ax=xa
所以,存在一个w使得L函数取到0,此时误差最小。
同理,对b的求法一样
L ( b ) = b 2 + 2 ( k x − y ) b + ( k x − y ) 2 L(b)= b^2+2(kx-y)b+(kx-y)^2 L(b)=b2+2(kxy)b+(kxy)2
L(b)函数最低点为
4 ( k x − y ) 2 − 4 ( k x − y ) 2 4 = 0 \frac {4(kx-y)^2-4(kx-y)^2} {4} =0 44(kxy)24(kxy)2=0
这种简单函数可以直接算出结果:
b = − 2 ( k x − y ) 2 = y − k x b= - \frac {2(kx-y)} {2}=y-kx b=22(kxy)=ykx
但是根据复杂函数,对其极值点做判断往往很难,所以考虑梯度下降。
L关于k的偏导数:
d ( k x + a ) 2 d k = d ( k 2 x 2 + 2 a k x + a 2 ) d k = 2 x 2 k + 2 a x \frac {d(kx+a)^2} {dk} = \frac {d(k^2x^2+2akx+a^2)} {dk}=2x^2k+2ax dkd(kx+a)2=dkd(k2x2+2akx+a2)=2x2k+2ax
同理可得,L关于b的偏导数:
d ( b + k x − y ) 2 d b = 2 b + 2 ( k x − y ) \frac {d(b+kx-y)^2} {db}=2b+2(kx-y) dbd(b+kxy)2=2b+2(kxy)
对于任意一个k,可以求得其偏导数,如果其偏导数>0,则对k更新的公式为(η为学习率) k ∗ = k − η Δ k = k − η ( 2 x 2 k + 2 a x ) k^*=k-ηΔk=k-η(2x^2k+2ax) k=kηΔk=kη(2x2k+2ax)
同理可得b的更新公式为:
k ∗ = k − η ▽ k = k − η ( 2 b + 2 ( k x − y ) ) k^*=k-η▽k=k-η(2b+2(kx-y)) k=kηk=kη(2b+2(kxy))
然后在合适的学习率下进行大量的学习,函数就会慢慢逼近最优解。
这个就是使用线性函数拟合的思路,如果增加参数,增加阶数等等,模型拟合的情况就会变得更复杂,当然效果也会更好。

猜你喜欢

转载自blog.csdn.net/qq_45931661/article/details/124539353