前置知识:多元函数求最值点,凸函数求最值,关于参数w和b的凸函数
问题重述
训练数据集:
{
x
i
,
y
i
}
i=1...n
\overset{\text{}}{% \left\{x_i,y_i \right\}% }% \underset{\text{i=1...n}}{}%
{xi,yi}i=1...n
学习机(决策函数集):{
w
ˆ
T
x
+
b
{\^{w}^Tx+b }
wˆTx+b |
w
ˆ
∈
R
n
,
b
∈
R
\^{w} \in R^n,b\in R
wˆ∈Rn,b∈R}
策略(找寻损失函数):
∑
i
=
1
n
(
f
(
x
i
)
−
y
i
)
2
\sum_{i=1}^{n} (f(x_i)-y_i)^{2} \overset{\text{}}{\underset{\text{}}{}}
∑i=1n(f(xi)−yi)2
优化算法:最小二乘回归
纯数学推导的理解范式
一元线性回归和多元线性回归西瓜书和南瓜书都给出了详细的推导,小伙伴们可以尝试自行手推一下。
线性模型的正则理解范式
以下讨论基于
w
ˆ
\textbf{\^{w}}
wˆ的闭式解来进行的:
在西瓜书公式3.11中,我们要求
X
T
X
X^TX
XTX为满秩矩阵或者正定矩阵时,令偏导数等于0,才能得到(3.11):
w
ˆ
\textbf{\^{w}}
wˆ*=(
X
T
X
X^TX
XTX)
−
1
X
T
y
^{-1}X^T\textbf{y}
−1XTy
然而现实任务中
X
T
X
X^TX
XTX往往不是满秩矩阵,这也就意味着
X
T
X
X^TX
XTX不一定可逆,当然我们可以根据现实场景的要求选择广义逆矩阵来求解改方程组,比如选则最小范数解或者最小范数二乘解。
数值计算角度
为了保证
X
T
X
X^TX
XTX一定可逆,我们知道
X
T
X
X^TX
XTX一定是实对称矩阵,那么它一定可以正交相似于一个对角阵即存在正交矩阵P(
P
T
P
=
I
P^TP=I
PTP=I),使得
P
T
(
X
T
X
)
P
=
P^T(X^TX)P=
PT(XTX)P=
[
λ
1
0
⋯
0
0
λ
2
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
λ
n
]
\begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \end{bmatrix}
λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn
那么我们在它的后面直接加上
λ
\lambda
λ
I
I
I,那么可以验证它仍然是实对称矩阵,用用同样的P正交变换,可得:
P
T
(
X
T
X
+
λ
I
)
P
=
P^T(X^TX+\lambda I)P=
PT(XTX+λI)P=
[
λ
1
+
λ
0
⋯
0
0
λ
2
+
λ
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
λ
n
+
λ
]
\begin{bmatrix} \lambda_1+\lambda & 0 & \cdots & 0 \\ 0 & \lambda_2+\lambda & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n+\lambda \end{bmatrix}
λ1+λ0⋮00λ2+λ⋮0⋯⋯⋱⋯00⋮λn+λ
选择合适的
λ
\lambda
λ可以使得矩阵
X
T
X
+
λ
I
X^TX+\lambda I
XTX+λI满秩(正定),从而矩阵可逆,我们自然就能用
w
ˆ
\textbf{\^{w}}
wˆ*=(
X
T
X
+
λ
I
X^TX+\lambda I
XTX+λI)
−
1
X
T
y
^{-1}X^T\textbf{y}
−1XTy直接获得线性模型的参数的解析解。当然,这里作为超参数的
λ
\lambda
λ如何选择是个需要重视的问题(详细后述)
正则理解范式
上面我们通过数值计算的角度,为了让相应的矩阵可逆,而在它的后面加上了 λ I \lambda I λI,接下来我们从正则化的角度来理解这一行为,在优美的数学推导之后,它们将殊途同归
机器学习范式表述
训练数据集:
{
x
i
,
y
i
}
i=1...n
\overset{\text{}}{% \left\{x_i,y_i \right\}% }% \underset{\text{i=1...n}}{}%
{xi,yi}i=1...n
学习机(决策函数集):{
w
ˆ
T
x
+
b
{\^{w}^Tx+b }
wˆTx+b |
w
ˆ
∈
R
n
,
b
∈
R
\^{{\boldsymbol w}} \in R^n,b\in R
wˆ∈Rn,b∈R}
策略(找寻损失函数):
L
o
s
s
=
∥
y
−
X
w
∥
2
2
+
λ
∥
w
∥
2
2
Loss =\lVert \mathbf{y}-\mathbf{Xw}\rVert_2^2 + \lambda \lVert \mathbf{w} \rVert_2^2
Loss=∥y−Xw∥22+λ∥w∥22
(注记:这里的X和西瓜书的定义一样,就是把所有样本组成矩阵,便于调用numpy的库进行计算)
优化算法:最小二乘回归
求解推导
将
E
w
^
=
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
+
λ
w
^
T
w
^
E_{\hat{\boldsymbol w}}=(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w})+\lambda\hat{\boldsymbol w}^{\mathrm{T}}\hat{\boldsymbol w}
Ew^=(y−Xw^)T(y−Xw^)+λw^Tw^展开可得
E
w
^
=
y
T
y
−
y
T
X
w
^
−
w
^
T
X
T
y
+
w
^
T
X
T
X
w
^
+
λ
w
^
T
w
^
E_{\hat{\boldsymbol w}}= \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}-\boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}-\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}+\lambda\hat{\boldsymbol w}^{\mathrm{T}}\hat{\boldsymbol w}
Ew^=yTy−yTXw^−w^TXTy+w^TXTXw^+λw^Tw^
对
w
^
\hat{\boldsymbol w}
w^求导可得
∂
E
w
^
∂
w
^
=
∂
y
T
y
∂
w
^
−
∂
y
T
X
w
^
∂
w
^
−
∂
w
^
T
X
T
y
∂
w
^
+
∂
w
^
T
X
T
X
w
^
∂
w
^
+
∂
w
^
T
(
I
)
w
^
∂
w
^
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= \cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}+\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}+\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}(I)\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}
∂w^∂Ew^=∂w^∂yTy−∂w^∂yTXw^−∂w^∂w^TXTy+∂w^∂w^TXTXw^+∂w^∂w^T(I)w^
由矩阵微分公式
∂
a
T
x
∂
x
=
∂
x
T
a
∂
x
=
a
,
∂
x
T
A
x
∂
x
=
(
A
+
A
T
)
x
\cfrac{\partial\boldsymbol{a}^{\mathrm{T}}\boldsymbol{x}}{\partial\boldsymbol{x}}=\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\boldsymbol{a}}{\partial\boldsymbol{x}}=\boldsymbol{a},\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}}{\partial\boldsymbol{x}}=(\mathbf{A}+\mathbf{A}^{\mathrm{T}})\boldsymbol{x}
∂x∂aTx=∂x∂xTa=a,∂x∂xTAx=(A+AT)x可得
∂
E
w
^
∂
w
^
=
0
−
X
T
y
−
X
T
y
+
(
X
T
X
+
X
T
X
)
w
^
+
2
λ
w
^
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= 0-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\mathbf{X}^{\mathrm{T}}\mathbf{X})\hat{\boldsymbol w}+2\lambda\hat{\boldsymbol w}
∂w^∂Ew^=0−XTy−XTy+(XTX+XTX)w^+2λw^
∂
E
w
^
∂
w
^
=
2
X
T
X
w
^
−
2
X
T
X
y
+
2
λ
w
^
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}-2\mathbf{X}^{\mathrm{T}}\mathbf{X}\boldsymbol{y}+2\lambda\hat{\boldsymbol w}
∂w^∂Ew^=2XTXw^−2XTXy+2λw^
令
∂
E
w
^
∂
w
^
=
0
\cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=0
∂w^∂Ew^=0
得
X
T
X
w
^
+
λ
w
^
=
X
T
X
y
\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}+\lambda\hat{\boldsymbol w} =\mathbf{X}^{\mathrm{T}}\mathbf{X}\boldsymbol{y}
XTXw^+λw^=XTXy
即
(
X
T
X
+
λ
I
)
w
^
=
X
T
X
y
(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\lambda I)\hat{\boldsymbol w} =\mathbf{X}^{\mathrm{T}}\mathbf{X}\boldsymbol{y}
(XTX+λI)w^=XTXy
至此,我们通过正则化的方式,选择合适的正则超参数,即可保证得
(
X
T
X
+
λ
I
)
(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\lambda I)
(XTX+λI)可逆,从而我们推得模型参数的解析解:
w
^
∗
=
(
X
T
X
+
λ
I
)
−
1
X
T
X
y
\hat{\boldsymbol w}* =(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\lambda I)^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{X}\boldsymbol{y}
w^∗=(XTX+λI)−1XTXy
综上所述,无论我们是从数值计算的角度,为了让
X
T
X
\mathbf{X}^{\mathrm{T}}\mathbf{X}
XTX能可逆而直接在其后加上
λ
I
\lambda I
λI,还是站在机器学习的角度,为了控制模型的复杂性,以提高模型的泛化性能,通过在模型的损失函数中添加一个额外的项来实现,最后都将殊途同归,获得相同的模型参数的解析解。
现在,还剩下一个需要讨论的问题,正则化超参数
λ
\lambda
λ如何选择,选多大呢?
显然选择适当的 λ 对于正则化的效果和模型性能至关重要,如果 λ 太小,正则化的效果可能不明显,模型可能过拟合。如果 λ 太大,正则化的效果可能过强,模型可能欠拟合。因此,需要进行实验和调优以找到最适合您特定问题的 λ 值,选择 λ 的大小取决于数据集和问题的特性。
超参数 λ 的选择通常涉及到超参数调优(Hyperparameter Tuning)的过程,这可以通过以下方式来完成:
交叉验证(Cross-Validation):一种常见的方法是使用交叉验证来评估不同 λ 值的性能。您可以将数据集分为训练集和验证集,在不同的 λ 值下训练模型并评估其性能。选择性能最好的 λ 值作为超参数。
网格搜索(Grid Search):网格搜索是一种系统性的方法,它在预定义的 λ 值列表上进行训练和验证,并选择在验证集上性能最佳的 λ 值。这可以自动化搜索最佳 λ 的过程。
随机搜索(Random Search):与网格搜索类似,随机搜索在超参数空间中随机选择 λ 的值,然后评估性能。这通常比网格搜索更高效,因为它可以在更广泛的超参数空间中探索。
学习曲线(Learning Curves):通过绘制不同 λ 值下的学习曲线,您可以观察训练和验证误差随 λ 变化的情况。这可以帮助您选择适当的 λ。
先验知识和经验:有时,根据问题的先验知识或经验,可以有一些关于 λ 的启发式建议。例如,通常较小的 λ 会产生较强的正则化效果,而较大的 λ 会产生较弱的正则化效果。
总之,选择正则化参数 λ 是超参数调优的一部分,通常需要在验证集上进行评估和选择。这是一个关键的决策,可以影响模型的性能和泛化能力。
【注释】模型正则化的作用补充说明
上面两个讨论基于理解机器学习的第一种模式----优化模型,以下两种讨论基于理解机器学习的第二种模式----概率模型。在概率的视角下,机器学习不关注(训练集样本)数据本身,而是关注数据分布,因为我们假设训练数据何未来的数据来自同一分布,我们想通过这有限的训练集找寻到这个分布,也就是找寻到数据隐含的预测的规律
(MLE)极大似然估计范式
基本步骤:
对一个随机变量进行建模–>认为(大致确定)它属于哪一个分布:确定学习机的范式–>这个分布有哪些待求的关键参数–>MLP估计关键参数的取值–>确定了这个生成数据的概率分布
我们的目标是对概率分布 p ( y ∣ x ) p(y|x) p(y∣x)进行建模,表达了对于每个x值,我们对于y的值的不确定性,在这个条件概率分布中,对于任意的x的新值,我们都可以对y进行预测,预测出的不同y值概率不同而已
机器学习范式表述
训练数据集:
{
x
i
,
y
i
}
i=1...n
\overset{\text{}}{% \left\{x_i,y_i \right\}% }% \underset{\text{i=1...n}}{}%
{xi,yi}i=1...n
学习机(决策函数集):
y
∼
N
(
y
∣
f
w
(
x
)
,
σ
2
)
,
y \sim N(y|f_w(x), \sigma^2),
y∼N(y∣fw(x),σ2),这里
f
w
(
x
)
=
w
T
x
+
b
f_w(x)=w^Tx+b
fw(x)=wTx+b;
【假设目标变量y由确定的函数
y
=
f
w
(
x
)
y=f_w(x)
y=fw(x)给出,这个函数被附加了高斯噪声:
y
=
f
w
(
x
)
+
ϵ
、
ϵ
∼
N
(
0
,
σ
2
)
y=f_w(x)+\epsilon、\epsilon \sim N(0,\sigma^2)
y=fw(x)+ϵ、ϵ∼N(0,σ2)】
策略(找寻损失函数):
max
w
,
σ
2
∏
i
=
1
n
N
(
y
i
∣
f
w
(
x
i
)
,
σ
2
)
\max\limits_{w,\sigma^2}\prod\limits_{i=1}^nN(y_i|f_w(x_i),\sigma^2)
w,σ2maxi=1∏nN(yi∣fw(xi),σ2)
优化算法:最小损失函数期望
基于以下假设:数据背后有一个高斯分布,那么误差函数可以看成由高斯噪声模型下的极大似然解
这里我们假设的是噪声服从高斯分布,实际上现实场景下噪声并不会这么简单,可以考虑一些其它的分布,如高斯混合模型
一个朴素自然的思想:计算使得观察数据(也就是训练集)发生的概率最大的高斯模型的参数
求解推导
取似然函数的对数,使用一元高斯分布的标准形式
I
n
p
(
y
∣
x
,
w
,
β
)
=
∑
i
=
1
n
l
n
N
(
y
i
∣
f
w
(
x
)
,
σ
2
)
In p(y|x,w,\beta)=\sum\limits_{i=1}^nlnN(y_i|f_w(x),\sigma^2)
Inp(y∣x,w,β)=i=1∑nlnN(yi∣fw(x),σ2)
=
∑
i
=
1
n
l
n
N
(
y
i
∣
w
T
x
i
+
b
,
σ
2
)
=
∑
i
=
1
n
l
n
(
1
2
π
σ
e
−
(
y
i
−
w
T
x
i
−
b
)
2
2
σ
2
)
=\sum\limits_{i=1}^nlnN(y_i|w^Tx_i+b,\sigma^2)=\sum\limits_{i=1}^nln(\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(y_i-w^Tx_i-b)^2}{2 \sigma^2}})
=i=1∑nlnN(yi∣wTxi+b,σ2)=i=1∑nln(2πσ1e−2σ2(yi−wTxi−b)2)
=
N
2
l
n
(
1
σ
2
)
−
N
2
l
n
(
2
π
)
−
1
2
σ
2
∑
i
=
1
n
(
y
i
−
w
T
x
i
−
b
)
2
=\frac{N}{2}ln(\frac{1}{\sigma^2})-\frac{N}{2}ln(2\pi)-\frac{1}{2 \sigma^2}{\sum\limits_{i=1}^n{(y_i-w^Tx_i-b)^2}}
=2Nln(σ21)−2Nln(2π)−2σ21i=1∑n(yi−wTxi−b)2
接下来,我们使用极大似然的方法确定待估参数
w
w
w和
σ
2
\sigma^2
σ2,但这里我们只关注
w
w
w了:
由
max
w
,
σ
2
∏
i
=
1
n
N
(
y
i
∣
f
w
(
x
i
)
,
σ
2
)
=
max
w
,
σ
2
N
2
l
n
(
1
σ
2
)
−
N
2
l
n
(
2
π
)
−
1
2
σ
2
∑
i
=
1
n
(
y
i
−
w
T
x
i
−
b
)
2
\max\limits_{w,\sigma^2}\prod\limits_{i=1}^nN(y_i|f_w(x_i),\sigma^2)=\max\limits_{w,\sigma^2}\frac{N}{2}ln(\frac{1}{\sigma^2})-\frac{N}{2}ln(2\pi)-\frac{1}{2 \sigma^2}{\sum\limits_{i=1}^n{(y_i-w^Tx_i-b)^2}}
w,σ2maxi=1∏nN(yi∣fw(xi),σ2)=w,σ2max2Nln(σ21)−2Nln(2π)−2σ21i=1∑n(yi−wTxi−b)2
优化
w
w
w时,
σ
2
\sigma^2
σ2视为一个未知的常数,上式等价于
=
min
w
∑
i
=
1
n
(
y
i
−
w
T
x
i
−
b
)
2
=\min\limits_{w}{\sum\limits_{i=1}^n{(y_i-w^Tx_i-b)^2}}
=wmini=1∑n(yi−wTxi−b)2
由此我们推得了极大似然估计下需要优化的损失函数,也就是最小二乘给出的损失函数(只是把它写成了求和的形式),后续步骤为求梯度,令梯度等于0,求的一定条件下的解析解,具体数学推导见西瓜书和南瓜书,下面给出一个最小二乘MSE的小示例。
import matplotlib.pyplot as plt
import numpy as np
X_data=[1.0,2.0,3.0]
Y_data=[2.0,4.0,6.0]
w=1
l=0.001
W=[4]
C=[]
def forward(x):
return w*x
def mseloss(X,Y):
cost=0
for x,y in zip(X,Y):
y_pre_val = forward(x)
loss_val = (y_pre_val - y) ** 2
cost+=loss_val
return cost/len(X)
# def gradient(X,Y):
# grad=0
# for xi,yi in zip(X,Y):
# grad+=2*(forward(xi)-yi)*xi
# grad/=len(X)
# return grad
def gradient(x,y):
return 2*x*(x*w-y)
for epoch in range(100):
for x,y in zip(X_data,Y_data):
cost_val=mseloss(X_data,Y_data)
grad=gradient(x,y)
w-=l*grad
print("epoch = ",epoch," w = ",w,"loss = ",cost_val)
E=np.arange(len(C))
plt.plot(E,C)
plt.show()
(MPE)最大后验估计范式
P ( θ ∣ D ) = P ( D ∣ θ ) P ( θ ) P ( D ) P(\theta|D)=\frac{P(D|\theta)P(\theta)}{P(D)} P(θ∣D)=P(D)P(D∣θ)P(θ)或者 P ( θ ∣ D ) ∝ P ( D ∣ θ ) P ( θ ) P(\theta|D) \propto P(D|\theta)P(\theta) P(θ∣D)∝P(D∣θ)P(θ),即后验分布正比于似然函数与先验分布的乘积, θ \theta θ 为希望得到的模型参数,D为一组观测;P(D)是关于数据分布的边缘概率(一般来说这是很难算的); P ( D ) = ∑ θ P ( D ∣ θ ) P(D)=\sum _{\theta}P(D|\theta) P(D)=∑θP(D∣θ), P ( θ ) P(\theta) P(θ)是参数的先验分布, P ( θ ∣ D ) P(\theta|D) P(θ∣D)也是关于 θ \theta θ的分布,被D影响了。
机器学习范式表述
训练数据集:机器学习问题的样本特征和标签
学习机(决策函数集):
p
(
y
∣
x
;
w
,
γ
)
p(y|x;w,\gamma)
p(y∣x;w,γ);
策略(找寻损失函数):
max
w
,
γ
p
(
Y
∣
X
;
w
,
γ
)
p
(
w
)
\max\limits_{w,\gamma}p(Y|X;w,\gamma)p(w)
w,γmaxp(Y∣X;w,γ)p(w);p(w)是参数的先验分布
优化算法:概率推断
||
针对该问题的重写
||
训练数据集:
{
x
i
,
y
i
}
i=1...n
\overset{\text{}}{% \left\{x_i,y_i \right\}% }% \underset{\text{i=1...n}}{}%
{xi,yi}i=1...n
学习机(决策函数集):
p
(
y
∣
f
w
(
x
)
,
σ
2
)
p(y|f_w(x), \sigma^2)
p(y∣fw(x),σ2)
策略(找寻损失函数):
max
w
,
γ
p
(
y
∣
f
w
(
x
)
,
σ
2
)
p
(
w
)
p
(
σ
2
)
\max\limits_{w,\gamma}p(y|f_w(x), \sigma^2)p(w)p(\sigma^2)
w,γmaxp(y∣fw(x),σ2)p(w)p(σ2)
优化算法:概率推断
【注解:
p
(
y
∣
f
w
(
x
)
,
σ
2
)
=
∏
i
=
1
n
N
(
y
i
∣
f
w
(
x
i
)
,
σ
2
)
p(y|f_w(x), \sigma^2)=\prod\limits_{i=1}^nN(y_i|f_w(x_i),\sigma^2)
p(y∣fw(x),σ2)=i=1∏nN(yi∣fw(xi),σ2);
f
w
(
x
)
=
w
T
x
+
b
f_w(x)=w^Tx+b
fw(x)=wTx+b,参数的先验分布
p
(
w
)
=
N
(
w
∣
0
,
γ
2
)
p(w)=N(w|0,\gamma^2 )
p(w)=N(w∣0,γ2),均值为0的高斯。要想写出这个损失函数我们似乎还需要回答·一个问题,那就是
p
(
σ
2
)
=
?
p(\sigma^2)=?
p(σ2)=?,但是我们目前只关注参数w,在后续的优化推导中一样可以将含有
σ
\sigma
σ的项视为常数】
根据人的脑海中既定一个先验分布,观察数据的目的不是要找到数据的分布,而是要根据观察的D调整这个先验分布。
由
P
(
θ
∣
D
)
P
(
D
)
=
P
(
D
∣
θ
)
P
(
θ
)
)
P(\theta|D)P(D)=P(D|\theta)P(\theta))
P(θ∣D)P(D)=P(D∣θ)P(θ)),我们关心最大化
P
(
θ
∣
D
)
P(\theta|D)
P(θ∣D),
P
(
D
)
P(D)
P(D)作为数据的分布视为未知的常数,即等价于:
max
P
(
θ
∣
D
)
<
=
>
m
a
x
P
(
D
∣
θ
)
P
(
θ
)
P(\theta|D)<=> max P(D|\theta)P(\theta)
P(θ∣D)<=>maxP(D∣θ)P(θ)
求解推导
a
r
g
max
p
(
w
,
σ
2
∣
X
,
Y
)
<
=
=
>
a
r
g
max
p
(
Y
∣
X
;
w
,
σ
2
)
p
(
w
)
p
(
σ
2
)
arg \max p(w,\sigma^2|X,Y)<==>arg \max p(Y| X;w,\sigma^2)p(w)p(\sigma^2)
argmaxp(w,σ2∣X,Y)<==>argmaxp(Y∣X;w,σ2)p(w)p(σ2)
=
a
r
g
min
−
l
n
p
(
p
(
Y
∣
X
;
w
,
σ
2
)
−
l
n
(
p
(
w
)
)
−
l
n
(
p
(
σ
2
)
)
=arg \min -lnp(p(Y|X;w,\sigma^2)-ln(p(w))-ln(p(\sigma^2))
=argmin−lnp(p(Y∣X;w,σ2)−ln(p(w))−ln(p(σ2))
=
a
r
g
min
−
l
n
∏
i
=
1
n
N
(
y
i
∣
f
w
(
x
i
)
,
σ
2
)
−
l
n
(
N
(
w
∣
0
,
γ
2
)
)
−
l
n
(
p
(
σ
2
)
)
=arg \min -ln\prod\limits_{i=1}^nN(y_i|f_w(x_i),\sigma^2)-ln(N(w|0,\gamma^2 ))-ln(p(\sigma^2))
=argmin−lni=1∏nN(yi∣fw(xi),σ2)−ln(N(w∣0,γ2))−ln(p(σ2))
=
∑
i
=
1
n
1
2
σ
2
(
f
w
(
x
i
)
−
y
i
)
2
+
n
l
n
(
σ
)
+
l
n
(
γ
)
+
1
2
γ
2
∣
∣
w
∣
∣
2
+
K
(
σ
)
+
C
(
常数)
=\sum_{i=1}^n\frac{1}{2\sigma^2}(f_w(x_i)-y_i)^2+nln(\sigma)+ln(\gamma)+\frac{1}{2\gamma^2}||w||^2+K(\sigma)+C(常数)
=i=1∑n2σ21(fw(xi)−yi)2+nln(σ)+ln(γ)+2γ21∣∣w∣∣2+K(σ)+C(常数)
<
=
>
min
w
,
σ
2
C
1
(
σ
2
)
+
1
2
σ
2
∑
i
=
1
n
(
y
i
−
w
T
x
i
)
2
+
C
(
γ
)
+
1
2
γ
2
∣
∣
w
∣
∣
2
+
C
2
(
σ
2
)
+
C
(
常数
)
<=>\min\limits_{w,\sigma^2}C_1(\sigma^2)+\frac{1}{2\sigma^2}\sum_{i=1}^n(y_i-w^Tx_i)^2+C(\gamma)+\frac{1}{2\gamma^2}||w||^2+C_2(\sigma^2)+C(常数)
<=>w,σ2minC1(σ2)+2σ21i=1∑n(yi−wTxi)2+C(γ)+2γ21∣∣w∣∣2+C2(σ2)+C(常数)
只优化w时,记
λ
=
1
2
γ
2
\lambda=\frac{1}{2\gamma^2}
λ=2γ21,【注意这里的
γ
\gamma
γ是已知的先验分布(我们作为主体决定的),同时再一次印证了
λ
\lambda
λ是一个超参数,需要我们来调整】
=
min
w
∥
y
−
X
w
∥
2
2
+
λ
∥
w
∥
2
2
=\min\limits_{w}\lVert \mathbf{y}-\mathbf{Xw}\rVert_2^2 + \lambda \lVert \mathbf{w} \rVert_2^2
=wmin∥y−Xw∥22+λ∥w∥22
σ
2
\sigma^2
σ2表征了混合数据噪声的额大小,
1
2
γ
2
∣
∣
w
∣
∣
2
\frac{1}{2\gamma^2}||w||^2
2γ21∣∣w∣∣2作为主体,观测变为配角,由
1
2
σ
2
∑
i
=
1
n
(
y
i
−
w
T
x
i
)
2
\frac{1}{2\sigma^2}\sum_{i=1}^n(y_i-w^Tx_i)^2
2σ21∑i=1n(yi−wTxi)2知当噪声很小时,不看先验了,看损失即可
由此我们推得了最大后验范式下需要优化的损失函数,也就是最小二乘+正则化给出的损失函数,可见,我们以提高模型泛化能力,防止过拟合目的的正则化的机器学习方法,和基于数据观察调整参数的先验分布而得到最大后验而需要优化的损失函数完全一样,再一次殊途同归了,本质内涵无论在何种理解下都将回到最初的地方,后续步骤为求梯度,令梯度等于0,求得一定条件下的解析解,具体数学推导见正则化范式理解
小结
综上,我们讨论了最小二乘的三种机器学习理解范式,我们执着于机器学习的本质内涵,我们得到了奇妙的殊途同归的效果,我们感受了数学之美,计算之魂