数学建模|预测方法:神经元网络

人工神经网络是国际学术界十分活跃的前沿研究领域,在控制与优化,预测与管理,识别模式和图像处理、通信等方面都得到了广泛的应用。

BP神经网络

基本概念

主要3部分组成: - 输入层 - 隐层 - 输出层

BP神经网络是一种具有三层或者三层以上的多层神经网络,每一层都由若干个神经元组成,如图所示。

例子来说明:假设题目提供了很多过去的每一天的天气信息,空气湿度、室外温度、天气状况。天气状况主要是小雨,大雨、晴天等信息。现在要求你预测未来某一天是否下雨。

那么过去每一天的空气湿度、室外温度即为输入层的输入,天气状况为输出层的输出,隐层主要为这两者的对应关系(这个关系不用太关心),在通过BP神经网络训练后,输入未来某一天的空气湿度、室外温度,之后该网络就会根据历史数据,给出一个天气状况的预测值,这就是BP神经网络的经常用法。

BP神经网络训练

一般可以将BP网络的学习算法描述为以下步骤:

    1. 初始化网络及学习参数,如设置网络初始权矩阵、学习因子等。
    1. 提供训练模式,训练网络,直到满足学习要求。
    1. 前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行步骤4,否则返回步骤2。
    1. 反向传播过程:计算同一层单元的误差,修正权值与阈值,返回步骤2。

输入层、隐层、输出层的参数设置

关于这些参数的设置主要是激励函数的选取,这里用matlab工具箱来说明: 此次预测选用MATLAB中的神经网络工具箱进行网络的训练,预测模型的具体实现步骤如下: 将训练样本数据归一化后输入网络,设定参数:

    1. 网络隐层激励函数为tansig函数
    1. 输出层激励函数为logsig函数
    1. 网络训练函数为traingdx
    1. 网络性能函数为mse
    1. 隐层神经元数量初设为6
    1. 网络参数。网络迭代次数epochs为5000次
    1. 期望误差goal为0.00000001
    1. 学习速率lr为0.01

设定完参数后,开始训练网络

还有一个隐层中神经元数目的确定,这个可以知道一下,也不难,对于隐层中神经元数目的确定并没有明确的公式, 只有一些经验公式, 神经元个数的最终确定还是需要根据经验和多次实验来确定。本文在选取隐层神经元个数的问题上参照了以下的经验公式:

其中,n为输入层神经元个数,m为输出层神经元个数,a为[1,10]之间的常数,a可取1-10中的任意数值。

实例参考

菜鸟的数学建模之路(四):BP神经网络

RBF神经网络

RBF神经网络具有很强的逼近能力、分类能力和学习速度。其工作原理是把网络看成对未知函数的逼近,任何函数都可以表示成一组基函数的加权和,也即选择各隐层神经元的传输函数,使之构成一组基函数来逼近未知函数

一般数学建模中使用不到RBF神经网络,在此想了解的请参考深度学习之 RBF神经网络作了解。 作者在今后的机器学习与深度学习的学习记录中,再做详述。

参考博客