详细MATLAB 中BP神经网络算法的实现

MATLAB 中BP神经网络算法的实现

BP神经网络算法提供了一种普遍并且实用的方法从样例中学习值为实数、离散值或者向量的函数,这里就简单介绍一下如何用MATLAB编程实现该算法。

具体步骤

  1.  

    这里以一个普遍实用的简单案例为例子进行编程的说明。

    假设一组x1,x2,x3的值对应一个y值,有2000组这样的数字,我们选择其中1900组x1,x2,x3和y作为样本,其余100组x1,x2,x3作为测试数据来验证。

    详细MATLAB 中BP神经网络算法的实现
  2.  

    首先需要读取这些数据,并把数据赋值给input 和 output 。

    我是把数据存储在excel表中,所以用xlsread函数来读取数据。读取出来的数据是2000*4的矩阵。

    详细MATLAB 中BP神经网络算法的实现
  3.  

    将样本数据进行归一化处理。

    详细MATLAB 中BP神经网络算法的实现
  4.  

    初始化网络结果,设置参数,并用数据对网络进行训练。

    newff函数是给出了最简单的设置,即输入样本数据,输出样本数据和隐含层节点数;epochs是设置迭代次数;lr是设置学习率;goal是设置目标值。

    详细MATLAB 中BP神经网络算法的实现
  5.  

    设置好参数,需要将预测数据进行归一化处理,然后将预测结果输出,并将输出的结果进行反归一化处理,神经网络就完成了。BPoutput为预测结果。

    详细MATLAB 中BP神经网络算法的实现
  6.  

    程序运行时显示的网络结构和运行过程如下图。

    详细MATLAB 中BP神经网络算法的实现
  7.  

    如果以后需要用到已训练好的网络可以把训练好的网络储存起来,下次可以直接进行预测,具体方法见下图。

    详细MATLAB 中BP神经网络算法的实现
    但是在用神经网络进行预测时需要注意输入数据的数量和样本的数量,样本数量较少时要考虑网络的可用性和准确性。
上一篇:详解Linux内核红黑树算法的实现


下一篇:java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现