以极大似然估计角度推导多元线性回归损失函数
从一元线性回归开始
以一元线性回归为引:
一元线性回归的函数表达式:
y
=
w
x
+
b
+
ε
\mathrm{y}=\mathrm{wx}+\mathrm{b}+\varepsilon
y=wx+b+ε 即待遇测的变量y同输入x大体呈一元线性关系,这里的epsilon表示预测结果与真实值之间存在的误差
多元线性回归
对于多元线性回归,其输入x和输出y则包含有多个变量
多元线性回归函数表达式: (这里假设x是n维的,y是m维的):
y
1
=
w
11
x
1
+
…
+
w
1
n
x
n
+
b
1
+
ε
1
y
2
=
w
21
x
2
+
…
+
w
2
n
x
n
+
b
2
+
ε
2
…
…
y
m
=
w
m
1
x
1
+
…
+
w
m
n
x
n
+
b
m
+
ε
m
\begin{array}{l} \mathrm{y}_{1}=\mathrm{w}_{11} \mathrm{x}_{1}+\ldots+\mathrm{w}_{1 \mathrm{n}} \mathrm{x}_{n}+\mathrm{b}_{1}+\varepsilon_{1} \\ \mathrm{y}_{2}=\mathrm{w}_{21} \mathrm{x}_{2}+\ldots+\mathrm{w}_{2 \mathrm{n}} \mathrm{x}_{n}+\mathrm{b}_{2}+\varepsilon_{2} \\ \ldots \ldots \\ \mathrm{y}_{\mathrm{m}}=\mathrm{w}_{\mathrm{m} 1} \mathrm{x}_{\mathrm{1}}+\ldots+\mathrm{w}_{\mathrm{mn}} \mathrm{x}_{\mathrm{n}}+\mathrm{b}_{\mathrm{m}}+\varepsilon_{\mathrm{m}} \end{array}
y1?=w11?x1?+…+w1n?xn?+b1?+ε1?y2?=w21?x2?+…+w2n?xn?+b2?+ε2?……ym?=wm1?x1?+…+wmn?xn?+bm?+εm?? 如果使用上述连加的表达式,写法虽然直观,但是对于计算机而言这种计算方式实则比较繁琐,在计算的过程中必定要用到循环控制流。而计算机处理循环语句的速度是要远远慢于矩阵运算的。因此多元线性回归公式一般使用矩阵表示更为简洁:
Y
=
W
T
X
+
b
+
ε
\mathbf{Y}=\mathbf{W}^{T} \mathbf{X}+\mathbf{b}+\boldsymbol{\varepsilon}
Y=WTX+b+ε 其中:
W
=
[
w
11
,
?
?
,
w
1
n
?
?
?
w
m
1
,
?
?
,
w
m
n
]
W=\left[\begin{array}{l} w_{11}, \cdots, w_{1 n} \\ \vdots\quad \quad\ddots\quad \vdots \\ w_{m 1}, \cdots, w_{m n} \end{array}\right]
W=????w11?,?,w1n????wm1?,?,wmn??????
Y
=
[
y
1
,
y
2
,
…
,
y
m
]
T
X
=
[
x
1
,
x
2
,
…
,
x
n
]
T
b
=
[
b
1
,
b
2
,
…
,
b
n
]
T
ε
=
[
ε
1
,
ε
2
,
…
,
ε
n
]
T
\begin{aligned} &Y=\left[y_{1}, y_{2}, \ldots, y_{m}\right]^{T} \\ &X=\left[x_{1}, x_{2}, \ldots, x_{n}\right]^{T} \\ &b=\left[b_{1}, b_{2}, \ldots, b_{n}\right]^{T} \\ &\varepsilon=\left[\varepsilon_{1}, \varepsilon_{2}, \ldots, \varepsilon_{n}\right]^{T} \end{aligned}
?Y=[y1?,y2?,…,ym?]TX=[x1?,x2?,…,xn?]Tb=[b1?,b2?,…,bn?]Tε=[ε1?,ε2?,…,εn?]T?
在这里,我们对误差epsilon单独做一个分析,既然是误差,我们就期望其尽量达到最小,针对上式,我们可以将epsilon表示为
ε
=
Y
?
(
W
T
X
+
b
)
ε
=
Y
?
Y
^
\begin{aligned} &\varepsilon=Y-(W^{T} X+b) \\ &\varepsilon=Y-\hat{Y} \end{aligned}
?ε=Y?(WTX+b)ε=Y?Y^? 在这里我们为了使epsilon的形式简洁,经常使用一个小trick,在W矩阵的第一列添加一列w0项,在X向量的第一行添加一个1项,这样w0和1相乘的结果就同样也可表示偏置项b:
W
=
[
w
10
,
w
11
,
?
?
,
w
1
n
?
?
?
w
m
0
,
w
m
1
,
?
?
,
w
m
n
]
X
=
[
1
,
x
1
,
x
2
,
…
,
x
n
]
T
\begin{aligned} &W=\left[\begin{array}{l} w_{10}, w_{11}, \cdots, w_{1 n} \\ \vdots_{}\quad\quad\quad \ddots_{}\quad\quad\vdots_{} \\ w_{m 0}, w_{m 1}, \cdots, w_{m n} \end{array}\right]\\ &X=\left[1, x_{1}, x_{2}, \ldots, x_{n}\right]^{T} \end{aligned}
?W=????w10?,w11?,?,w1n???????wm0?,wm1?,?,wmn??????X=[1,x1?,x2?,…,xn?]T? 将改变后的W矩阵称为theta,整个式子消除了b将更为简洁:
ε
=
Y
?
θ
T
X
\varepsilon=Y-\theta^{T} X
ε=Y?θTX
误差项的概率密度函数
然后我们假定所有样本的误差都是独立的,有上下的震荡,我们可以将误差当做随机变量,足够多的随机变量叠加之后形成的分布,根据中心极限定理,它服从正态分布,即高斯分布。均值和方差为某个定值 (这是众多机器学习算法的重要假设!!)。
方差我们先不管,均值我们总有办法让它去等于零 0 的,为什么? 因为在公式中具有b截距项,因此所有误差就可以认为是服从均值为 0,方差为某定值的高斯分布。基于此,误差项epsilon就可通过条件概率表示为:
f
(
ε
i
∣
μ
,
σ
2
)
=
1
2
π
σ
2
e
?
(
ε
i
?
0
)
2
2
σ
2
f\left(\varepsilon_{i} \mid \mu, \sigma^{2}\right)=\frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(\varepsilon_{i}-0\right)^{2}}{2 \sigma^{2}}}
f(εi?∣μ,σ2)=2πσ2
?1?e?2σ2(εi??0)2? 以上的公式表明,误差epsilon在均值为0,方差为sigma^2的前提下服从右边的正态分布。
此时我们不得不再提一下多元线性回归的初心,那就是估计参数W和b使得预测结果相较于真实值的误差epsilon达到最小,而现在我们有了误差项的概率密度函数,因此我们只需要找到一个方法,求得每一项的最小epsilon并使得所有的误差项加起来能够达到最小,然后求取这个最小epsilon对应的参数W和b,这个方法是否存在呢?
不着急,我们再来推敲下上面这个条件概率,这个正态分布不难理解,那就是当误差为0时,这个密度函数具有最大值,而误差为0,不就是我们想要的理想情况吗?
好,那问题就又转化为,求取参数W和b使得左边的条件概率取得最大值,现在仔细想想,在概率统计学中,有一个方法和我们所期望算法十分类似,对,就是概率统计学中的极大似然估计
误差项的极大似然函数
接下来我们把最大似然函数通过正态分布概率密度函数表达出来:
L
θ
(
ε
1
,
…
,
ε
m
)
=
f
(
ε
1
,
…
,
ε
m
∣
μ
,
σ
2
)
L_{\theta}\left(\varepsilon_{1}, \ldots, \varepsilon_{m}\right)=f\left(\varepsilon_{1}, \ldots, \varepsilon_{m} \mid \mu, \sigma^{2}\right)
Lθ?(ε1?,…,εm?)=f(ε1?,…,εm?∣μ,σ2)
L
θ
(
ε
1
,
…
,
ε
m
)
=
∏
i
=
1
m
f
(
ε
i
∣
μ
,
σ
2
)
=
∏
i
=
1
m
1
2
π
σ
2
e
?
(
ε
i
?
0
)
2
2
σ
2
L_{\theta}\left(\varepsilon_{1}, \ldots, \varepsilon_{m}\right)=\prod_{i=1}^{\mathrm{m}} f\left(\varepsilon_{i} \mid \mu, \sigma^{2}\right)=\prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(\varepsilon_{i}-0\right)^{2}}{2 \sigma^{2}}}
Lθ?(ε1?,…,εm?)=i=1∏m?f(εi?∣μ,σ2)=i=1∏m?2πσ2
?1?e?2σ2(εi??0)2?
而epsilon又可以表示为仅包含X,Y,theta的形式:
ε
i
=
∣
y
i
?
y
i
^
∣
=
∣
y
i
?
W
T
x
i
∣
=
∣
y
i
?
θ
T
x
i
∣
\varepsilon_{i}=\left|y_{i}-\hat{y_{i}}\right|=\left|y_{i}-W^{T} x_{i}\right|=\left|y_{i}-\theta^{T} x_{i}\right|
εi?=∣yi??yi?^?∣=∣∣?yi??WTxi?∣∣?=∣∣?yi??θTxi?∣∣? 所以有
L
θ
(
ε
1
,
…
,
ε
m
)
=
∏
i
=
1
m
1
2
π
σ
2
e
?
(
ε
i
?
0
)
2
2
σ
2
=
∏
i
=
1
m
1
2
π
σ
2
e
?
(
y
1
?
θ
T
x
i
)
2
2
σ
2
L_{\theta}\left(\varepsilon_{1}, \ldots, \varepsilon_{m}\right)=\prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(\varepsilon_{i}-0\right)^{2}}{2 \sigma^{2}}}=\prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(y_{1}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}}
Lθ?(ε1?,…,εm?)=i=1∏m?2πσ2
?1?e?2σ2(εi??0)2?=i=1∏m?2πσ2
?1?e?2σ2(y1??θTxi?)2?
求解极大似然函数,推得多元线性回归的损失函数
我们的问题是求取参数theta使得似然函数最大化,即求取:
arg
?
max
?
θ
L
θ
(
ε
1
,
…
,
ε
m
)
=
arg
?
max
?
θ
∏
i
=
1
m
1
2
π
σ
2
e
?
(
y
i
?
θ
T
x
i
)
2
2
σ
2
\underset{\theta}{\arg \max } L_{\theta}\left(\varepsilon_{1}, \ldots, \varepsilon_{m}\right)=\underset{\theta}{\arg \max } \prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(y_{i}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}}
θargmax?Lθ?(ε1?,…,εm?)=θargmax?i=1∏m?2πσ2
?1?e?2σ2(yi??θTxi?)2? 在这里,我们再次运用求取最大似然函数的一个小trick,取对数似然函数,将连乘转化为连加:
arg
?
max
?
θ
L
θ
(
ε
1
,
…
,
ε
m
)
=
arg
?
max
?
θ
ln
?
(
∏
i
=
1
m
1
2
π
σ
2
e
?
(
y
1
?
θ
T
x
i
)
2
2
σ
2
)
\underset{\theta}{\arg \max } L_{\theta}\left(\varepsilon_{1}, \ldots, \varepsilon_{m}\right)=\underset{\theta}{\arg \max } \ln \left(\prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(y_{1}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}}\right)
θargmax?Lθ?(ε1?,…,εm?)=θargmax?ln(i=1∏m?2πσ2
?1?e?2σ2(y1??θTxi?)2?) 令:
l
(
θ
)
=
arg
?
max
?
θ
L
(
θ
)
l(\theta)=\underset{\theta}{\arg \max } L(\theta)
l(θ)=θargmax?L(θ) 则(连乘转化为连加):
l
(
θ
)
=
arg
?
max
?
θ
ln
?
(
∏
i
=
1
m
1
2
π
σ
2
e
?
(
y
i
?
θ
T
x
i
)
2
2
σ
2
)
=
arg
?
max
?
θ
∑
i
=
1
m
ln
?
(
1
2
π
σ
2
e
?
(
y
1
?
θ
T
x
i
)
2
2
σ
2
)
\begin{aligned} l(\theta) &=\underset{\theta}{\arg \max } \ln\left(\prod_{i=1}^{\mathrm{m}} \frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(y_{i}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}}\right) \\ &=\underset{\theta}{\arg \max } \sum_{i=1}^{m} \ln\left(\frac{1}{\sqrt{2 \pi \sigma^{2}}} e^{-\frac{\left(y_{1}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}}\right) \end{aligned}
l(θ)?=θargmax?ln(i=1∏m?2πσ2
?1?e?2σ2(yi??θTxi?)2?)=θargmax?i=1∑m?ln(2πσ2
?1?e?2σ2(y1??θTxi?)2?)?
=
arg
?
max
?
θ
∑
i
=
1
m
[
ln
?
(
1
2
π
σ
2
)
?
(
y
1
?
θ
T
x
i
)
2
2
σ
2
]
=\underset{\theta}{\arg \max } \sum_{i=1}^{m}\left[ \ln\left(\frac{1}{\sqrt{2 \pi \sigma^{2}}}\right) -\frac{\left(y_{1}-\theta^{T} x_{i}\right)^{2}}{2 \sigma^{2}}\right]
=θargmax?i=1∑m?[ln(2πσ2
?1?)?2σ2(y1??θTxi?)2?]
=
arg
?
max
?
θ
m
ln
?
1
2
π
σ
?
1
2
σ
2
∑
i
=
1
m
(
y
(
i
)
?
θ
T
x
(
i
)
)
2
=\underset{\theta}{\arg \max }\quad m \ln \frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{2\sigma^{2}}\sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
=θargmax?mln2π
?σ1??2σ21?i=1∑m?(y(i)?θTx(i))2
由
于
m
ln
?
1
2
π
σ
和
?
1
2
σ
2
是
常
数
项
,
即
使
舍
去
也
不
影
响
最
终
结
果
,
但
是
,
由
于
舍
去
了
负
号
,
我
们
需
要
把
m
a
x
改
为
m
i
n
由于m \ln \frac{1}{\sqrt{2 \pi} \sigma}和-\frac{1}{2 \sigma^{2}}是常数项,即使舍去也不影响最终结果, \\ 但是,由于舍去了负号,我们需要把max改为min
由于mln2π
?σ1?和?2σ21?是常数项,即使舍去也不影响最终结果,但是,由于舍去了负号,我们需要把max改为min
所以,目标参数theta的函数形式可以表示为(可见极大似然估计就是最小化损失):
l
(
θ
)
=
arg
?
min
?
θ
∑
i
=
1
m
(
y
(
i
)
?
θ
T
x
(
i
)
)
2
l(\theta)=\underset{\theta}{\arg \min } \sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
l(θ)=θargmin?i=1∑m?(y(i)?θTx(i))2 若仅体现损失:
l
o
s
s
=
∑
i
=
1
m
(
y
(
i
)
?
θ
T
x
(
i
)
)
2
loss=\sum_{i=1}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}
loss=i=1∑m?(y(i)?θTx(i))2 至此,我们就已经推导出来了多元线性回归的损失函数,是不是很熟悉,这不就是最小二乘嘛?
是的,并且这个损失函数的最终形式的物理意义也很明确,那就是使得预测值和真实值的误差的平方达到最小(接近0),如下图
值得一提的是,最小二乘在机器学习上也称作均方根损失(MSE),多元线性回归损失只是其中的一种特殊形式,其一般形式如下:
M
S
E
l
o
s
s
=
1
n
∑
i
=
1
n
(
y
i
^
?
y
i
)
2
MSE_{loss}=\frac{1}{n}\sum_{i=1}^{n}\left(\hat{y_i}-y_i\right)^{2}
MSEloss?=n1?i=1∑n?(yi?^??yi?)2
|