BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例


未经许可请勿转载

更多数据分析内容参看这里

今天我们来介绍一套小工具——AISPACE,它有助于你学习BP神经网络运作的过程及原理。AISPACE涉及的一系列工具用于学习和探索人工智能的概念,它们是在艾伦·麦克沃斯和大卫·普尔的指导下,由哥伦比亚大学计算智能实验室开发的。要使用这套工具,首先要安装JRE环境。下面是这套工具所提供的部分功能,包括贝氏网络、决策树和神经网络在内它都有支持。


BP神经网络的应用 bp神经网络应用程序_字段_02


一、神经网络逐步分类学习过程

首先我们cmd窗口到ASIPACE所在的目录,执行java -jar neural.jar,打开神经网络的界面。下图椭圆形的图标就是神经元,线形的就是神经键。


BP神经网络的应用 bp神经网络应用程序_神经网络_03


现在我们来将之前介绍过的三层式BP神经网络例子,使用aispace工具来实现。


BP神经网络的应用 bp神经网络应用程序_数据_04


先拖动6个神经元到面板上。


BP神经网络的应用 bp神经网络应用程序_字段_05


再使用神经键连接它们


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_06


在连接它们的时候,我们可以看到会随机产生一个权重值和θ值。为了和例子中的值一致,我们重新设置这些值。注意一下,我们在设置这些值时,激发函数都是勾选的S函数。


BP神经网络的应用 bp神经网络应用程序_字段_07


BP神经网络的应用 bp神经网络应用程序_神经网络_08


现在我们来输入数据。


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_09


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_10


现在我们切换到Solve标签,可以看到,正的数据显示为绿色,负的数据为红色,值越大线越粗。


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_11


对于这个单笔数据,没有做任何训练下,我们点击summary statistics,查看结果输出为0.4739。也可以点击Show plot看一下当前的误差,为0.27。


BP神经网络的应用 bp神经网络应用程序_数据_12


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_13


现在我们点击Step,来进行第一次训练,可以看到误差值降为0.26。


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_14


点击Step 50X, 训练50次,误差降为0.06,Node5的预测值上升为0.7449。


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_15


BP神经网络的应用 bp神经网络应用程序_字段_16


训练250回合后,误差降为0


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_17


对应的预测值为0.9008


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_18


此时的神经网络权重和θ值如下:


BP神经网络的应用 bp神经网络应用程序_字段_19


二、神经网络逐步数字预测学习过程

在展开数字预测之前,我们先讲述一下神经网络的数据前处理问题。神经网络和KNN一样,输入字段必须是数值型,而且目标字段也要求是数值型。对于数值型输入数据,必须通过极值标准化为0到1之间。

如果输入属性是类别型字段,有三种处理方式。(1)分散式的二元编码法,比如说a1,a2,a3,a4四个可能的输入值,我们可以用两个神经元节点来代表(00代表a1,01代表a2,10代表a3,11代表a4),但是这种方式较少使用,因为它容易造成神经网络的正确率低,神经网络会误以为00和11的距离远,00和01的距离近。(2)1-of-N编码模型,即每个输入值一个神经元的方式,(0001代表a1,0010代表a2,0100代表a3,1000代表a4),这种模式非常常用。(3)1-of-N-1,用N-1个节点来代表N个值。

由于Sigmoid函数值生成0到1之间的值,目标字段也必须处理为0到1之间的值。如果训练集的输出是一个连续型值,单个标准化的输出节点就可以满足要求。如果输出是分两类的问题(比如高忠诚度和低忠诚度),你有两种处理的方式,常用的使用一个输出节点来代表(1代表高忠诚度,0代表低程度),另一种方式使用两个节点来代表(10代表高,01代表低)。如果是分N类的问题,和输入节点一样,1-of-N编码是常用的处理方式。

我们来看一个数据前处理的范例。


BP神经网络的应用 bp神经网络应用程序_神经网络_20


下面我们来看神经网络预测数字的实例,比如下面我们要来预测来店客户人数,输入字段包括促销活动费用,店面的面积,市区郊区。可以看到在进行数字预测时,我们先要进行数值的正规化处理,那么对于预测出来的结果,我们要进行一下还原动作才能恢复真正的预测数据。


BP神经网络的应用 bp神经网络应用程序_字段_21


下面们使用aispace对房价预测的例子进行处理,首先把原始数据读入,数据需要按照aispace能够识别的方式处理,如下。


BP神经网络的应用 bp神经网络应用程序_字段_22


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_23


读入数据时,我们勾选一下想要设置的隐藏层层数,隐藏层的节点数,这边设置1层,三个节点,生成如下的神经网络模型。


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_24


可以看一下数据的情况,已经做过正规化处理


BP神经网络的应用 bp神经网络应用程序_神经网络_25


训练800回合


BP神经网络的应用 bp神经网络应用程序_bp神经网络应用实例_26


预测结果如下


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_27


还原数值后结果如下


BP神经网络的应用 bp神经网络应用程序_BP神经网络的应用_28


三、神经网络总结

神经网络在两层结构,输出只有一个节点时,如果用线性激活函数时,NN就退化为线性回归,如果用sigmoid激活函数,NN就退化为logistic回归。如果两层结构输出有多个Node,采用sigmoid函数激活,NN就是多元logistic回归,当NN大于两层时,就是一个非常复杂的神经网络模型。


BP神经网络的应用 bp神经网络应用程序_神经网络_29


神经网络的有点在于它预测的准确度较高,在进行预测的时候速度也比较快。缺点在于训练时间较长,其次在于它是一个黑箱逻辑,权重的意义很难理解。