神经网络基础——Sigmoid函数参数推导原理
前置知识
由于人工智能方向涉及较多数学知识,限于篇幅原因,作者无法将其列举完全,这里挑选几个较为重要的知识点作简要介绍。有些基础数学知识已经单独在其他文档中描述,这里不再赘述。如有疑问,欢迎评论或私信留言。
极大似然法
总体
X
X
X有分布率
P
(
X
=
x
;
θ
)
P(X=x;\theta)
P(X=x;θ)或密度函数
f
(
x
;
θ
)
f(x;\theta)
f(x;θ),已知
θ
∈
Θ
\theta\in\Theta
θ∈Θ,
Θ
\Theta
Θ是参数空间。
(
x
i
)
i
=
1
n
(x_i)_{i=1}^n
(xi)i=1n为取自总体
X
X
X的一个样本
(
X
i
)
i
=
1
n
(X_i)_{i=1}^n
(Xi)i=1n的观测值,将样本的联合分布率或联合密度函数看成是
θ
\theta
θ的函数,用
L
(
θ
)
L(\theta)
L(θ)表示,又称为
θ
\theta
θ的似然函数,即
L
(
θ
)
=
∏
i
=
1
n
P
(
X
i
=
x
i
;
θ
)
或
L
(
θ
)
=
∏
i
=
1
n
f
(
x
i
;
θ
)
\begin{aligned} L(\theta)&=\prod_{i=1}^nP(X_i=x_i;\theta)或\\ L(\theta)&=\prod_{i=1}^nf(x_i;\theta) \end{aligned}
L(θ)L(θ)=i=1∏nP(Xi=xi;θ)或=i=1∏nf(xi;θ)
称满足关系式
L
(
θ
^
)
=
max
θ
∈
Θ
L
(
θ
)
L(\hat\theta)=\max_{\theta\in\Theta}L(\theta)
L(θ^)=θ∈ΘmaxL(θ)
的解
θ
^
=
arg
max
θ
∈
Θ
L
(
θ
)
\hat\theta=\arg\max_{\theta\in\Theta}L(\theta)
θ^=argθ∈ΘmaxL(θ)
为
θ
\theta
θ的极大似然估计量。
当
L
(
θ
)
L(\theta)
L(θ)是可微函数时,求导是求极大似然估计最常用的方法。此时又因
L
(
θ
)
L(\theta)
L(θ)与
ln
L
(
θ
)
\ln L(\theta)
lnL(θ)在同一个
θ
\theta
θ处取得极值,且对对数似然函数
ln
L
(
θ
)
\ln L(\theta)
lnL(θ)求导更简单,故我们常用如下对数似然方程
d
ln
L
(
θ
)
d
θ
=
0
\frac{d\ln L(\theta)}{d\theta}=0
dθdlnL(θ)=0
当
θ
\theta
θ为几个未知参数组成的向量
θ
=
(
θ
i
)
i
=
1
k
\mathbf\theta=(\theta_i)_{i=1}^k
θ=(θi)i=1k时,用如下对数似然方程组
{
∂
ln
L
(
θ
)
∂
θ
1
=
0
∂
ln
L
(
θ
)
∂
θ
2
=
0
⋮
∂
ln
L
(
θ
)
∂
θ
k
=
0
\begin{cases} \frac{\partial\ln L(\theta)}{\partial\theta_1}=0 \\ \frac{\partial\ln L(\theta)}{\partial\theta_2}=0 \\ \vdots \\ \frac{\partial\ln L(\theta)}{\partial\theta_k}=0 \end{cases}
⎩
⎨
⎧∂θ1∂lnL(θ)=0∂θ2∂lnL(θ)=0⋮∂θk∂lnL(θ)=0
求得
θ
\theta
θ的极大似然估计值。
当似然函数不可微时,也可以直接寻求使得
L
(
θ
)
L(\theta)
L(θ)达到最大的解来求的极大似然估计值。
泰勒公式
如果给定了在点
x
0
x_0
x0具有所有前
n
n
n阶导数的函数
f
(
x
)
f(x)
f(x),则称
f
(
x
)
f(x)
f(x)在
x
0
x_0
x0处
n
n
n阶可导。则有
f
(
x
)
=
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
+
1
2
f
′
′
(
x
0
)
(
x
−
x
0
)
2
+
1
3
!
f
′
′
′
(
x
0
)
(
x
−
x
0
)
3
+
⋯
+
1
n
!
f
(
n
)
(
x
0
)
(
x
−
x
0
)
n
+
R
n
(
x
)
=
∑
i
=
0
n
f
(
i
)
(
x
0
)
i
!
(
x
−
x
0
)
i
+
R
n
(
x
)
\begin{aligned} f(x)&=f(x_0)+f'(x_0)(x-x_0)+\frac12f''(x_0)(x-x_0)^2+\frac1{3!}f'''(x_0)(x-x_0)^3+\cdots+\frac1{n!}f^{(n)}(x_0)(x-x_0)^n+R_n(x)\\ &=\sum_{i=0}^n\frac{f^{(i)}(x_0)}{i!}(x-x_0)^i+R_n(x) \end{aligned}
f(x)=f(x0)+f′(x0)(x−x0)+21f′′(x0)(x−x0)2+3!1f′′′(x0)(x−x0)3+⋯+n!1f(n)(x0)(x−x0)n+Rn(x)=i=0∑ni!f(i)(x0)(x−x0)i+Rn(x)
其中
R
n
(
x
)
R_n(x)
Rn(x)称为泰勒公式的余项,当
n
n
n充分大时,
R
n
(
x
)
R_n(x)
Rn(x)趋于0。
对泰勒公式求n阶导,其在
x
0
x_0
x0处的值为
f
(
n
)
(
x
0
)
f^{(n)}(x_0)
f(n)(x0)。
Logistic分布
设
X
X
X是连续随机变量,
X
X
X服从Logistic分布是指
X
X
X具有下列分布函数和密度函数:
F
(
x
)
=
P
(
X
≤
x
)
=
1
1
+
e
−
x
−
μ
γ
f
(
x
)
=
F
′
(
x
)
=
e
−
x
−
μ
γ
γ
(
1
+
e
−
x
−
μ
γ
)
2
\begin{aligned} F(x)&=P(X\le x)=\frac1{1+e^{-\frac{x-\mu}\gamma}}\\ f(x)&=F'(x)=\frac{e^{-\frac{x-\mu}\gamma}}{\gamma(1+e^{-\frac{x-\mu}\gamma})^2} \end{aligned}
F(x)f(x)=P(X≤x)=1+e−γx−μ1=F′(x)=γ(1+e−γx−μ)2e−γx−μ
式中,
μ
\mu
μ为位置参数,
γ
>
0
\gamma>0
γ>0为形状参数。Logistic函数是一条以点
(
μ
,
1
2
)
(\mu,\frac12)
(μ,21)为中心对称的S型曲线


Sigmoid函数
Sigmoid函数是激励函数的一种,在神经网络中具有重要作用。其中的重要代表就是Logistic函数,为当位置参数
μ
=
0
\mu=0
μ=0,形状参数
γ
=
1
\gamma=1
γ=1时的Logistic分布函数,表达式为
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1
每一次进入神经网络节点的过程,都是先进行线性变换,再使用激励函数运算的过程。因此可有下式
{
z
=
w
T
x
+
b
y
=
1
1
+
e
−
z
\begin{cases} z=\mathbf{w^T x}+b \\ y=\frac{1}{1+e^{-z}} \end{cases}
{z=wTx+by=1+e−z1
联合得到
y
=
1
1
+
e
−
(
w
T
x
+
b
)
y=\frac1{1+e^{-(\mathbf{w^T x}+b)}}
y=1+e−(wTx+b)1
上式可变化为
ln
y
1
−
y
=
w
T
x
+
b
\ln\frac{y}{1-y}=\mathbf{w^T x}+b
ln1−yy=wTx+b
Logistic回归
若将
y
y
y视为样本
x
\mathbf x
x作为正例的可能性
P
(
y
=
1
∣
x
)
P(y=1|\mathbf x)
P(y=1∣x),则
1
−
y
1-y
1−y是其反例可能性
P
(
y
=
0
∣
x
)
P(y=0|\mathbf x)
P(y=0∣x),则有
P
(
y
=
1
∣
x
)
=
1
1
+
e
−
(
w
T
x
+
b
)
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
P
(
y
=
0
∣
x
)
=
1
1
+
e
w
T
x
+
b
ln
P
(
y
=
1
∣
x
)
P
(
y
=
0
∣
x
)
=
w
T
x
+
b
\begin{aligned} P(y=1|\mathbf x)&=\frac1{1+e^{-(\mathbf{w^T x}+b)}}=\frac{e^{\mathbf{w^T x}+b}}{1+e^{\mathbf{w^T x}+b}}\\ P(y=0|\mathbf x)&=\frac1{1+e^{\mathbf{w^T x}+b}}\\ \ln\frac{P(y=1|\mathbf x)}{P(y=0|\mathbf x)}&=\mathbf{w^T x}+b \end{aligned}
P(y=1∣x)P(y=0∣x)lnP(y=0∣x)P(y=1∣x)=1+e−(wTx+b)1=1+ewTx+bewTx+b=1+ewTx+b1=wTx+b
参数估计
给定数据集
(
x
i
,
y
i
)
i
=
1
m
{(\mathbf x_i,y_i)}_{i=1}^m
(xi,yi)i=1m,Logistic回归模型最大化对数似然
L
L
(
w
,
b
)
=
ln
∏
i
=
1
m
P
(
y
i
∣
x
i
;
w
,
b
)
=
∑
i
=
1
m
ln
P
(
y
i
∣
x
i
;
w
,
b
)
\begin{aligned} LL(\mathbf w,b)&=\ln\prod_{i=1}^mP(y_i|\mathbf x_i;\mathbf w,b)\\ &=\sum_{i=1}^m\ln P(y_i|\mathbf x_i;\mathbf w,b) \end{aligned}
LL(w,b)=lni=1∏mP(yi∣xi;w,b)=i=1∑mlnP(yi∣xi;w,b)
令
w
^
=
[
w
b
]
,
x
^
=
[
x
1
]
\mathbf{\hat w}=\begin{bmatrix} \mathbf w \\ b \end{bmatrix},\hat{\mathbf x}=\begin{bmatrix}\mathbf x & 1\end{bmatrix}
w^=[wb],x^=[x1],则
w
T
x
+
b
\mathbf{w^T x}+b
wTx+b可简写为
w
^
T
x
^
\mathbf{\hat w^T\hat x}
w^Tx^。根据事件的独立性,
P
(
y
i
∣
x
i
;
w
,
b
)
=
P
(
y
=
1
∣
x
i
^
;
w
^
)
y
i
P
(
y
=
0
∣
x
i
^
;
w
^
)
1
−
y
i
=
(
1
1
+
e
−
w
^
T
x
^
i
)
y
i
(
1
1
+
e
w
^
T
x
^
i
)
1
−
y
i
\begin{aligned} P(y_i|\mathbf x_i;\mathbf w,b)&=P(y=1|\hat{\mathbf x_i};\mathbf{\hat w})^{y_i}P(y=0|\hat{\mathbf x_i};\mathbf{\hat w})^{1-y_i}\\ &=\left(\frac1{1+e^{-\mathbf{\mathbf{\hat w}^T\hat x_i}}}\right)^{y_i}\left(\frac1{1+e^{\mathbf{\mathbf{\hat w}^T\hat x_i}}}\right)^{1-y_i} \end{aligned}
P(yi∣xi;w,b)=P(y=1∣xi^;w^)yiP(y=0∣xi^;w^)1−yi=(1+e−w^Tx^i1)yi(1+ew^Tx^i1)1−yi
经写者多方排查,上式在不同的书中结果是不一致的,主要代表为周志华的《机器学习》和李航的《统计学习方法》。周志华的《机器学习》可能是采用了全概率公式,推导过程有误,这里以李航《统计学习方法》的为准。
代入对数似然得
L
L
(
w
^
)
=
∑
i
=
1
m
ln
(
1
1
+
e
−
w
^
T
x
^
i
)
y
i
(
1
1
+
e
w
^
T
x
^
i
)
1
−
y
i
=
∑
i
=
1
m
[
w
^
T
x
^
i
y
i
−
ln
(
1
+
e
w
^
T
x
^
i
)
]
\begin{aligned} LL(\mathbf{\hat w})&=\sum_{i=1}^m\ln\left(\frac1{1+e^{-\mathbf{\mathbf{\hat w}^T\hat x_i}}}\right)^{y_i}\left(\frac1{1+e^{\mathbf{\mathbf{\hat w}^T\hat x_i}}}\right)^{1-y_i}\\ &=\sum_{i=1}^m[\mathbf{\hat w^T\hat x_i}y_i-\ln(1+e^{\mathbf{\mathbf{\hat w}^T\hat x_i}})] \end{aligned}
LL(w^)=i=1∑mln(1+e−w^Tx^i1)yi(1+ew^Tx^i1)1−yi=i=1∑m[w^Tx^iyi−ln(1+ew^Tx^i)]
对
L
L
(
w
^
)
LL(\mathbf{\hat w})
LL(w^)求在极大值时的
w
^
\mathbf{\hat w}
w^等价于求
−
L
L
(
w
^
)
-LL(\mathbf{\hat w})
−LL(w^)在极小值时的
w
^
\mathbf{\hat w}
w^,即
w
^
=
arg
max
w
^
L
L
(
w
^
)
=
arg
max
w
^
∑
i
=
1
m
[
w
^
T
x
^
i
y
i
−
ln
(
1
+
e
w
^
T
x
^
i
)
]
=
arg
min
w
^
(
−
L
L
(
w
^
)
)
=
arg
min
w
^
∑
i
=
1
m
[
ln
(
1
+
e
w
^
T
x
^
i
)
−
w
^
T
x
^
i
y
i
]
\begin{aligned} \mathbf{\hat w}&=\arg\max_{\mathbf{\hat w}}LL(\mathbf{\hat w}) =\arg\max_{\mathbf{\hat w}}\sum_{i=1}^m[\mathbf{\hat w^T\hat x_i}y_i-\ln(1+e^{\mathbf{\mathbf{\hat w}^T\hat x_i}})]\\ &=\arg\min_{\mathbf{\hat w}}(-LL(\mathbf{\hat w})) =\arg\min_{\mathbf{\hat w}}\sum_{i=1}^m[\ln(1+e^{\mathbf{\mathbf{\hat w}^T\hat x_i}})-\mathbf{\hat w^T\hat x_i}y_i] \end{aligned}
w^=argw^maxLL(w^)=argw^maxi=1∑m[w^Tx^iyi−ln(1+ew^Tx^i)]=argw^min(−LL(w^))=argw^mini=1∑m[ln(1+ew^Tx^i)−w^Tx^iyi]
梯度下降法
梯度下降法又称最速下降法,是求解无约束最优化问题的一种最常用的方法,具有实现简单的优点,梯度下降法是迭代算法,每一步需要求解目标函数的梯度向量。
针对Sigmoid函数,要求解的无约束最优化问题是
min
(
f
(
w
^
)
)
=
min
(
−
L
L
(
w
^
)
)
\min(f(\mathbf{\hat w}))=\min(-LL(\mathbf{\hat w}))
min(f(w^))=min(−LL(w^))
w
^
∗
\mathbf{\hat w}^*
w^∗表示目标函数
f
(
w
^
)
f(\mathbf{\hat w})
f(w^)的极小点。
梯度下降法是一种迭代算法。选取适当的初值
w
^
0
\mathbf{\hat w}_0
w^0,不断迭代,更新
w
^
\mathbf{\hat w}
w^的值,进行目标函数的极小化,直到收敛。由于负梯度方向是使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新
w
^
\mathbf{\hat w}
w^的值,从而达到减少函数值的目的。
由于
f
(
w
^
)
f(\mathbf{\hat w})
f(w^)具有一阶连续偏导数,若第
k
k
k次迭代值为
w
^
k
\mathbf{\hat w}_k
w^k,可求得
f
(
w
^
)
f(\mathbf{\hat w})
f(w^)在
w
^
k
\mathbf{\hat w}_k
w^k的梯度为:
G
(
w
^
k
)
=
∇
f
(
w
^
k
)
)
=
∂
f
(
w
^
k
)
∂
w
^
k
=
∑
i
=
1
m
(
1
1
+
e
−
w
^
k
T
x
^
i
−
y
i
)
x
^
i
G(\mathbf{\hat w}_k)=\nabla f(\mathbf{\hat w}_k))=\frac{\partial f(\mathbf{\hat w}_k)}{\partial\mathbf{\hat w}_k}=\sum_{i=1}^m\left(\frac{1}{1+e^{-\mathbf{\mathbf{\hat w}_k^T\hat x_i}}}-y_i\right)\mathbf{\hat x_i}
G(w^k)=∇f(w^k))=∂w^k∂f(w^k)=i=1∑m(1+e−w^kTx^i1−yi)x^i
给定一个精度
ϵ
\epsilon
ϵ,一般取较小值,当
∣
∣
G
(
w
^
k
)
∣
∣
<
ϵ
||G(\mathbf{\hat w}_k)||<\epsilon
∣∣G(w^k)∣∣<ϵ时,停止迭代。此时找到了符合精度要求的极小值解
w
^
∗
=
w
^
k
\mathbf{\hat w}^*=\mathbf{\hat w}_k
w^∗=w^k;否则,令新的点
w
^
k
+
1
=
w
^
k
−
ϵ
G
(
w
^
k
)
\mathbf{\hat w}_{k+1}=\mathbf{\hat w}_k-\epsilon G(\mathbf{\hat w}_k)
w^k+1=w^k−ϵG(w^k),继续迭代。
牛顿法
牛顿法基于一个二阶泰勒展开来近似
w
^
0
\mathbf{\hat w}_0
w^0附近的
f
(
w
^
)
f(\mathbf{\hat w})
f(w^):
f
(
w
^
)
≈
f
(
w
^
0
)
+
(
w
^
−
w
^
0
)
T
∇
f
(
w
^
0
)
+
1
2
(
w
^
−
w
^
0
)
T
∇
2
f
(
w
^
0
)
(
w
^
−
w
^
0
)
≈
f
(
w
^
0
)
+
(
w
^
−
w
^
0
)
T
∑
i
=
1
m
(
1
1
+
e
−
w
^
k
T
x
^
i
−
y
i
)
x
^
i
+
1
2
(
w
^
−
w
^
0
)
T
[
∑
i
=
1
m
e
w
^
k
T
x
^
i
(
1
+
e
w
^
k
T
x
^
i
)
2
x
^
i
x
^
i
T
]
(
w
^
−
w
^
0
)
\begin{aligned} f(\mathbf{\hat w})&\approx f(\mathbf{\hat w}_0)+(\mathbf{\hat w}-\mathbf{\hat w}_0)^T\nabla f(\mathbf{\hat w}_0)+\frac12(\mathbf{\hat w}-\mathbf{\hat w}_0)^T\nabla^2f(\mathbf{\hat w}_0)(\mathbf{\hat w}-\mathbf{\hat w}_0)\\ &\approx f(\mathbf{\hat w}_0)+(\mathbf{\hat w}-\mathbf{\hat w}_0)^T\sum_{i=1}^m\left(\frac{1}{1+e^{-\mathbf{\mathbf{\hat w}_k^T\hat x_i}}}-y_i\right)\mathbf{\hat x_i}+\frac12(\mathbf{\hat w}-\mathbf{\hat w}_0)^T\left[\sum_{i=1}^m\frac{e^{\mathbf{\mathbf{\hat w}_k^T\hat x_i}}}{(1+e^{\mathbf{\mathbf{\hat w}_k^T\hat x_i}})^2}\mathbf{\hat x}_i\mathbf{\hat x}_i^T\right](\mathbf{\hat w}-\mathbf{\hat w}_0) \end{aligned}
f(w^)≈f(w^0)+(w^−w^0)T∇f(w^0)+21(w^−w^0)T∇2f(w^0)(w^−w^0)≈f(w^0)+(w^−w^0)Ti=1∑m(1+e−w^kTx^i1−yi)x^i+21(w^−w^0)T[i=1∑m(1+ew^kTx^i)2ew^kTx^ix^ix^iT](w^−w^0)
其中
H
(
f
(
w
^
0
)
)
=
∇
2
f
(
x
0
)
H(f(\mathbf{\hat w}_0))=\nabla^2 f(\mathbf{x_0})
H(f(w^0))=∇2f(x0)是Hessian矩阵,详见神经网络基础——矩阵求导运算
给定精度
ϵ
\epsilon
ϵ,假设
w
^
k
+
1
\mathbf{\hat w}_{k+1}
w^k+1满足精度条件
0
≈
G
(
w
^
k
+
1
)
=
∇
f
(
w
^
k
+
1
)
<
ϵ
0\approx G(\mathbf{\hat w}_{k+1})=\nabla f(\mathbf{\hat w}_{k+1})<\epsilon
0≈G(w^k+1)=∇f(w^k+1)<ϵ
则有
G
(
w
^
k
)
≈
(
(
w
^
k
+
1
−
w
^
k
)
T
)
−
1
(
f
(
w
^
k
+
1
)
−
f
(
w
^
k
)
)
≈
∇
f
(
w
^
k
)
+
1
2
∇
2
f
(
w
^
k
)
(
w
^
k
+
1
−
w
^
k
)
≈
0
G(\mathbf{\hat w}_k)\approx((\mathbf{\hat w}_{k+1}-\mathbf{\hat w}_k)^T)^{-1}(f(\mathbf{\hat w}_{k+1})-f(\mathbf{\hat w}_k))\approx\nabla f(\mathbf{\hat w}_k)+\frac12\nabla^2f(\mathbf{\hat w}_k)(\mathbf{\hat w}_{k+1}-\mathbf{\hat w}_k)\approx0
G(w^k)≈((w^k+1−w^k)T)−1(f(w^k+1)−f(w^k))≈∇f(w^k)+21∇2f(w^k)(w^k+1−w^k)≈0
由上式可得迭代公式
w
^
k
+
1
=
w
^
k
−
2
H
(
f
(
w
^
0
)
)
−
1
G
(
w
^
k
)
\mathbf{\hat w}_{k+1}=\mathbf{\hat w}_k-2H(f(\mathbf{\hat w}_0))^{-1}G(\mathbf{\hat w}_k)
w^k+1=w^k−2H(f(w^0))−1G(w^k)
拟牛顿法
牛顿法由于每次迭代都需要计算一次黑塞矩阵的逆矩阵,这一过程比较复杂。拟牛顿法的思想是构造一个近似矩阵 N N N来替代黑塞矩阵的逆 H − 1 H^{-1} H−1。常用的算法有DFP算法(Davidon-Fletcher-Powell, DFP algorithm)、BFGS(Broyden-Fletcher-Goldfarb-Shanno, BFGS algorithm)、Broyden类算法(Broyden’s algorithm)等。由于篇幅原因,这里不再赘述。后续另开篇幅单独介绍。
更多推荐
所有评论(0)