多层感知器 多层感知器,即由很多单层感知器构成的网络,见下图: 图 2.2 多层感知器 多层感知器总共分为三层,分别为输入输出层和隐藏层,神经元在
多层感知器
多层感知器,即由很多单层感知器构成的网络,见下图:
图 2.2 多层感知器
多层感知器总共分为三层,分别为输入输出层和隐藏层,神经元在不同层中依旧是用权值和偏差相连。不过在同一层中,所有的神经元是互不相连的,但与相邻的层相连。将神经元的加权输入映射作为输出的函数称为线性激活函数,它存在于所有的神经元中。上图中,输入值从L1的神经元通过函数计算后送到L2隐藏层中,而后的每一层都以同样的方式逐渐乡下传播,此为前馈神经网络。因为具有更多的输出,所以相较于单层感知器来说,能解决更复杂的问题。
前馈反向传播算法
1、将一系列样本作为输入,输出为一个结果;2、计算偏差,反过来调整权值。交替进行前馈和反向的传播,直到在迭代次数达一定要求后停止。
损失函数的定义为:E^N=1/2 ∑_(n=1)^N▒∑_(k=1)^c▒(t_k^n-y_k^n )^2 …………………………………(2.2)
其中,c为类别,N为训练样本个数,t为标号,k为维度,y为输入k个输出层单元的值。若x^n模式属于k类,则n类的标号中的k个元素为正数。用0或者负数填充t^n中的其他项。
根据各类中全部的误差求和得出整个数据集的误差,因而在计算反馈函数时则需要考虑到单独模式,则其第n类误差为:
E^N=1/2 ∑_(k=1)^c▒〖(t_k^n-y_k^n )=1/2〗 ‖t^n-y^n ‖_2^2…………………………………(2.3)
用以下的反向传播算法来求一般的全连接层的误差对网络权重的偏导:
x^l=f(u^l ),其中u^l=w^l x^(l-1)+b^l…………………………………….(2.4)
通常使用sigmoid逻辑函数或者双曲线正切函数作为输出激活函数f(∙),双曲线正切函数f(x)=atanh(bx)做[-∞,+∞]→[-a,+a]的映射,sigmoid激活函数f(x)=(1+e^(-βx) )^(-1)做[-∞,+∞]→[0,1]的映射。Sigmoid函数输出基本趋于0,而双曲线正切函数则与其相反。规则化训练数据后,使特征值方差为1,均值 为0,就会收敛得更快。
由反向传播得出的误差信号定义为:
∂E/∂b=∂E/∂u ∂/∂=δ……………………………………..(2.5)
∂u/∂b=1。所以对一个单一的单元所有输入的误差信号等于其反向传播的偏导,可由下式得出:
δ^l=(W^(l+1) )^T δ^(l+1) 。f'(u^l )……………………………..(2.6)
“。”为元素相乘,输出层神经元的误差信号与(2.3)中的误差函数稍有些不同:
δ^L=f^'(u^L ) 。(y^n-t^n )………………………………...(2.7)
计算输入矢量(上一层输出)与误差信号的外积,即是此神经元的输出乘其增量,即为更新权重的增量函数:
∂E/〖∂W〗^l =x^(l-1) (δ^l )^T……………………………………..…..(2.8)
∆W^l=-η ∂E/〖∂W〗^l …………………………………………...(2.9)
通常此处的学习速率参数与各权重对应。
卷积神经网络
概述
卷积神经网络[11](Convolution Neural Network,简称CNN)是目前最受关注的神经网络,它在很多方面中起到了至关重要的作用。权值共享,类似生物神经网络的这一特点,使得它能够大大降低网络的复杂性。
广义上说,为了使得训练的数据取得更好的成果,无疑是要用到多层的反向传播网络。而在传统的网络中,如果不通过手动提取特征就直接输入原始数据,会出现过拟合等现象(为获得相同的假设而使其过度严格的过程)。所以传统网络无法避免复杂的预处理过程。
而卷积神经网络中,相邻的两层的神经元之间,使用局部连接的方式可以共享权重,并且通过降采样的方式在时间或空间上充分利用数据本身的特征,较之于传统网络,其维度大幅降低,因此,计算的复杂程度也大大降低了。该网络主要分为对上层数据提取抽象和对数据降维两个过程。