神经网络基础——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)