线性回归

1.为什么说线性回归中误差是服从均值为0的方差为 σ 2 \color{red}{\sigma^2} σ2的正态(高斯)分布,不是0均值行不行?

正态分布:
f ( x ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) f(x)=\frac{1}{\sqrt{2\pi}\sigma}\exp{\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)} f(x)=2π σ1exp(2σ2(xμ)2)
对于为什么服从正态分布,参见最小二乘法与正态分布;对于“不是0均值行不行”,答案是行。因为在线性回归中即使均值不为0,我们也可以通过最终通过调节偏置来使得均值为0。

2.什么是最小二乘法?

预测值与真实值的算术平均值

3.为什么要用最小二乘法而不是最小四乘法,六乘法?

因为最小二乘法的优化结果,同高斯分布下的极大似然估计结果一样;即最小二乘法是根据基于高斯分布下的极大似然估计推导出来的,而最小四乘法等不能保证这一点。

4.怎么理解似然函数(likelihood function)

统计学中,似然函数是一种关于统计模型参数的函数。给定输出 X X X时,关于参数 θ \theta θ的似然函数 L ( θ ∣ x ) L(\theta|x) L(θx)(在数值上)等于给定参数 θ \theta θ后变量 x x x的概率: L ( θ ∣ x ) = P ( X = x ∣ θ ) L(\theta|x)=P(X=x|\theta) L(θx)=P(X=xθ)

统计学的观点始终是认为样本的出现是基于一个分布的。那么我们去假设这个分布为 f f f,里面有参数 θ \theta θ。对于不同的 θ \theta θ,样本的分布不一样(例如,质地不同的硬币,即使在大样本下也不可能得出正面朝上的概率相同)。 P ( X = x ∣ θ ) P(X=x|θ) P(X=xθ)表示的就是在给定参数 θ \theta θ的情况下, x x x出现的可能性多大。 L ( θ ∣ x ) L(θ|x) L(θx)表示的是在给定样本 x x x的时候,哪个参数 θ \theta θ使得 x x x出现的可能性多大。所以其实这个等式要表示的核心意思都是在给一个 θ \theta θ和一个样本 x x x的时候,整个事件发生的可能性多大。

一句话,对于似然函数就是已知观测结果,但对于不同的分布(不同的参数 θ \theta θ),将使得出现这一结果的概率不同;

举例:

小明从兜里掏出一枚硬币(质地不均)向上抛了10次,其中正面朝上7次,正面朝下3次;但并不知道在大样本下随机一次正面朝上的概率 θ \theta θ。问:出现这一结果的概率?
P = C 10 7 θ 7 ( 1 − θ ) 3 = 120 ⋅ θ 7 ( 1 − θ ) 3 P=C_{10}^{7}\theta^{7}(1-\theta)^{3}=120\cdot\theta^{7}(1-\theta)^{3} P=C107θ7(1θ)3=120θ7(1θ)3

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,500)
y=120*np.power(x,7)*np.power((1-x),3)
plt.scatter(x,y,color='r',linestyle='-',linewidth=0.1)
plt.xlabel(r'$\theta$',fontsize=20)
plt.ylabel('p',fontsize=20)
plt.show()

这里写图片描述

如图,我们可以发现当且仅当 θ = 0.7 \theta=0.7 θ=0.7 时,似然函数取得最大值,即此时情况下事件“正面朝上7次,正面朝下3次”发生的可能性最大,而 θ = 0.7 \theta=0.7 θ=0.7也就是最大似然估计的结果。


线性回归推导:

记样本为 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)),对样本的观测(预测)值记为 y ^ ( i ) = θ T x ( i ) + ϵ ( i ) \hat{y}^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)} y^(i)=θTx(i)+ϵ(i),则有:
y ( i ) = θ T x ( i ) + ϵ ( i ) (01) y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)}\tag{01} y(i)=θTx(i)+ϵ(i)(01)
其中 ϵ ( i ) \epsilon^{(i)} ϵ(i)表示第 i i i个预测值与真实值之间的误差,同时由于误差 ϵ ( i ) \epsilon^{(i)} ϵ(i)服从均值为0的高斯分布,于是有:
p ( ϵ ( i ) ) = 1 2 π σ exp ⁡ ( − ( ϵ ( i ) ) 2 2 σ 2 ) (02) p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}\exp{\left(-\frac{(\epsilon^{(i)})^2}{2\sigma^2}\right)}\tag{02} p(ϵ(i))=2π σ1exp(2σ2(ϵ(i))2)(02)
其中, p ( ϵ ( i ) ) p(\epsilon^{(i)}) p(ϵ(i))是概率密度函数

