一、BP神经网络
1.概念:BP神经网络是一种按照误差反向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。
2.基本原理:人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。
3.基本思想:梯度下降法。利用梯度搜索技术,使网络的实际输出值和期望输出值的误差均方差为最小。
4.前馈与反馈神经网络的区别
前馈神经网络:各神经元从输入层开始,接收前一级输入,并输出到下一级,直至输出层。整个网络中无反馈,可用一个有向无环图表示。
反馈神经网络:每个神经元同时将自身的输出信号作为输入信号反馈给其他神经元,它需要工作一段时间才能达到稳定。
5.正向传播与反向传播的区别
正向传播:指的是从输入的特征向量到输出最后到代价函数的这样一个把低级特征逐步计算为抽象的高级特征直到得出损失的过程。
反向传播:就是根据损失函数来反方向地计算每一层的的偏导数(梯度),从而调整参数。
6.学习过程
(1)网络初始化:给各连接权值分别赋初值(一般为(-1,1)区间内的随机数),设定误差函数e,给定计算精度值δ和最大学习次数M;
(2)随机选出第k个输入样本及对应期望输出;
(3)计算隐含层各神经元的输入和输出;
(4)利用网络期望输出和实际输出,计算误差函数对输出层各神经元的偏导数;
(5)利用输出层各神经元的δ0(k)和隐含层各神经元的输出来修正连接权值;
(6)利用隐含层各神经元的δh(k)和输入层各神经元的输入来修正连接权值;
(7)计算全局误差;
(8)判断网络误差是否满足要求。
7.BP神经网络的三要素
二、RNN(循环神经网络)
1.概念:具有形成有向循环的连接的网络,主要用于处理序列数据
2.基本结构:
随时间线性展开后之后:
计算公式: 的值取决于 和
3.梯度爆炸和梯度消失
导致训练时梯度不能在较长序列中一直传递下去,从而使RNN无法捕捉到长距离的影响。
梯度爆炸的解决:设置一个梯度阈值,当梯度超过这个阈值的时候可以直接截取。
梯度消失的解决:
(1)合理的初始化权重值。初始化权重,使每个神经元尽可能不要取极大或极小值,以躲开梯度消失的区域。
(2)使用relu代替sigmoid和tanh作为激活函数
(3)使用其他结构的RNNs,比如长短时记忆网络(LTSM)和Gated Recurrent Unit(GRU)