人工神经网络ANN:是一种模仿大脑神经网络结构和功能而建立的信息处理系统,表示神经网络的输入和输出变量之间的关系的模型。
输入信号:X=[x1,x2,x3,...,xn]; 输出结果:y=f(u+b),其中u = ∑wixi
人工神经网络的学习过程也叫做训练,指的是神经网络在受到外部环境的刺激下调整神经网络的参数,是神经网络以一种新的方式对外部环境作出反应的一个过程。在分类与预测中,ANN主要使用有指导的学习方式,即根据给定的训练样本,调整ANN的参数使网络输出接近于已知的样本类标记或其他形式的因变量。
激活函数Activation Functions:
1. Sigmoid function:是常用的非线性的激活函数
Sigmoid的优点: 便于求导;可以压缩数据,数据幅度不会有太大影响;适合向前传递。
Sigmoid的缺点:容易出现梯度消失(gradient vanishing),即当输入非常大或者非常小的时候(saturation),神经元的梯度(导数)是接近于0的,从图中可以看出梯度的趋势。根据后向传递的数学依据是微积分求导的链式法则,当前导数需要之前各层导数的乘积,几个比较小的数相乘,导数结果很接近0,从而无法完成深层网络的训练。需要尤其注意参数的初始值来尽量避免saturation的情况; Sigmoid的输出不是0均值(zero-centered)的:这会导致后层的神经元的输入是非0均值的信号,这会对梯度产生影响。以 f=sigmoid(wx+b)为例, 假设输入均为正数(或负数),那么对w的导数总是正数(或负数),这样在反向传播过程中要么都往正方向更新,要么都往负方向更新,导致有一种捆绑效果,使得收敛缓慢。
2. ReLU function:
ReLU 的优点:使用 ReLU 得到的SGD的收敛速度会比 sigmoid/tanh 快很多,梯度不会饱和,解决了梯度消失问题;适合用于后向传播。
ReLU 的缺点: 全区间不可导;训练的时候很”脆弱”:一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,神经元的梯度就永远都会是0。实际操作中,如果你的learning rate很大,那么很有可能你网络中的40%的神经元都”dead”了;ReLU不会对数据做幅度压缩,所以数据的幅度会随着模型层数的增加不断扩张;ReLU的输出不是zero-centered。
δ学习规则:误差矫正学习算法。假设神经元i作为输入,j作为输出,链接权值为wij,则对权值的修正△wij = ηδjYi,其中η为learning rate,δj = Ti - Yj 是bias。
目标函数:当目标函数(误差函数)小宇摸一个设定的值时即停止神经网络的训练。这里采用最小二乘法:
MLP算法:
反向传播Back Propagation算法:是一种按照误差逆传播算法训练的多层前馈网络,学习算法是δ学习规则。
特征:利用输出后的误差来估计输出层的直接前导层的误差,在用这个误差估计更前一层的误差,一层一层的反向传播下去,就获得了所有其他各层的误差估计。
3个输入节点,4个隐层节点,1个输出节点。
BP算法有两个过程:信号的正向传播和误差的逆向传播。正向传播最后如果在输出层未得到期望的输出,则转入误差的逆向传播阶段,将输出误差按照某种子形式,通过隐层相输入层返回,并“分摊”给隐层4个节点与输入层x1,x2,x3三个输入节点,从而获得各层单元的参考误差信号,作为修改各单元权值的依据。这个过程一直持续到误差可以接受或者打到学习次数为止。