神经网络

神经网络

参考文章:机器学习算法汇总:人工神经网络、深度学习及其它

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM),学习矢量量化(Learning Vector Quantization, LVQ),深度学习。
常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。

参考文章:BP神经网络原理分析及c++代码实现(上)

BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP网络属于多层网络,其常用的传递函数有线性函数(purelin)和sigmoid型函数。S形函数有较好的增益控制性能,能将网络的输出值限制在一定范围。因此在隐层中常常采用sigmoid函数进行中间结果的传递,而在最后的输出层则用线性传递函数对输出值进行值域扩张。如果需要对网络输出的值域加以限制,例如想要将网络输出值限制在[0, 1]以内,那么输出层就应该采用sigmoid型函数。输入层被记作第0层,输出层的层号为该网络的层数:n层网络或n级网络。第j-1层到第j层的联接矩阵为第j层联接矩阵,输出层对应的矩阵叫输出层联接矩阵。
前向型神经网络通常具有一个或多个由sigmoid神经元构成的隐层,和一个由线性神经元构成的输出层。多个具有非线性传递函数的神经元层使得网络可以学习输入和输出之间的非线性关系,而线性输出层则使网络可以产生区间[-1, 1]之外的值。
BP网络的学习是有监督的学习。前向型神经网络仍然采用均方误差作为默认的网络性能函数,网络学习的过程就是使均方误差最小化的过程。BP学习规则是使用不同的算法来实现网络均方误差的最小化。

  • 基本的BP算法
    函数的梯度方向是函数值增加最快的方向,那么负梯度方向便是函数值减小最快的方向,基本的BP算法就是沿着负梯度方向通过调整权值来减小均方误差的。用输出层的误差来调整输出层的权矩阵,并估计输出层的直接前导层的误差,然后再用输出层的前导层误差估计更前一层的误差,如此获得了所有其它各层的误差估计。
  • 增加动量的BP算法
    标准的梯度下降算法在调整权值时,仅根据当前的负梯度方向进行调整,并没有考虑之前运算步骤中的梯度方向,因此新的样本对迭代过程影响太大,可能会使训练过程中的调整方向发生震荡,导致不稳定和收敛速度慢。而有动量的梯度下降算法则考虑了之前时刻梯度的贡献,权值迭代公式: wij(n+1)=wij(n)+γ[D(n)+D(n1)] D(n)D(n1) 分别表示n时刻和n-1时刻的负梯度。由于加入了之前时刻梯度的贡献,可以使网络忽略误差曲面上的细节特征,避免陷入局部极小点的问题。
  • 带动量及自适应学习速率的BP算法
    学习速率设得过高,可能导致训练过程出现震荡及不稳定,过低会导致收敛时间过长。比较相邻两次迭代之间的误差平方和的大小判断学习速率是增加还是减少,比前一次小增加,比前一次大减少,等于则不变。
  • 弹性梯度算法
    多层神经网络通常在隐层中采用sigmoid型传递函数。由于sigmoid函数的作用是将无限的输入范围压缩到一个有限的输出范围内,因此它们都有这样一个特性,即输入样本变量非常大的时候,函数曲线斜率将会逐渐接近于零。这可能造成的一个问题,即如果采用该算法进行训练,梯度值有可能会很小,这样每一次迭代的权值和偏差的该变量会很小,尽管它们距离最优值还有很远的距离。有弹性的BP训练算法的目标就是消除由于误差函数偏微分的数值上变动所造成的不利于训练的效应。如果在连续两次迭代中误差性能函数对某一权值的偏导数的正负号相同,则权值更新值会增大,而如果连续两次迭代中误差性能函数对某一权值的偏导数正负号不同,则权值更新值会减小,如果偏导数等于0,则迭代停止。这样,权值的变动过程是一个幅度逐渐减小的震荡过程,最后收敛到梯度为0的目标点。

ps:BP神经网络的c++实现

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值