BP神经网络入门 学习笔记

1.BP神经网络的基本概念

        1.1神经元模型

        1.2神经网络结构

        1.3神经元激活函数

2.BP神经网络的基本工作过程

        2.1正向传递

        2.2反向传递

3.BP神经网络的注意点

        3.1超参:学习率(学习步长)

        3.2避免陷入局部极小值

       


1.BP神经网络基本概念

        BP是 Back Propagation 的简写 ,意思是反向传播。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP网络具有输入层、隐藏层和输出层,在BP神经网络中,单个样本有m个输入,有n个输出,在输入层和输出层之间通常还有若干个隐含层。1989年Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近,这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的维到维的映射。

 1.1神经元模型

        每个神经元都接受来自其它神经元的输入信号,每个信号都通过一个带有权重的连接传递,神经元把这些信号加起来得到一个总输入值,然后将总输入值与神经元的阈值进行对比(模拟阈值电位),然后通过一个“激活函数”处理得到最终的输出(模拟细胞的激活),这个输出又会作为之后神经元的输入一层一层传递下去。

 1.2神经网络结构 

        BP网络由输入层、隐藏层、输出层组成。

        输入层:信息的输入端,是读入你输入的数据的。

        隐藏层:信息的处理端,可以设置这个隐藏层的层数(在这里一层隐藏层,q个神经元)。

        输出层:信息的输出端,也就是我们要的结果。

1.3神经元激活函数

        引入激活函数的目的是在模型中引入非线性。如果没有激活函数(其实相当于激励函数是f(x) = x),那么无论神经网络有多少层,最终都是一个线性映射,那么网络的逼近能力就相当有限,单纯的线性映射无法解决线性不可分问题。正因为上面的原因,引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大。

        1)Sigmoid(logistic),也称为S型生长曲线,函数在用于分类器时,效果更好。

        2)Tanh函数(双曲正切函数),解决了logistic中心不为0的缺点,但依旧有梯度易消失的缺点。

        3)relu函数是一个通用的激活函数,针对Sigmoid函数和tanh的缺点进行改进的,目前在大多数情况下使用

2.BP神经网络的基本工作过程

        举一个例子,某厂商生产一种产品,投放到市场之后得到了消费者的反馈,根据消费者的反馈,厂商对产品进一步升级,优化,一直循环往复,直到实现最终目的——生产出让消费者更满意的产品。产品投放就是“信号前向传播”,消费者的反馈就是“误差反向传播”。这就是BP神经网络的核心

 2.1正向传递

        正向传播就是让信息从输入层进入网络,依次经过每一层的计算,得到最终输出层结果的过程。在上面的网络中,我们的计算过程比较直接,用每一层的数值乘以对应的权重+偏置变量(激活函数)。

 2.2反向传递       

        基本思想就是通过计算输出层与期望值之间的误差来调整网络参数,从而使得误差变小。计算误差公式如下:(差值的平方)

         调整权重的大小,使损失函数不断地变小常用的方法:梯度下降法。从几何意义讲,梯度矩阵代表了函数增加最快的方向,因此,沿着与之相反的方向就可以更快找到最小值。

权重反向更新:L 称为学习率,可以调整更新的步伐,合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。

        隐藏层神经元和输出层神经元激活函数均为sigmod函数,下面是求各个参数的梯度推导过程(激活函数为SIGMOD)。

         除此之外,采用其它激活函数,推理过程类似,参考以下公式:

       隐藏层神经元激活函数为sigmod输出层神经元激活函数为tanh

         隐藏层神经元激活函数为sigmod输出层神经元激活函数为Purelin(线性)函数

 3.BP神经网络的注意点

        神经网络中注意的地方有很多,比如如何避免陷入局部最小值,避免过拟合现象,网络层数的设置,网络神经节点数量设置,学习步长(一般选取为0.01−0.8)的设置,设置最大迭代次数...

        如何确定隐层数以及每个隐含层节点个数,应该设置为多少才合适呢(隐含层节点个数的多少对神经网络的性能是有影响的)? 
有一个经验公式可以确定隐含层节点数目:这里写图片描述 ,(其中h:隐含层节点数目,m:为输入层节点数目,n:为输出层节点数目,a:为之间的调节常数)。

        其余相关注意点和经验暂时不深入探究,将在后面的学习中进一步研究!

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值