【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论

目录

1 起源

2 多层向前神经网络(Multilayer Feed-Forward Neural Network)

3 设计神经网络

 4 交叉验证方法

5 BP神经网络算法

1 起源

以人脑中的神经网络为启发,出现过不同的版本

最著名的算法是1980年的BP神经网络(Backpropagation)

2 多层向前神经网络(Multilayer Feed-Forward Neural Network)

2.1 BP神经网络被使用在多层向前神经网络

2.2 多层向前神经网络包含以下部分:

      输入层input layer       隐藏层 hidden layer      输出层 output layer

2.3 每层由单元units组成

2.4 输入层是由训练集的实例特征向量传入

2.5 经过连接点的权重weight传入到下一层,上一层的输入是下一层的输入

2.6 隐藏层的个数可以是任意的,输入层只有一层,输出层只有一层

2.7 每个单元unit也可以称为神经结点

2.8 神经网络有几层?除了输入层那一层的个数就是几层

2.9 一层中加权求和,然后根据非线性方程转化输出

2.10 多层向前神经网络,理论上,如果有足够多的隐藏层和足够大的训练集,可以模拟出任何方程。

3 设计神经网络

3.1 在使用神经网络训练数据之前,必须确定层数,以及每层单元的个数

3.2 特征向量在被传入输入层时通常先标准化到0到1之间,为了加速学习过程

3.3 离散型变量可以被编码成每一个输入单元对应一个可能的特征值

  • 比如,A可能取值有3种情况,a0,a1,a2,那么在输入层时,就设置3个神经单元
  • 如果A=a0,则输入为1,0,0,这三个单元如此设定
  • A=a1,则三个单元设定0,1,0。同理以此类推

 3.4 神经网络可以用作分类问题,也可以表示回归问题

  • 输出单元个数:如果是两类,那么输入单元只需要用1个单元就行
  • 如果是多于2类,每个单元代表一个类
  • 通常输出层数量等于类数
  • 没有明确的规则来设计有多少个隐藏从,根据测试和误差、准确度来实验并改进

4 交叉验证方法

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

 

5 BP神经网络算法

5.1 通过迭代性的处理来处理训练集的实例

5.2 通过对比神经网络后输出层 预测值和真实值的差异

5.3 反方向(输出层->隐藏层->输入层)来以最小化误差来更新每个连接的权重 

5.4 算法详细内容:

输入:D 数据集,学习率learning rate ,一个 多层向前神经网络

输入:一个训练好的神经网络

  • 初始化权重weights和偏向bias:随机初始化在-1到1之间,或者-0.5到0.5之间,每个单元 有一个偏向
  • 对于 每一个训练实例,执行以下步骤

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

根据误差反向传送

对于输出层:

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》    O是预测,T是真值

对于隐藏层:

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》     O是预测,T是真值

权重更新:

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

偏差更新:

《【深度学习基础-07】神经网络算法(Neural Network)上--BP神经网络基础理论》

权重更新的(L)是学习率(变化率)

终止条件

  • 权重的更新低于某个阈值
  • 预测的错误率低于某个阈值
  • 达到预设一定的循环次数 
    原文作者:神经网络算法
    原文地址: https://blog.csdn.net/qq_15698613/article/details/86164593
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