于是将 ( 1 ) (1) (1)带入 ( 2 ) (2) (2)有:
p ( ϵ ( i ) ) = 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) (03) p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}\exp{\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)}\tag{03} p(ϵ(i))=2π σ1exp(2σ2(y(i)θTx(i))2)(03)
此时请注意看等式 ( 3 ) (3) (3)的右边部分,显然是随机变量 y ( i ) y^{(i)} y(i),服从以 θ T x ( i ) \theta^Tx^{(i)} θTx(i)为均值的正态分布(想想正态分布的表达式),又由于该密度函数与参数 θ , x \theta,x θ,x有关(即随机变量 ( y i ) (y^{i}) (yi) x ( i ) , θ x^{(i)},\theta x(i),θ下的条件分布),于是有:
p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) (04) p(y^{(i)}|x^{(i)};\theta)=\frac{1}{\sqrt{2\pi}\sigma}\exp{\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)}\tag{04} p(y(i)x(i);θ)=2π σ1exp(2σ2(y(i)θTx(i))2)(04)
到目前为止,也就是说此时真实值 y ( i ) y^{(i)} y(i)服从均值为 θ T x ( i ) \theta^Tx^{(i)} θTx(i),方差为 σ 2 \sigma^2 σ2的正态分布。同时,由于 θ T x ( i ) \theta^Tx^{(i)} θTx(i)是依赖于参数 θ \theta θ的变量,那么什么样的一组参数 θ \theta θ能够使得已知的观测值最容易发生呢?此时就要用到极大似然估计来进行参数估计(似然函数的作用就是找到一组参数能够使得随机变量(此处就是 y ( i ) y^{(i)} y(i))出现的可能性最大):
L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) (05) L(\theta)=\prod_{i=1}^m p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)\tag{05} L(θ)=i=1mp(y(i)x(i);θ)=i=1m2π σ1exp(2σ2(y(i)θTx(i))2)(05)
为了便于求解,在等式 ( 05 ) (05) (05)的两边同时取自然对数:
log ⁡ L ( θ ) = log ⁡ { ∏ i = 1 m 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) } = ∑ i = 1 m log ⁡ { 1 2 π σ exp ⁡ ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) } = ∑ i = 1 m { log ⁡ 1 2 π σ − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 } = m ⋅ log ⁡ 1 2 π σ − 1 σ 2 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \begin{aligned} \log L(\theta)&=\log\left\{ \prod_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)\right\}\\[3ex] &=\sum_{i=1}^m\log\left\{\frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right)\right\}\\[3ex] &=\sum_{i=1}^m\left\{\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2}\right\}\\[3ex] &=m\cdot\log\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{\sigma^2}\frac{1}{2}\sum_{i=1}^m\left(y^{(i)}-\theta^Tx^{(i)}\right)^2 \end{aligned} logL(θ)=log{i=1m2π σ1exp(2σ2(y(i)θTx(i))2)}=i=1mlog{2π σ1exp(2σ2(y(i)θTx(i))2)}=i=1m{log2π σ12σ2(y(i)θTx(i))2}=mlog2π σ1σ2121i=1m(y(i)θTx(i))2
由于 max ⁡ L ( θ )    ⟺    max ⁡ log ⁡ L ( θ ) \max L(\theta)\iff\max\log L(\theta) maxL(θ)maxlogL(θ),所以:
max ⁡ log ⁡ L ( θ )    ⟺    min ⁡ 1 σ 2 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2    ⟺    min ⁡ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 \max\log L(\theta)\iff\min \frac{1}{\sigma^2}\frac{1}{2}\sum_{i=1}^m\left(y^{(i)}-\theta^Tx^{(i)}\right)^2\iff\min\frac{1}{2}\sum_{i=1}^m\left(y^{(i)}-\theta^Tx^{(i)}\right)^2 maxlogL(θ)minσ2121i=1m(y(i)θTx(i))2min21i=1m(y(i)θTx(i))2
于是得目标函数:
J ( θ ) = 1 2 m ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 = 1 2 m ∑ i = 1 m ( y ( i ) − W x ( i ) ) 2 \begin{aligned} J(\theta)&=\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-\theta^Tx^{(i)}\right)^2\\[3ex] &=\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-Wx^{(i)}\right)^2 \end{aligned} J(θ)=2m1i=1m(y(i)θTx(i))2=2m1i=1m(y(i)Wx(i))2
矢量化:
J = 0.5 ∗ ( 1 / m ) ∗ n p . s u m ( ( y − n p . d o t ( X , w ) − b ) ∗ ∗ 2 ) J = 0.5 * (1 / m) * np.sum((y - np.dot(X, w) - b) ** 2) J=0.5(1/m)np.sum((ynp.dot(X,w)b)2)
求解梯度

