BP神经网络算法原理入门-bp神经网络模型详解-bp神经网络代码实现matlab...
发布网友
发布时间:2024-09-25 17:30
我来回答
共1个回答
热心网友
时间:2024-10-03 05:40
学习一段时间后,开始有些知识有些遗忘,所以整理一下,作为自己的学习笔记,以及帮助其他人学习。
一、什么是BP神经网络
1.1.BP神经网络原理
bp神经网络全称为Back Propagation Neural Network,简称为BPNN。
BP神经网络的原理就像下面的图一样,模仿人的大脑的原理,把看到的东西作为输入,然后经过大脑,最后作为输出。
1.2.BP神经网络结构
BP神经网络在这个思想下,构造了下面的数学模型:
这是一个只有一个隐层的BP神经网络(加上输入层、输出层,称为三层BP神经网络),
BP神经网络也可以有多个隐层,多层的BP神经网络结构图如下:
多个隐层的BP神经网络的数学表达式进行套娃就可以了,
学习时先用三层的进行理解,因为三层的使用得较多。
二、BP神经网络如何训练
2.1.BP神经网络的误差函数
BP使用均方差函数来评估网络的误差,它的公式如下:
m,k分别是样本个数与输出变量个数。误差越小,说明模型越好。
2.2.梯度下降算法训练BP神经网络
BP神经网络可以使用梯度下降算法进行训练,梯度下降算法就是先初始化BP神经网络的参数w,b,然后不断地往负梯度方向调整,使得模型的误差越来越小,最后求得最优解:
梯度下降算法需要使用参数在误差函数中的梯度,BP神经网络梯度公式如下:
MARK一下,后面我们会用到这条公式来实现代码。如果公式不太明白,可以看原文《 BP神经网络的梯度公式推导(三层结构)》中的推导,了解了推导过程就比较清楚了。
三、如何用Matlab来实现BP神经网络
matlab提供了一个工具箱来实现BP神经网络,bp神经网络模型matlab工具箱还提供了非常多的训练算法,不过默认一般使用trainlm算法。BP神经网络matlab代码示例如下:
运行后得到的结果如下:
在代码中我们用到newff函数,train函数,sim函数,具体的意义可以参考
matlab-BP神经网络工具箱-newff、train、sim详解
四、如何自己写代码实现一个BP神经网络
如果不想借助matlab工具箱,还可以自己写代码实现BP神经网络,这就需要用到梯度下降法与上面的梯度公式,具体代码如下:
代码运行后的结果如下:
可以看到结果拟合得非常好。
理解完上面的代码,基本也就学会BP神经网络了。
热心网友
时间:2024-10-03 05:33
学习一段时间后,开始有些知识有些遗忘,所以整理一下,作为自己的学习笔记,以及帮助其他人学习。
一、什么是BP神经网络
1.1.BP神经网络原理
bp神经网络全称为Back Propagation Neural Network,简称为BPNN。
BP神经网络的原理就像下面的图一样,模仿人的大脑的原理,把看到的东西作为输入,然后经过大脑,最后作为输出。
1.2.BP神经网络结构
BP神经网络在这个思想下,构造了下面的数学模型:
这是一个只有一个隐层的BP神经网络(加上输入层、输出层,称为三层BP神经网络),
BP神经网络也可以有多个隐层,多层的BP神经网络结构图如下:
多个隐层的BP神经网络的数学表达式进行套娃就可以了,
学习时先用三层的进行理解,因为三层的使用得较多。
二、BP神经网络如何训练
2.1.BP神经网络的误差函数
BP使用均方差函数来评估网络的误差,它的公式如下:
m,k分别是样本个数与输出变量个数。误差越小,说明模型越好。
2.2.梯度下降算法训练BP神经网络
BP神经网络可以使用梯度下降算法进行训练,梯度下降算法就是先初始化BP神经网络的参数w,b,然后不断地往负梯度方向调整,使得模型的误差越来越小,最后求得最优解:
梯度下降算法需要使用参数在误差函数中的梯度,BP神经网络梯度公式如下:
MARK一下,后面我们会用到这条公式来实现代码。如果公式不太明白,可以看原文《 BP神经网络的梯度公式推导(三层结构)》中的推导,了解了推导过程就比较清楚了。
三、如何用Matlab来实现BP神经网络
matlab提供了一个工具箱来实现BP神经网络,bp神经网络模型matlab工具箱还提供了非常多的训练算法,不过默认一般使用trainlm算法。BP神经网络matlab代码示例如下:
运行后得到的结果如下:
在代码中我们用到newff函数,train函数,sim函数,具体的意义可以参考
matlab-BP神经网络工具箱-newff、train、sim详解
四、如何自己写代码实现一个BP神经网络
如果不想借助matlab工具箱,还可以自己写代码实现BP神经网络,这就需要用到梯度下降法与上面的梯度公式,具体代码如下:
代码运行后的结果如下:
可以看到结果拟合得非常好。
理解完上面的代码,基本也就学会BP神经网络了。