2. 神经网络

2. 神经网络

神经网络涉及的范围极其广,本章需要了解的推导我们正常给出,但一些附加的内容将以引用块给出,例如:

written by XDU微积冯

1. Feed-forward 前馈神经网络

对于前馈神经网络的推导,我们以下图为样例:

首先,我们有输入变量 x 1 , x 2 , . . . , x D x_1,x_2,...,x_D x1,x2,...,xD。hidden层的单元 j j j可以由如下公式计算:
a j = ∑ i = 1 D w j i ( 1 ) x i + w j 0 ( 1 ) = ∑ i = 0 D w j i ( 1 ) x i (1) a_j = \sum_{i=1}^D w_{ji}^{(1)}x_i + w_{j0}^{(1)} = \sum_{i=0}^D w_{ji}^{(1)}x_i \tag{1} aj=i=1Dwji(1)xi+wj0(1)=i=0Dwji(1)xi(1)

z j = h ( a j ) (2) z_j = h(a_j)\tag{2} zj=h(aj)(2)

其中我们设 x 0 = 1 x_0=1 x0=1 h ( ⋅ ) h(\cdot) h()表示非线性激活函数(例如logistic sigmoid)。这样hidden layer的 M M M个单元都可以计算得出。那么输出层的单元也可以通过类似方法得到:
a k = ∑ j = 1 M w k j ( 2 ) z j + w k 0 ( 2 ) = ∑ j = 0 M w k j ( 2 ) z j (3) a_k = \sum_{j=1}^M w_{kj}^{(2)}z_j + w_{k0}^{(2)} = \sum_{j=0}^M w_{kj}^{(2)}z_j \tag{3} ak=j=1Mwkj(2)zj+wk0(2)=j=0Mwkj(2)zj(3)