符号说明:
y ( i ) y^{(i)} y(i)表示第 i i i个样本的真实值;
y ^ ( i ) \hat{y}^{(i)} y^(i)表示第 i i i个样本的预测值;
W W W表示权重(列)向量, W j W_j Wj表示其中一个分量;
X X X表示数据集,形状为 m × n m\times n m×n m m m为样本个数, n n n为特征维度;
x ( i ) x^{(i)} x(i)为一个(列)向量,表示第 i i i个样本, x j ( i ) x^{(i)}_j xj(i)为第 j j j维特征
J ( W , b ) = 1 2 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 = 1 2 m ∑ i = 1 m ( y ( i ) − ( W T x ( i ) + b ) ) 2 ∂ J ∂ W j = ∂ ∂ W j 1 2 m ∑ i = 1 m ( y ( i ) − ( W 1 x 1 ( i ) + W 2 x 2 ( i ) ⋯ W n x n ( i ) + b ) ) 2 = 1 m ∑ i = 1 m ( y ( i ) − ( W 1 x 1 ( i ) + W 2 x 2 ( i ) ⋯ W n x n ( i ) + b ) ) ⋅ ( − x j ( i ) ) = 1 m ∑ i = 1 m ( y ( i ) − ( W T x ( i ) + b ) ) ⋅ ( − x j ( i ) ) ∂ J ∂ b = ∂ ∂ b 1 2 m ∑ i = 1 m ( y ( i ) − ( W T x ( i ) + b ) ) 2 = − 1 m ∑ i = 1 m ( y ( i ) − ( W T x ( i ) + b ) ) ∂ J ∂ W = − 1 m n p . d o t ( x . T , ( y − y ^ ) ) ∂ J ∂ b = − 1 m n p . s u m ( y − y ^ ) \begin{aligned} J(W,b)&=\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-\hat{y}^{(i)}\right)^2=\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-(W^Tx^{(i)}+b)\right)^2\\[4ex] \frac{\partial J}{\partial W_j}&=\frac{\partial }{\partial W_j}\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-(W_1x^{(i)}_1+W_2x^{(i)}_2\cdots W_nx^{(i)}_n+b)\right)^2\\[3ex] &=\frac{1}{m}\sum_{i=1}^m\left(y^{(i)}-(W_1x^{(i)}_1+W_2x^{(i)}_2\cdots W_nx^{(i)}_n+b)\right)\cdot(-x_j^{(i)})\\[3ex] &=\frac{1}{m}\sum_{i=1}^m\left(y^{(i)}-(W^Tx^{(i)}+b)\right)\cdot(-x_j^{(i)})\\[4ex] \frac{\partial J}{\partial b}&=\frac{\partial }{\partial b}\frac{1}{2m}\sum_{i=1}^m\left(y^{(i)}-(W^Tx^{(i)}+b)\right)^2\\[3ex] &=-\frac{1}{m}\sum_{i=1}^m\left(y^{(i)}-(W^Tx^{(i)}+b)\right)\\[3ex] \frac{\partial J}{\partial W}&=-\frac{1}{m} np.dot(x.T,(y-\hat{y}))\\[3ex] \frac{\partial J}{\partial b}&=-\frac{1}{m} np.sum(y-\hat{y})\\[3ex] \end{aligned} J(W,b)WjJbJWJbJ=2m1i=1m(y(i)y^(i))2=2m1i=1m(y(i)(WTx(i)+b))2=Wj2m1i=1m(y(i)(W1x1(i)+W2x2(i)Wnxn(i)+b))2=m1i=1m(y(i)(W1x1(i)+W2x2(i)Wnxn(i)+b))(xj(i))=m1i=1m(y(i)(WTx(i)+b))(xj(i))=b2m1i=1m(y(i)(WTx(i)+b))2=m1i=1m(y(i)(WTx(i)+b))=m1np.dot(x.T,(yy^))=m1np.sum(yy^)


