简单易学的机器学习算法——神经网络之BP神经网络
2018-03-23 11:08
260 查看
一、BP神经网络的概念
BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:(三层BP神经网络模型)BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。
二、BP神经网络的流程
在知道了BP神经网络的特点后,我们需要依据信号的前向传播和误差的反向传播来构建整个网络。1、网络的初始化
假设输入层的节点个数为,隐含层的节点个数为
,输出层的节点个数为
。输入层到隐含层的权重
,隐含层到输出层的权重为
,输入层到隐含层的偏置为
,隐含层到输出层的偏置为
。学习速率为
,激励函数为
。其中激励函数为
取Sigmoid函数。形式为:
2、隐含层的输出
如上面的三层BP网络所示,隐含层的输出为
3、输出层的输出
4、误差的计算
我们取误差公式为:其中
为期望输出。我们记
,则
可以表示为
以上公式中,
,
,
。
5、权值的更新
权值的更新公式为:这里需要解释一下公式的由来:这是误差反向传播的过程,我们的目标是使得误差函数达到最小值,即
,我们使用梯度下降法:隐含层到输出层的权重更新
则权重的更新公式为:
输入层到隐含层的权重更新
其中
则权重的更新公式为:
6、偏置的更新
偏置的更新公式为:隐含层到输出层的偏置更新
则偏置的更新公式为:
输入层到隐含层的偏置更新
其中
则偏置的更新公式为:
7、判断算法迭代是否结束
有很多的方法可以判断算法是否已经收敛,常见的有指定迭代的代数,判断相邻的两次误差之间的差别是否小于指定的值等等。三、实验的仿真
在本试验中,我们利用BP神经网络处理一个四分类问题,最终的分类结果为:相关文章推荐
- 简单易学的机器学习算法——神经网络之BP神经网络
- 简单易学的机器学习算法——神经网络之BP神经网络
- 简单易学的机器学习算法——神经网络之BP神经网络
- 简单易学的机器学习算法——神经网络之BP神经网络 (清晰 详细 明了的介绍)
- 机器学习算法(分类算法)—神经网络之BP神经网络
- 机器学习算法练习之(二):Python和Tensorflow分别实现简单的神经网络
- TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络
- Tensorflow构建一个简单的神经网络
- 简单神经网络预测结构化数据关系___训练集(1)
- 机器学习之简单三层神经网络实现
- 简单易学的机器学习算法——岭回归(Ridge Regression)
- 简单易学的机器学习算法——lasso
- 简单易学的机器学习算法——决策树之ID3算法
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[19]
- 神经网络与深度学习学习笔记:简单神经网络的矩阵化
- 神经网络及其简单实现(MATLAB)
- 深度学习(四十)优化求解系列(2)简单理解神经网络求解过程-未完待续
- PyTorch上搭建简单神经网络实现回归和分类
- 简单理解LSTM神经网络
- [tensorflow应用之路]什么是深度神经网络——通过实现简单的神经网络理解DNN