y k = { a k , 针 对 回 归 问 题 σ ( a k ) = 1 1 + exp ⁡ ( − a k ) , 针 对 二 分 类 (4) y_k = \begin{cases} a_k, \quad 针对回归问题\\ \sigma(a_k) = \frac{1}{1+\exp(-a_k)}, \quad针对二分类 \end{cases}\tag{4} yk={ak,σ(ak)=1+exp(ak)1,(4)

其中我们设 z 0 = 1 z_0=1 z0=1。这样我们整合(1)~(4)式,可以得到两层神经网络的前馈网络函数:
y k ( x , w ) = σ ( ∑ j = 1 M w k j ( 2 ) h ( ∑ i = 1 D w j i ( 1 ) x i + w j 0 ( 1 ) ) + w k 0 ( 2 ) ) = σ ( ∑ j = 0 M w k j ( 2 ) h ( ∑ i = 0 D w j i ( 1 ) x i ) ) (5) \begin{aligned} y_k(\pmb{x},\pmb{w}) &= \sigma\left(\sum_{j=1}^M w_{kj}^{(2)}h\left(\sum_{i=1}^Dw_{ji}^{(1)}x_i+w_{j0}^{(1)} \right)+w_{k0}^{(2)} \right)\\ &= \sigma\left(\sum_{j=0}^M w_{kj}^{(2)}h\left(\sum_{i=0}^Dw_{ji}^{(1)}x_i \right) \right) \end{aligned}\tag{5} yk(xxx,www)=σ(j=1Mwkj(2)h(i=1Dwji(1)xi+wj0(1))+wk0(2))=σ(j=0Mwkj(2)h(i=0Dwji(1)xi))(5)
可以看到,两层神经网络之间使用了连续的非线性激活函数。这是因为线性激活函数的使用,会导致整个网络和一个无隐含层的线性变换等价。并且连续的性质使得网络参数变得可微

并且,网络结构可以是稀疏的,并不一定要全连接(即求和时不需要包含上一次全部节点),如卷积神经网络CNN。

2. Cost Function & 网络训练

2.1 损失函数

2.1.1 回归问题

对于回归问题,给定输入数据 x n ( n = 1 , . . . , N ) \pmb{x}_n(n=1,...,N) xxxn(n=1,...,N),和目标变量 t n t_n tn,我们的损失函数可以表示为
E ( w ) = 1 2 ∑ n = 1 N ∥ y ( x n , w ) − t n ∥ 2 (6) E(\pmb{w}) = \frac{1}{2}\sum_{n=1}^N \lVert y(\pmb{x}_n,\pmb{w}) - t_n \rVert^2\tag{6} E(www)=21n=1Ny(xxxn,www)tn2(6)
我们设目标变量 t t t服从高斯分布,均值与 x \pmb{x} xxx相关,由神经网络的输出确定,即
p ( t ∣ x , w ) = N ( t ∣ y ( x , w ) , β − 1 ) (7) p(t|\pmb{x},\pmb{w}) = \mathcal{N}(t|y(\pmb{x},\pmb{w}),\beta^{-1})\tag{7} p(txxx,www)=N(ty(xxx,www),β1)(7)
那么我们通过整个数据集 X = { x 1 , . . . , x N } X=\{\pmb{x_1},...,\pmb{x}_N \} X={x1x1x1,...,xxxN}和其目标变量 t = { t 1 , . . . , t N } \pmb{t}=\{t_1,...,t_N \} ttt={t1,...,tN}(假设数据独立同分布),可以构造似然函数
p ( t ∣ X , w , β ) = ∏ n = 1 N p ( t n ∣ x n , w , β ) = ∏ n = 1 N N ( t ∣ y ( x n , w ) , β − 1 ) (8) p(\pmb{t}|X,\pmb{w},\beta) = \prod_{n=1}^N p(t_n|\pmb{x}_n,\pmb{w},\beta) = \prod_{n=1}^N \mathcal{N}(t|y(\pmb{x}_n,\pmb{w}),\beta^{-1})\tag{8} p(tttX,www,β)=n=1Np(tnxxxn,www,β)=n=1NN(ty(xxxn,www),β1)(8)
我们将似然函数取负对数,就有
− ln ⁡ p ( t ∣ X , w , β ) = β 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 + N 2 ln ⁡ 2 π − N 2 ln ⁡ β = β 2 E ( w ) + N 2 ln ⁡ 2 π − N 2 ln ⁡ β (9) \begin{aligned} -\ln p(\pmb{t}|X,\pmb{w},\beta) &= \frac{\beta}{2}\sum_{n=1}^N\{y(\pmb{x}_n,\pmb{w})-t_n \}^2+\frac{N}{2}\ln 2\pi -\frac{N}{2}\ln \beta\\ &= \frac{\beta}{2}E(\pmb{w}) + \frac{N}{2}\ln 2\pi -\frac{N}{2}\ln \beta \end{aligned}\tag{9} lnp(tttX,www,β)=2βn=1N{y(xxxn,www)tn}2+2Nln2π2Nlnβ=2βE(www)+2Nln2π2Nlnβ(9)
其中与参数 w \pmb{w} www有关的项就是平方和损失。我们可以通过最小化该损失得到最优的参数 w M L \pmb{w}_{ML} wwwML。接着我们可以寻找 β \beta β的最优值
∇ L ( β ) = 1 2 ∑ n = 1 N { y ( x n , w ) − t n } 2 − N 2 1 β = 0 1 β M L = 1 N ∑ n = 1 N { y ( x n , w ) − t n } 2 (10) \nabla L(\beta) = \frac{1}{2}\sum_{n=1}^N \{y(\pmb{x}_n,\pmb{w})-t_n \}^2 - \frac{N}{2}\frac{1}{\beta}=0 \\ \frac{1}{\beta_{ML}} = \frac{1}{N}\sum_{n=1}^N \{y(\pmb{x}_n,\pmb{w})-t_n \}^2\tag{10} L(β)=21n=1N{y(xxxn,www)tn}22Nβ1=0βML1=N1n=1N{y(xxxn,www)tn}2(10)
对于多元目标变量 t \pmb{t} ttt,我们也可以有类似推导,这里不再赘述。

根据式(4),对于神经网络的输出 y k = a k y_k= a_k yk=ak,在回归问题下,使用平方和损失有如下性质
∂ E ∂ a k = y k − t k (11) \frac{\partial E}{\partial a_k} = y_k - t_k\tag{11} akE=yktk(11)

2.1.2 二分类和多分类

针对二分类,我们使用一元目标变量 t t t表示类别, t = 1 t=1 t=1表示类别 C 1 C_1 C1 t = 0 t=0 t=0表示类别 C 2 C_2 C2。它使用sigmoid激活函数
y = σ ( a ) = 1 1 + exp ⁡ ( − a ) (12) y = \sigma(a) = \frac{1}{1+\exp(-a)}\tag{12} y=σ(a)=1+exp(a)1(12)
从而 0 ≤ y ( x , w ) ≤ 1 0\leq y(\pmb{x},\pmb{w})\leq 1 0y(xxx,www)1。若 p ( C 1 ∣ x ) = y ( x , w ) p(C_1|\pmb{x})=y(\pmb{x},\pmb{w}) p(C1xxx)=y(xxx,www),则 p ( C 2 ∣ x ) = 1 − y ( x , w ) p(C_2|\pmb{x})=1-y(\pmb{x},\pmb{w}) p(C2xxx)=1y(xxx,www)。于是对于目标变量 t t t,其类条件概率为
p ( t ∣ x , w ) = y ( x , w ) t ( 1 − y ( x , w ) ) 1 − t (13) p(t|\pmb{x},\pmb{w}) = y(\pmb{x},\pmb{w})^t (1-y(\pmb{x},\pmb{w}))^{1-t}\tag{13} p(txxx,www)=y(xxx,www)t(1y(xxx,www))1t(13)
则对于数据集而言,似然函数可以表示为
p ( t ∣ X , w ) = ∏ n = 1 N y n t n ( 1 − y n ) t n (14) p(\pmb{t}|X,\pmb{w}) = \prod_{n=1}^N y_n^{t_n} (1-y_n)^{t_n}\tag{14} p(tttX,www)=n=1Nyntn(1yn)tn(14)
损失函数(交叉熵损失)取为似然函数的负对数,即
E ( w ) = − ∑ n = 1 N { t n ln ⁡ y n + ( 1 − t n ) ln ⁡ ( 1 − y n ) } (15) E(\pmb{w}) = -\sum_{n=1}^N \{t_n\ln y_n + (1-t_n)\ln(1-y_n) \}\tag{15} E(www)=n=1N{tnlnyn+(1tn)ln(1yn)}(15)
针对多个独立二分类问题,类似地有类条件概率、损失函数如下
p ( t ∣ x , w ) = ∏ k = 1 K y k ( x , w ) t k ( 1 − y k ( x , w ) ) 1 − t k E ( w ) = − ∑ n = 1 N ∑ k = 1 K { t n k ln ⁡ y n k + ( 1 − t n k ) ln ⁡ ( 1 − y n k ) } (16) p(\pmb{t}|\pmb{x},\pmb{w}) = \prod_{k=1}^K y_k(\pmb{x},\pmb{w})^{t_k} (1-y_k(\pmb{x},\pmb{w}))^{1-t_k} \\ E(\pmb{w}) = -\sum_{n=1}^N\sum_{k=1}^K \{t_{nk} \ln y_{nk}+(1-t_{nk})\ln(1-y_{nk}) \}\tag{16} p(tttxxx,www)=k=1Kyk(xxx,www)tk(1yk(xxx,www))1tkE(www)=n=1Nk=1K{tnklnynk+(1tnk)ln(1ynk)}(16)
针对多分类问题,激活函数为softmax函数
y k ( x , w ) = p ( C k ∣ x ) = exp ⁡ ( a k ( x , w ) ) ∑ j exp ⁡ ( a j ( x , w ) ) (17) y_k(\pmb{x},\pmb{w}) = p(C_k|\pmb{x}) =\frac{\exp\left(a_k(\pmb{x},\pmb{w})\right)}{\sum_j\exp(a_j(\pmb{x},\pmb{w}))}\tag{17} yk(xxx,www)=p(Ckxxx)=jexp(aj(xxx,www))exp(ak(xxx,www))(17)
可见 ∑ j y j ( x , w ) = 1 \sum_jy_j(\pmb{x},\pmb{w})=1 jyj(xxx,www)=1。损失函数可以表示为
E ( w ) = − ∑ n = 1 N ∑ k = 1 K t n k ln ⁡ y k ( x n , w ) (18) E(\pmb{w}) = -\sum_{n=1}^N\sum_{k=1}^K t_{nk}\ln y_k(\pmb{x}_n,\pmb{w})\tag{18} E(www)=n=1Nk=1Ktnklnyk(xxxn,www)(18)

2.2 局部二次近似

我们将损失函数在某点泰勒展开
E ( w ) ≃ E ( w ^ ) + ( w − w ^ ) T b + 1 2 ( w − w ^ ) T H ( w − w ^ ) (19) E(\pmb{w}) \simeq E(\hat{\pmb{w}}) + (\pmb{w}-\hat{\pmb{w}})^T\pmb{b}+\frac{1}{2}(\pmb{w}-\hat{\pmb{w}})^TH(\pmb{w}-\hat{\pmb{w}})\tag{19} E(www)E(www^)+(wwwwww^)Tbbb+21(wwwwww^)TH(wwwwww^)(19)
使用其中的梯度信息寻找最优参数 w w w。具体流程详见PPT,并非重点。

3. Backpropagation 反向传播

对于整个数据集而言,损失函数表达为各数据点的损失之和
E ( w ) = ∑ n = 1 N E n ( w ) (20) E(\pmb{w}) = \sum_{n=1}^N E_n(\pmb{w})\tag{20} E(www)=n=1NEn(www)(20)
对总体损失进行梯度下降会面临计算量大,数据冗余的问题,所以我们采用顺序梯度下降(也被称为在线梯度下降)
w τ + 1 = w τ − η ∇ E n ( w τ ) (21) \pmb{w}^{\tau+1} = \pmb{w}^\tau - \eta\nabla E_n(\pmb{w}^\tau)\tag{21} wwwτ+1=wwwτηEn(wwwτ)(21)
现在,我们使用损失函数式(6)进行讨论。

对于一个前馈网络,我们可以由式(1)(2)得
a j = ∑ i w j i z i z j = h ( a j ) (22) a_j = \sum_i w_{ji} z_i\\ z_j = h(a_j)\tag{22} aj=iwjizizj=h(aj)(22)
其中我们省略了上标,即 z i z_i zi表示上一层的输出(即本层输入), z j z_j zj表示这一层的输出。

我们求损失函数 E n E_n En关于该层参数 w j i w_{ji} wji的导数,有:
∂ E n ∂ w j i = ∂ E n ∂ a j ∂ a j ∂ w j i = δ j z j (23) \begin{aligned} \frac{\partial E_n}{\partial w_{ji}} &= \frac{\partial E_n}{\partial a_j}\frac{\partial a_j}{\partial w_{ji}}\\ &= \delta_j z_j\tag{23} \end{aligned} wjiEn=ajEnwjiaj=δjzj(23)
其中 δ j = ∂ E n ∂ a j \delta_j = \frac{\partial E_n}{\partial a_j} δj=ajEn。由上式可得,想要求解(23),我们只需要得到 δ j \delta_j δj的值即可

对于神经网络的输出层单元 y k = a k y_k=a_k yk=ak,我们使用式(11)有
δ k = ∂ E n ∂ a k = y k − t k (24) \delta_k = \frac{\partial E_n}{\partial a_k} = y_k - t_k\tag{24} δk=akEn=yktk(24)
则对于输出层的上一层,我们有
δ j = ∑ k ∂ E n ∂ a k ∂ a k ∂ a j = ∑ k δ k ⋅ ( h ′ ( a j ) w k j ) = h ′ ( a j ) ∑ k w k j δ k (25) \begin{aligned} \delta_j &= \sum_k \frac{\partial E_n}{\partial a_k}\frac{\partial a_k}{\partial a_j}\\ &= \sum_k \delta_k\cdot (h'(a_j)w_{kj}) =h'(a_j)\sum_k w_{kj}\delta_k \end{aligned}\tag{25} δj=kakEnajak=kδk(h(aj)wkj)=h(aj)kwkjδk(25)
式(25)就是反向传播的公式。我们可以通过此式继续求解 a j a_j aj所在层的上一层,以此类推。

于是反向传播的4个步骤可以表述为

  1. 对网络的一个输入 x n \pmb{x}_n xxxn,先通过正向传播,计算出所有的激活 z j z_j zj
  2. 用公式(24)计算所有输出单元的 δ k \delta_k δk
  3. 使用式(25)反向传播,获得所有hidden单元的 δ j \delta_j δj
  4. 使用式(23)计算所有权重的导数。

最终我们可以用式(21)作每一轮的更新,迭代求得最优解。

4. 神经网络的正则化

对神经网络的正则化有多种方式。

神经网络的输入层和输出层通常由数据维度和目标变量维度决定,但中间的hidden layer的维度(或称隐含单元数量)M则是可调节的超参数。我们可以通过调节M的具体值来提升模型的泛化性能,如下图所示:

当然,我们有其他的方式来提升神经网络模型的泛化能力,以避免过拟合。

4.1 权值衰减及其变式

一个简单且常用的方法就是在损失函数上加入正则化项
E ~ ( w ) = E ( w ) + λ 2 w T w (26) \tilde E(\pmb{w}) = E(\pmb{w}) + \frac{\lambda}{2}\pmb{w}^T\pmb{w}\tag{26} E~(www)=E(www)+2λwwwTwww(26)
该式被称为权值衰减(weight decay)。权值衰减的正则化项(第二项)可以表示为权值 w \pmb{w} www上的零均值高斯先验分布的负对数。权值衰减的局限是它与网络映射的确定缩放性质不相容。

什么是网络映射的缩放性质?

考虑简单的两层网络
z j = h ( ∑ i w j i x i + w j 0 ) y k = ∑ j w k j z j + w k 0 (27) z_j = h\left( \sum_i w_{ji}x_i+w_{j0} \right)\\ y_k = \sum_jw_{kj}z_j+w_{k0}\tag{27} zj=h(iwjixi+wj0)yk=jwkjzj+wk0(27)
假设我们对输入变量进行线性变换,形式为
x i → x ~ i = a x i + b (28) x_i \rightarrow \tilde{x}_i=ax_i+b\tag{28} xix~i=axi+b(28)
为使网络给出的映射不发生变化,我们可以对权重作如下变化
w j i → w ~ j i = 1 a w j i w j 0 → w ~ j 0 = w j 0 − b a ∑ i w j i (29) w_{ji} \rightarrow \tilde{w}_{ji} = \frac{1}{a}w_{ji}\\ w_{j0} \rightarrow \tilde{w}_{j0}=w_{j0} - \frac{b}{a}\sum_iw_{ji}\tag{29} wjiw~ji=a1wjiwj0w~j0=wj0abiwji(29)
类似地,针对输出变量进行线性变换,我们也可以通过对权重进行变换而使网络的映射不发生变化:
y k → y ~ k = c y k + d (30) y_k \rightarrow \tilde{y}_k = cy_k+d\tag{30} yky~k=cyk+d(30)

w k j → w ~ k j = c ⋅ w k j w k 0 → w ~ k 0 = c w k 0 + d (31) w_{kj} \rightarrow \tilde{w}_{kj}=c\cdot w_{kj}\\ w_{k0} \rightarrow \tilde{w}_{k0}=cw_{k0}+d\tag{31} wkjw~kj=cwkjwk0w~k0=cwk0+d(31)

在每次线性变换时,我们都修改了权重 w w w的数值,这会使得权值衰减的正则化项发生变化,不满足映射的不变性。于是我们要优化权值衰减的表达式,使之满足这种不变性。这样的正则化项为
λ 1 2 ∑ w ∈ W 1 w 2 + λ 2 2 ∑ w ∈ W 2 w 2 (32) \frac{\lambda_1}{2}\sum_{w\in \mathcal{W}_1}w^2+\frac{\lambda_2}{2}\sum_{w\in \mathcal{W}_2}w^2\tag{32} 2λ1wW1w2+2λ2wW2w2(32)
其中 W 1 , W 2 \mathcal{W}_1,\mathcal{W}_2 W1,W2分别表示第一层权重和第二层权重。我们可以通过对参数 λ \lambda λ进行线性变换而使正则化项不变。

式(32)就是权值衰减的一个变式,它则对应于下面形式的先验概率分布
p ( w ∣ α 1 , α 2 ) ∝ exp ⁡ ( − α 1 2 ∑ w ∈ W 1 w 2 − α 2 2 ∑ w ∈ W 2 w 2 ) (33) p(\pmb{w}|\alpha_1,\alpha_2) \propto \exp \left( -\frac{\alpha_1}{2}\sum_{w\in \mathcal{W}_1}w^2 - \frac{\alpha_2}{2}\sum_{w\in \mathcal{W}_2}w^2 \right)\tag{33} p(wwwα1,α2)exp(2α1wW1w22α2wW2w2)(33)
但是,这个形式的先验概率首先不能够被归一化,其次会给正则化系数的选择带来困难。

4.2 早停止

因为非线性网络模型的训练对应于误差函数的迭代减小,而误差函数是针对训练集定义的,且随优化算法的迭代逐渐减小(或不增)。但对于验证集数据上的损失,通常随着优化算法迭代先减小后增大,如下图所示:

在这里插入图片描述

早停止是指训练过程可以在关于验证集误差最小的点停止,这样可以得到一个泛化性能最强的模型。

4.3 不变性 Invariances

在许多模式识别的应用中,对于输入变量的一系列变换,模型的预测结果不应该发生变化,或者说应具有不变性。例如手写数字识别的分类问题中,图像的类别应与图片中数字的位置和大小无关,尽管位置和大小的变换会导致图片像素值发生巨大变化。

如果可以获得足够多的训练模式(即包含足够多表示各种变换的效果的样本),那么可调节的模型(例如神经网络)可以学习到不变性。但实际中训练样本受限,我们必须有其他方法来让这些模型学习不变性。具体的方法有:

  1. 复制训练模式,同时根据要求的不变性进行变换,对训练集进行扩展。例如在手写数字识别数据集中,把每个样本复制多次,在对每个复制的样本执行不同的平移操作。

    评价:简单、可以用来处理复杂的不变性

在这里插入图片描述

  1. 为误差函数加上一个正则化项,用以惩罚当输入变换时,输出发生的改变。这引出了切线传播方法。

    评价:保持了数据集不变性,给误差函数加了正则化项。

切线传播方法概述:

对于一个特定输入向量 x n \pmb{x}_n xxxn,考虑变换产生的效果。假设变换是连续的(例如平移和旋转),那么变换的模式会扫过D维输入空间的一个流形 M \mathcal{M} M。例如当D=2时,有如下图所示

img

假设变换由单一参数 ξ \xi ξ控制(例如 ξ \xi ξ可能是旋转的角度),那么被 x n \pmb{x}_n xxxn扫过的子空间 M \mathcal{M} M是一维的,并且以 ξ \xi ξ为参数。将此变换作用于 x n \pmb{x}_n xxxn上产生的向量设为 s ( x n , ξ ) \pmb{s}(\pmb{x}_n,\xi) sss(xxxn,ξ),且 s ( x n , 0 ) = x n \pmb{s}(\pmb{x}_n,0)=\pmb{x}_n sss(xxxn,0)=xxxn。那么曲线 M \mathcal{M} M的切线就由方向导数 τ = ∂ x ∂ ξ \pmb{\tau}=\frac{\partial\pmb{x}}{\partial \xi} τττ=ξxxx给出,且点 x n \pmb{x}_n xxxn处有
τ n = ∂ s ( x n , ξ ) ∂ ξ ∣ ξ = 0 (34) \pmb{\tau}_n = \frac{\partial \pmb{s}(\pmb{x}_n,\xi)}{\partial \xi}\vert_{\xi=0}\tag{34} τττn=ξsss(xxxn,ξ)ξ=0(34)
输入变量变换后,输出通常会发生改变,输出单元k关于 ξ \xi ξ的导数为
∂ y k ∂ ξ ∣ ξ = 0 = ∑ i = 1 D ∂ y k ∂ x i ∂ x i ∂ ξ ∣ ξ = 0 = ∑ i = 1 D J k i τ i (35) \frac{\partial y_k}{\partial \xi}\vert_{\xi=0} = \sum_{i=1}^D \frac{\partial y_k}{\partial x_i}\frac{\partial x_i}{\partial \xi}\vert_{\xi=0}=\sum_{i=1}^D J_{ki}\tau_i\tag{35} ξykξ=0=i=1Dxiykξxiξ=0=i=1DJkiτi(35)
其中 J k i J_{ki} Jki是Jacobian矩阵的第(k,i)个元素。我们惩罚输出的这种改变,于是在损失函数上加入正则化项
E ~ = E + λ Ω (36) \tilde E = E + \lambda\Omega\tag{36} E~=E+λΩ(36)
λ \lambda λ为正则化系数,且
Ω = 1 2 ∑ n ∑ k ( ∂ y k ∂ ξ ∣ ξ = 0 ) 2 = 1 2 ∑ n ∑ k ( ∑ i = 1 D J n k i τ n i ) 2 (37) \Omega = \frac{1}{2}\sum_n\sum_k \left(\frac{\partial y_k}{\partial \xi}\vert_{\xi=0}\right)^2=\frac{1}{2}\sum_n\sum_k\left( \sum_{i=1}^DJ_{nki}\tau_{ni} \right)^2\tag{37} Ω=21nk(ξykξ=0)2=21nk(i=1DJnkiτni)2(37)

  1. 抽取在所要求的变换下不发生改变的特征,这使得不变性被整合到与处理过程中,任何使用这些特征作为输入的模型就会具有这些不变性。

    评价:对于数据集没有包含的变换,可以正确地进行外插(即只需要扩展特征向量即可)。

  2. 把不变性的性质整合到神经网络的构建中,或者对于相关向量机的方法,整合到核函数中。例如,通过使用局部接收场和共享权重的CNN算法。

5. Jacobian矩阵和Hessian矩阵

Jacobian矩阵可以求解网络输出关于网络输入的导数,Hessian矩阵计算的是误差函数的二阶导数。由于式(35)(37)使用了前者,故我们简要推导一下Jacobian矩阵的公式。而对于Hessian矩阵,它的计算有多种方法(对角近似、外积近似、有限差、精确计算),内容较多且不在考察范围内,且建议有时间可以看看PPT,本文不再赘述。

Jacobian矩阵的元素值是网络输出关于输入的导数
J k i = ∂ y k ∂ x i (38) J_{ki} = \frac{\partial y_k}{\partial x_i}\tag{38} Jki=xiyk(38)

这个矩阵的用处非常大。例如我们想关于下图的参数 w w w,最小化误差函数 E E E,那么误差函数的导数为

在这里插入图片描述
∂ E ∂ w = ∑ k , j ∂ E ∂ y k ∂ y k ∂ z j ∂ z j ∂ w (39) \frac{\partial E}{\partial w} = \sum_{k,j} \frac{\partial E}{\partial y_k} \frac{\partial y_k}{\partial z_j} \frac{\partial z_j}{\partial w}\tag{39} wE=k,jykEzjykwzj(39)
其中Jacobian矩阵出现在中间项。

其次,由于Jacobian矩阵度量了输出对于每个输入变量改变的敏感性(由于计算的是导数),因此它可以估计输入变量的误差 Δ x i \Delta x_i Δxi对于输出误差 Δ y k \Delta y_k Δyk的贡献
Δ y k = ∑ i ∂ y k ∂ x i Δ x i (40) \Delta y_k = \sum_i \frac{\partial y_k}{\partial x_i}\Delta x_i\tag{40} Δyk=ixiykΔxi(40)

可以看到,Jacobian矩阵是关于输入向量的矩阵,故对于新的输入向量,Jacobian矩阵要重新计算。可通过反向传播算法计算:
J k i = ∂ y k ∂ x i = ∑ j ∂ y k ∂ a j ∂ a j ∂ x i = ∑ j w j i ∂ y k ∂ a j (41) \begin{aligned} J_{ki} = \frac{\partial y_k}{\partial x_i} &= \sum_j \frac{\partial y_k}{\partial a_j}\frac{\partial a_j}{\partial x_i}\\ &= \sum_j w_{ji}\frac{\partial y_k}{\partial a_j}\tag{41} \end{aligned} Jki=xiyk=jajykxiaj=jwjiajyk(41)
其中的求和式作用于所有向单元i发送链接的单元j上( a j a_j aj是与 x i x_i xi有连接的,下一层中的单元,由于 x i x_i xi位于输入层,则 a j a_j aj是第一个隐含层的单元)。我们可以用式(25)来进一步计算

∂ y k ∂ a j = ∑ l ∂ y k ∂ a l ∂ a l ∂ a j = h ′ ( a j ) ∑ l w l j ∂ y k ∂ a l (42) \begin{aligned} \frac{\partial y_k}{\partial a_j} &= \sum_l \frac{\partial y_k}{\partial a_l}\frac{\partial a_l}{\partial a_j} \\ &= h'(a_j)\sum_l w_{lj}\frac{\partial y_k}{\partial a_l}\tag{42} \end{aligned} ajyk=lalykajal=h(aj)lwljalyk(42)
其中 a l a_l al又是 a j a_j aj所在隐含层的下一层中的单元。这样通过不断地递归,可以求得Jacobian矩阵的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值