当前位置: 代码迷 >> 综合 >> 【机器学习算法】以最大似然估计角度理解多元线性回归损失(最小二乘法)
  详细解决方案

【机器学习算法】以最大似然估计角度理解多元线性回归损失(最小二乘法)

热度:8   发布时间:2024-01-20 01:51:18.0

文章目录

  • 以极大似然估计角度推导多元线性回归损失函数
    • 从一元线性回归开始
    • 多元线性回归
      • 误差项的概率密度函数
      • 误差项的极大似然函数
      • 求解极大似然函数,推得多元线性回归的损失函数

以极大似然估计角度推导多元线性回归损失函数

从一元线性回归开始

以一元线性回归为引:

一元线性回归的函数表达式:
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=1m?f(εi?μ,σ2)=i=1m?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=1m?2πσ2 ?1?e?2σ2(εi??0)2?=i=1m?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=1m?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=1m?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=1m?2πσ2 ?1?e?2σ2(yi??θTxi?)2?)=θargmax?i=1m?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=1m?[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=1m?(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?使,maxmin

所以,目标参数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=1m?(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=1m?(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=1n?(yi?^??yi?)2