5.怎么理解梯度(Gradient and learning rate),为什么沿着梯度的方向就能保证函数的变化率最大?

首先需要明白梯度是一个向量;其次是函数在任意一点,只有沿着梯度的方向才能保证函数值的变化率最大。

我们知道函数 f ( x ) f(x) f(x)在某点( x 0 x_0 x0)的导数值决定了其在该点的变化率,也就是说 ∣ f ′ ( x 0 ) ∣ |f'(x_0)| f(x0)越大,则函数 f ( x ) f(x) f(x) x = x 0 x=x_0 x=x0处的变化速度越快。同时对于高维空间(以三维空间为例)来说,函数 f ( x , y ) f(x,y) f(x,y)在某点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)的方向导数值 ∣ ∂ f ∂ l ⃗ ∣ |\frac{\partial f}{\partial\vec{l}}| l f 的大小还取决于沿着哪个方向求导,也就是说沿着不同的方向,函数 f ( x , y ) f(x,y) f(x,y) ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处的变化率不同。又由于:
∂ f ∂ l ⃗ = { ∂ f ∂ x , ∂ f ∂ y } ⋅ { c o s α , c o s β } = g r a d f ⋅ l 0 ⃗ = ∣ g r a d f ∣ ⋅ ∣ l 0 ⃗ ∣ ⋅ c o s θ = ∣ g r a d f ∣ ⋅ 1 ⋅ c o s θ = ∣ g r a d f ∣ ⋅ c o s θ \begin{aligned} \frac{\partial f}{\partial\vec{l}}&=\{\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\} \cdot\{cos\alpha,cos\beta\}\\ &=gradf\cdot\vec{l^0}\\ &=|gradf|\cdot|\vec{l^0}|\cdot cos\theta\\ &=|gradf|\cdot1\cdot cos\theta\\ &=|gradf|\cdot cos\theta \end{aligned} l f={xf,yf}{cosα,cosβ}=gradfl0 =gradfl0 cosθ=gradf1cosθ=gradfcosθ
因此,当 θ = 0 \theta=0 θ=0是,即 l ⃗ \vec{l} l 与向量(梯度) { ∂ f ∂ x , ∂ f ∂ y } \{\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\} {xf,yf}同向时方向导数取到最大值:
∂ f ∂ l ⃗ = ∣ g r a d f ∣ = ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 \color{red}{\frac{\partial f}{\partial\vec{l}}=|gradf|=\sqrt{(\frac{\partial f}{\partial x})^2+(\frac{\partial f}{\partial y})^2}} l f=gradf=(xf)2+(yf)2

故,沿着梯度的方向才能保证函数值的变化率最大。
参见:方向导数(Directional derivatives)梯度(Gradient vectors)

函数 f ( ⋅ ) f(\cdot) f()的(方向)导数反映的是函数 f ( ⋅ ) f(\cdot) f()在点 P P P处的变化率的大小,即 ∣ f ′ ( ⋅ ) ∣ P ∣ |f'(\cdot)|_P| f()P越大,函数 f ( ⋅ ) f(\cdot) f()在该点的变化率越大。为了更快的优化目标函数,我们需要找到满足 ∣ f ′ ( ⋅ ) ∣ P ∣ |f'(\cdot)|_P| f()P最大时的情况,由梯度计算公式可知,当且仅当方向导数的方向与梯度的方向一致时, ∣ f ′ ( ⋅ ) ∣ P ∣ |f'(\cdot)|_P| f()P能取得最大值。——2019年10月5日更新

6.怎么理解梯度下降算法与学习率(Gradient Descent)?

w = w − α ∂ J ∂ w w=w-\alpha\frac{\partial J}{\partial w} w=wαwJ
梯度下降算法可以看成是空间中的某个点 w w w,每次沿着梯度的反方向走一小步,然后更新 w w w,然后再走一小步,如此往复直到 J ( w ) J(w) J(w)收敛。而学习率 α \alpha α决定的就是在确定方向后每次走多大的“步子”。

7.学习率过大或者过小将会对目标函数产生什么样的影响?

α \alpha α过大可能会导致目标函数震荡不能收敛,太小则可能需要大量的迭代才能收敛,耗费时间。

8.运用梯度下降算法的前提是什么?

目标函数为凸函数(形如 y = x 2 y=x^2 y=x2

9.梯度下降算法是否一定能找到最优解?

对于凸函数而言一定等。对于非凸函数来说,能找到局部最优。

更多内容欢迎扫码关注公众号月来客栈!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值