非线性建模-神经网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非线性建模-神经网络相关的知识,希望对你有一定的参考价值。

参考技术A         这学期选修了Python与算法基础,利用Python语言编写力图实现高效算法。前期接触了线性建模中的单变量及多元变量回归模型、多项式回归和灰度模型等。目前正在解决非线性建模问题,引入了神经网络的概念,这里作为自我梳理。

        首先该网络有三层:输入层、隐含层和输出层。输入层进行变量与优化权重的加权计算,每个节点输出z=Σxiwij,此时我们把多个变量(x),变为了单个变量(z)。隐含层完成“非线性的实现”,节点值ho=1/((1+e^(-z))),此处使用了生长函数。当我们调节wij(优化权重),使模型收敛,就能解决该非线性问题。

        接着我们建立MLPClassifier神经网络模型。以下辨明多个参数。

hidden_layer_sizes :用元组,一个数字代表一个隐含层的节点。如hidden_layer_sizes=(50,50) 两个隐含层,每层50个节点hidden_layer_sizes=(60,) 一个隐含层,60个节点,其中逗号不能省略

activation :激活函数, 对Σxiwij的函数转换。

'identity','logistic', 'tanh', 'relu', 默认relu                                                

•identity:f(x)= x

•logistic:其实就是sigmod,f(x) = 1 / (1 + exp(-x)).

•tanh:f(x) = tanh(x).

•relu:f(x) = max(0, x)

solver : 'bfgs', 'sgd', 'adam', 默认adam,用来优化权重

lbfgs:quasi-Newton(拟牛顿法)方法的优化器

sgd:随机梯度下降

adam: Kingma, Diederik, and Jimmy Ba提出的基于随机梯度的优化器

注意:默认solver 'adam',在相对较大的数据集上效果比较好(几千个样本或者更多),对小数据集来说,lbfgs收敛更快效果也更好。

learning_rate  :学习率,用于权重更新,只有当solver为’sgd’时使用,'constant','invscaling', 'adaptive',默认constant

•constant: 由learning_rate_init给定的恒定学习率

•invscaling:随着时间t使用power_t的逆标度指数不断降低学习率learning_rate_ ,effective_learning_rate = learning_rate_init / pow(t, power_t)

•adaptive:只要训练损耗在下降,就保持学习率为learning_rate_init不变,当连续两次不能降低训练损耗或验证分数停止升高至少tol时,将当前学习率除以5。

以上是关于非线性建模-神经网络的主要内容,如果未能解决你的问题,请参考以下文章

2023年美国大学生数学建模时间分析及算法代码

数学建模算法总结

带你建模带你飞Updation常见方法

R语言 神经网络算法

如何通过人工神经网络实现图像识别

神经网络知识专题总结!