数学建模|预测方法:神经元网络
人工神经网络是国际学术界十分活跃的前沿研究领域,在控制与优化,预测与管理,识别模式和图像处理、通信等方面都得到了广泛的应用。
BP神经网络
基本概念
主要3部分组成: - 输入层 - 隐层 - 输出层
BP神经网络是一种具有三层或者三层以上的多层神经网络,每一层都由若干个神经元组成,如图所示。

例子来说明:假设题目提供了很多过去的每一天的天气信息,空气湿度、室外温度、天气状况。天气状况主要是小雨,大雨、晴天等信息。现在要求你预测未来某一天是否下雨。
那么过去每一天的空气湿度、室外温度即为输入层的输入,天气状况为输出层的输出,隐层主要为这两者的对应关系(这个关系不用太关心),在通过BP神经网络训练后,输入未来某一天的空气湿度、室外温度,之后该网络就会根据历史数据,给出一个天气状况的预测值,这就是BP神经网络的经常用法。
BP神经网络训练
一般可以将BP网络的学习算法描述为以下步骤:
- 初始化网络及学习参数,如设置网络初始权矩阵、学习因子等。
- 提供训练模式,训练网络,直到满足学习要求。
- 前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行步骤4,否则返回步骤2。
- 反向传播过程:计算同一层单元的误差,修正权值与阈值,返回步骤2。
输入层、隐层、输出层的参数设置
关于这些参数的设置主要是激励函数的选取,这里用matlab工具箱来说明: 此次预测选用MATLAB中的神经网络工具箱进行网络的训练,预测模型的具体实现步骤如下: 将训练样本数据归一化后输入网络,设定参数:
- 网络隐层激励函数为tansig函数
- 输出层激励函数为logsig函数
- 网络训练函数为traingdx
- 网络性能函数为mse
- 隐层神经元数量初设为6
- 网络参数。网络迭代次数epochs为5000次
- 期望误差goal为0.00000001
- 学习速率lr为0.01
设定完参数后,开始训练网络
还有一个隐层中神经元数目的确定,这个可以知道一下,也不难,对于隐层中神经元数目的确定并没有明确的公式, 只有一些经验公式, 神经元个数的最终确定还是需要根据经验和多次实验来确定。本文在选取隐层神经元个数的问题上参照了以下的经验公式:
其中,n为输入层神经元个数,m为输出层神经元个数,a为[1,10]之间的常数,a可取1-10中的任意数值。
实例参考
RBF神经网络
RBF神经网络具有很强的逼近能力、分类能力和学习速度。其工作原理是把网络看成对未知函数的逼近,任何函数都可以表示成一组基函数的加权和,也即选择各隐层神经元的传输函数,使之构成一组基函数来逼近未知函数
一般数学建模中使用不到RBF神经网络,在此想了解的请参考深度学习之 RBF神经网络作了解。 作者在今后的机器学习与深度学习的学习记录中,再做详述。