前置知识

由于人工智能方向涉及较多数学知识,限于篇幅原因,作者无法将其列举完全,这里挑选几个较为重要的知识点作简要介绍。有些基础数学知识已经单独在其他文档中描述,这里不再赘述。如有疑问,欢迎评论或私信留言。

极大似然法

总体 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=1nP(Xi=xi;θ)=i=1nf(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} θ1lnL(θ)=0θ2lnL(θ)=0θklnL(θ)=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)(xx0)+21f′′(x0)(xx0)2+3!1f′′′(x0)(xx0)3++n!1f(n)(x0)(xx0)n+Rn(x)=i=0ni!f(i)(x0)(xx0)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(Xx)=1+eγxμ1=F(x)=γ(1+eγxμ)2eγxμ
式中, μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数。Logistic函数是一条以点 ( μ , 1 2 ) (\mu,\frac12) (μ,21)为中心对称的S型曲线
Logistic分布函数
Logistic密度函数

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+ez1
每一次进入神经网络节点的过程,都是先进行线性变换,再使用激励函数运算的过程。因此可有下式
{ 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+ez1
联合得到
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 ln1yy=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 1y是其反例可能性 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=1mP(yixi;w,b)=i=1mlnP(yixi;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(yixi;w,b)=P(y=1∣xi^;w^)yiP(y=0∣xi^;w^)1yi=(1+ew^Tx^i1)yi(1+ew^Tx^i1)1yi
经写者多方排查,上式在不同的书中结果是不一致的,主要代表为周志华的《机器学习》和李航的《统计学习方法》。周志华的《机器学习》可能是采用了全概率公式,推导过程有误,这里以李航《统计学习方法》的为准。
代入对数似然得
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=1mln(1+ew^Tx^i1)yi(1+ew^Tx^i1)1yi=i=1m[w^Tx^iyiln(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=1m[w^Tx^iyiln(1+ew^Tx^i)]=argw^min(LL(w^))=argw^mini=1m[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^kf(w^k)=i=1m(1+ew^kTx^i1yi)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)Tf(w^0)+21(w^w^0)T2f(w^0)(w^w^0)f(w^0)+(w^w^0)Ti=1m(1+ew^kTx^i1yi)x^i+21(w^w^0)T[i=1m(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 0G(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+1w^k)T)1(f(w^k+1)f(w^k))f(w^k)+212f(w^k)(w^k+1w^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^k2H(f(w^0))1G(w^k)

拟牛顿法

牛顿法由于每次迭代都需要计算一次黑塞矩阵的逆矩阵,这一过程比较复杂。拟牛顿法的思想是构造一个近似矩阵 N N N来替代黑塞矩阵的逆 H − 1 H^{-1} H1。常用的算法有DFP算法(Davidon-Fletcher-Powell, DFP algorithm)、BFGS(Broyden-Fletcher-Goldfarb-Shanno, BFGS algorithm)、Broyden类算法(Broyden’s algorithm)等。由于篇幅原因,这里不再赘述。后续另开篇幅单独介绍。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