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=1∏mp(y(i)∣x(i);θ)=i=1∏m2πσ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=1∏m2πσ1exp(−2σ2(y(i)−θTx(i))2)}=i=1∑mlog{2πσ1exp(−2σ2(y(i)−θTx(i))2)}=i=1∑m{log2πσ1−2σ2(y(i)−θTx(i))2}=m⋅log2πσ1−σ2121i=1∑m(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=1∑m(y(i)−θTx(i))2⟺min21i=1∑m(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=1∑m(y(i)−θTx(i))2=2m1i=1∑m(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((y−np.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)∂Wj∂J∂b∂J∂W∂J∂b∂J=2m1i=1∑m(y(i)−y^(i))2=2m1i=1∑m(y(i)−(WTx(i)+b))2=∂Wj∂2m1i=1∑m(y(i)−(W1x1(i)+W2x2(i)⋯Wnxn(i)+b))2=m1i=1∑m(y(i)−(W1x1(i)+W2x2(i)⋯Wnxn(i)+b))⋅(−xj(i))=m1i=1∑m(y(i)−(WTx(i)+b))⋅(−xj(i))=∂b∂2m1i=1∑m(y(i)−(WTx(i)+b))2=−m1i=1∑m(y(i)−(WTx(i)+b))=−m1np.dot(x.T,(y−y^))=−m1np.sum(y−y^)
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={∂x∂f,∂y∂f}⋅{cosα,cosβ}=gradf⋅l0=∣gradf∣⋅∣l0∣⋅cosθ=∣gradf∣⋅1⋅cosθ=∣gradf∣⋅cosθ
因此,当
θ
=
0
\theta=0
θ=0是,即
l
⃗
\vec{l}
l与向量(梯度)
{
∂
f
∂
x
,
∂
f
∂
y
}
\{\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}\}
{∂x∂f,∂y∂f}同向时方向导数取到最大值:
∂
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∣=(∂x∂f)2+(∂y∂f)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−α∂w∂J
梯度下降算法可以看成是空间中的某个点
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.梯度下降算法是否一定能找到最优解?
对于凸函数而言一定等。对于非凸函数来说,能找到局部最优。
更多内容欢迎扫码关注公众号月来客栈!