线性回归

线性模型

基本形式

给定有d个属性描述的示例\(x=(x_1:x_2……x_d)\),其中Xi是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f ( x ) = w 1 x 1 + w 2 x 2 + … … + w d x d + b f(x)=w_1x_1+w_2x_2+……+w_dx_d+b f(x)=w1x1+w2x2++wdxd+b
一般向量形式写成
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b

线性回归

x只有一种属性

我们先考一种最简单的情况,x只有一种属性,即假设函数为
f ( x i ) = w x i + b f(x_i)=wx_i+b f(xi)=wxi+b
选择均方误差作为性能度量,试图使方差最下,即
( w ∗ , b ∗ ) = a r g m i n ( w , b ) = Σ i = 1 m ( f ( x i ) − y i ) 2 (w^*,b^*)=arg min(w,b)=\Sigma^m_{i=1}(f(x_i)-y_i)^2 (w,b)=argmin(w,b)=Σi=1m(f(xi)yi)2
= a r g m i n ( w , b ) Σ i = 1 m ( y i − w x i − b ) 2 =arg min(w,b)\Sigma^m_{i=1}(y_i-wx_i-b)^2 =argmin(w,b)Σi=1m(yiwxib)2
基于均方误差进行模型求解的方法称为最小二乘法,我们将损失函数分别对w和b求导得

x有d个属性

此时我们试图学得
f ( x i ) = w T x i + b m a k e f ( x i ) ≈ y i f(x_i)=w^Tx_i+b \qquad make \qquad f(x_i) \approx y_i f(xi)=wTxi+bmakef(xi)yi
这称为“多元线性回归”

类似的,可以用最小二乘法对w和b进行估计,我们把w和b吸收入向量形式\( \hat w=(w;b) \),相应的把数据集D表示为一个m*(d+1)大小的矩阵X,我们需要求如下式子
w ^ ∗ = a r g m i n ( w ^ ) ( y − X w ^ ) T ( y − X w ^ ) \hat w^*=arg min(\hat w)(y-X \hat w)^T(y-X \hat w) w^=argmin(w^)(yXw^)T(yXw^)
上式对w求导,得到
∂ E w ∂ w = 2 X T ( X w − y ) \frac{ \partial E_w}{\partial w}=2X^T(Xw-y) wEw=2XT(Xwy)

  1. 当\(X^TX\)为满秩矩阵或正定矩阵时,上式为0可得
    w ∗ = ( X T X ) − 1 X T y w^*=(X^TX)^{-1}X^Ty w=(XTX)1XTy
  2. 如果不是,那么可能解出多个w,此时由学习算法的归纳偏好决定,常见的做法是引入正则化

损失函数求解

梯度下降法

假设函数为\(f(x)=\theta x\),损失函数为\(J(\theta)\),要最小化损失函数,则参数更新公式为
θ i = θ i − 1 − η ∂ J ( θ ) ∂ θ \theta_i=\theta_{i-1}-\eta \frac {\partial J(\theta)}{\partial \theta } θi=θi1ηθJ(θ)
不断迭代,直到损失函数值达到一定要求

梯度下降相关理论

在这里插入图片描述
当\(\theta 和 \theta_0 \)相隔很近时,利用泰勒公式可知
f ( θ ) ≈ f ( θ 0 ) + ( θ − θ 0 ) ∗ ∇ f ( θ 0 ) f(\theta)\approx f(\theta_0)+(\theta-\theta_0)*\nabla f(\theta_0) f(θ)f(θ0)+θθ0f(θ0)
其中\(\theta - \theta_0\)是矢量,大小就是梯度下降更新公式的\(\eta\),类似于下山过程中的步长,\(\theta - \theta_0\)的单位向量,我们用v表示,则\(\theta - \theta_0\)可表示为
θ − θ 0 = η v — — ( 1 ) \theta - \theta_0=\eta v ——(1) θθ0=ηv(1)
,重点来了,我们希望每次theta更新,都能让f(theta)变小,就是说希望f(theta)<f(theta 0),则有
f ( θ ) − f ( θ 0 ) ≈ η v ∗ ∇ f ( θ 0 ) &lt; 0 f(\theta)-f(\theta_0)\approx \eta v*\nabla f(\theta_0)&lt;0 f(θ)f(θ0)ηvf(θ0)<0
因为n是标量,一般取正数,可忽略,所以就是后半部分小于0,而v和梯度都是向量,两个向量相乘最小,即两者方向完全相反,即让v是负梯度方向,即
v = − ∇ f ( θ 0 ) ∣ ∣ ∇ f ( θ 0 ) ∣ ∣ v=- \frac{\nabla f(\theta_0)}{||\nabla f(\theta_0)||} v=f(θ0)f(θ0)
代入(1)式可得
θ = θ 0 − η ∇ f ( θ 0 ) ∣ ∣ ∇ f ( θ 0 ) ∣ ∣ \theta=\theta_0 - \eta \frac{\nabla f(\theta_0)}{||\nabla f(\theta_0)||} θ=θ0ηf(θ0)f(θ0)
因为n是标量,所以简化为
θ = θ 0 − η ∇ f ( θ 0 ) \theta=\theta_0-\eta \nabla f(\theta_0) θ=θ0ηf(θ0)

牛顿法

牛顿法也可用来求极值(用来求损失函数的最小值),由于函数求极值的导数为0,故可用牛顿法求导函数的零点,迭代公式
x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) x_{n+1}=x_n-\frac{f&#x27;(x_n)}{f&#x27;&#x27;(x_n)} xn+1=xnf(xn)f(xn)

参考资料

  1. https://mp.weixin.qq.com/s/k26Fm0GL3fdVA9VbQIVAuQ
  2. https://github.com/apachecn/hands_on_Ml_with_Sklearn_and_TF/blob/dev/docs/4.训练模型.md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值