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

Posted 一只特立独行的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个线性函数的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))
然后在合适的学习率下进行大量的学习,函数就会慢慢逼近最优解。
这个就是使用线性函数拟合的思路,如果增加参数,增加阶数等等,模型拟合的情况就会变得更复杂,当然效果也会更好。

以上是关于一个线性函数的regression详细数学推导的主要内容,如果未能解决你的问题,请参考以下文章

支持向量机(SVM)之数学公式详细推导

线性回归(Linear Regression)均方误差损失函数最小化时关于参数theta的解析解的推导(手写)

详细推导线性回归

逻辑回归模型 Logistic Regression 详细推导 (含 Numpy 与PyTorch 实现)

详解线性分类-逻辑回归(Logistic Regression)白板推导系列笔记

logistic Regression