• 数学建模【神经网络】


    一、神经网络简介

    机器学习与神经网络

    • 机器学习是一类实现人工智能的方法总称,让计算机模拟或实现人类的学习行为
    • 神经网络是实现机器学习的一种模型
    • 实现机器学习的模型还有支持向量机,决策树,朴素贝叶斯分类器等

    神经网络能用来做什么

    • 已知7人的身高和体重,以及是否达到8岁的数据
    • 现在又来了个人,身高128cm, 体重24kg
    • 如何判断此人是否达到8岁?

    什么叫做神经网络

    • 有现成的一组数据,既有其特征(自变量x,身高体重)也有其标签(因变量y,是否8岁了)
    • 找出特征和标签之间的“关系”(建立神经网络模型)
    • 从而利用该“关系”,把另一组特征对应的标签给求出来
    • 神经网络由多层的神经元(节点)构成,不同层之间的神经元通过权重连接
    • 隐藏层和输出层的神经元中有激活函数,收到的数据作为自变量,计算出结果
    • 计算出的结果与权重相乘后累加传递到下一层,或输出最终结果

    二、适用赛题

    预测类问题

    • 预测未来的结果,一般为回归问题,即输出值y是连续的
    • 美赛2022年C题比特币和黄金投资策略,LSTM(长短时记忆网络)进行预测
    • 短时交通流量预测(小波神经网络的时间序列)
    • 电力负荷预测(Elman神经网络,具有延时记忆,适合动态建模)

    分类问题

    • 对现有的对象进行分类,一般为离散问题,即输出值y是有限个离散值
    • 美赛2021年C题黄蜂传播规律和目击准确性,卷积神经网进行图像识别
    • 人体肿瘤诊断(LVQ神经网络,无需数据预处理,微适合模式识别和优化)
    • 柴油机故障判断(SOM神经网络,适合需要聚类的问题)

    评价类问题

    • 嘉陵江水质评价(模糊神经网络),高校科研能力评价(离散Hopfield神经网络)
    • 本质上与预测和分类相同,只不过题目问的是“评价结果”而已

    先学会最基础的神经网络原理,遇到题目后再去翻书现学现用

    注意事项

    神经网络基本模型+其他模型=沃兹基胡硕德模型

    • 需要针对具体问题量身定做,而不是把神经网络当做万能模版
    • 不懂别乱用,否则将喜获成功参赛奖
    • 近些年数模竞赛中,神经网络等启发式算法出现了严重的滥用

    举个例子:计算1+1=?

    • 正常做法:由数学公理可知,结果为2
    • 舍本逐末:基于蚁群算法优化BP神经网络求得近似解为1.9987

    不是不能用,而是不要滥用!!!

    三、原理讲解

    注:因为在MATLAB中神经网络一般不需要自己写代码,MATLAB有自带的工具箱,可以构建神经网络,所以这里只对神经网络的原理做一些介绍。

    还是以刚刚的问题为例子:景区规定8周岁以下儿童可半价票,如何根据一个人的身高和体重,判断其是否可以买半价票?

    生物学的神经网络

    • 神经元树突收到输入信号
    • 信号刺激细胞核,达到阈值后会产生输出
    • 输出就是进一步的信号,传到下一个神经元

    感知机模型:最简单的神经网络

    • 输入层:输入身高x1和体重x2
    • 激活函数:综合判断输入信号是否达到阈值
    • 输出层:激活函数的函数值就是输出值y

    只有输入层和输出层的神经网络,称为感知机

    问题:如何综合考虑身高(x1)和体重(x2),判断是否达到了8周岁(阈值b)
    • 结果只能有“未达到”和“达到”
    • 需要的函数值只有0和1,可用阶跃函数作为激活函数

    其他的激活函数

    怎样实现“综合考虑”?
    • 线性求和Σwixi(权重wi代表变量xi的重要性)
    • 求和意味着身高和体重(即所有变量)都考虑到了

    如何根据“综合考虑”的结果进行判断?
    • 当设线性求和的结果足够大,与阈值的差值作为激活函数的自变量t = Σwixi - b

    • wi是第i个变量的权重,区分不同变量对结果的影响程度
    • 输入数据后,权重和阈值决定了输出结果

    输出结果

    • 可能结果:t = Σwixi - b ≥ 0 ⟺ f(t) = 1 ⟺ “综合考虑”身高和体重超过了“阈值”
    • 感知机输出值为1,则判定此人达到了8周岁
    • 阈值b看作数值固定为-1的节点(即x3 = -1)的权重w3

    神经网络的核心,就在于如何确定权重,以确保输出正确答案

    基本模型:

    • xi为第i个已知的参数
    • y为待求的输出值
    • 该模型还需确定权值wi
    问题转化:权值wi该怎么设定
    • 模型初始化时,wi随便设置个初始值
    • 学习:从已知数据中学得模型参数(确定权重wi)

    本质:不断地更改权重wi,使得模型求出的预测值尽可能地接近真实值

    • Step1:模型初始化,人为设置权重wi初始值
    • Step2:搜集多个人的身高x1、体重x2和是否达到8周岁y的数据
    • Step3:将搜集到的x1和x2代入模型,求得估计值y
    • Step4:将模型求的估计值y与搜集到的实际值y比较,差别越小越好
    • Step5:直到满足终止条件,否则继续对权重wi进行优化,重复Step3到5
    • 终止条件:估计值和实际值的差值小到一定程度为止
    问题转换:Step5中,如何对权重wi进行优化?

    本示例以差值作为的模型好坏的评估指标,更常见的有均方误差、平方绝对误差等

    总结:景区规定8周岁的儿童以下可买半价票。但儿童往往没有身份证,难以准确判断年龄,如何根据一个人的身高和体重,判断其是否可以买半价票?
    • 本题感知机:

    • 激活函数f的表达式已知,身高x1和体重x2已知,需要确定权重wi
    • 根据搜集到的训练数据集,不断优化权重wi
    • 直到达到终止条件后模型就建好了

    问题:既然单层的感知机能解决问题,为什么常见的神经网络都是多层的?

    更复杂的情况

    • 感知机只拥有输出层进行激活函数处理,若问题是线性可分的,则感知机一定会收敛
    • 非线性可分问题:异或问题,感知机无法收敛

    总结
    • MATLAB和GitHub上都有现成的工具包,无需原创代码
    • 再复杂的神经网络,思路都可总结为以下三点:
    1. 搜集数据集(xi, y),将xi代入初始的神经网络模型,计算估计值yy
    2. 根据yy与y的差异不断更改权重wi,使其误差尽可能的小(梯度下降)
    3. 大量数据训练后,再输入新的数据x,模型就可以求出y用于分类/预测/评价了
    • 数据集是题目给的,或者自己搜集的,决定了整个模型的生死
    • 记得做好数据预处理(处理缺失值、异常值)

    模型的泛化能力:确保模型真的能用

    如何证明你建立的神经网络模型是靠谱的?

    • 留出法:将搜集到的数据划分为训练集、验证集和测试集
    • 训练集进行学习、训练参数(权重)
    • 验证集来检验性能(学习率等),以调整超参数或及时停止训练
    • 测试集给出客观的评价
    • (此外还有交叉验证法、自助法)

    可能遇到的问题
    • 过拟合:把特殊当一般(见过的天鹅都是白的,就以为天鹅只有白色的)
    • 欠拟合:一般性质都没学好(“后浪”里讲述的都是年轻人,就以为年轻人都是后浪)

    过拟合是因为“死记硬背”,欠拟合是因为“啥都不会”

    过拟合的原因
    • 数据集有噪声(缺失值、异常值,无用特征等等)
    • 训练集的数据量不足(训练集的分布与总体样本的不一致)
    • 训练模型过度,导致模型非常复杂(完全拟合了训练集、无法接受新数据)
    过拟合的解决方法
    • 尽量寻找更多的数据集,并做好预处理
    • 去除无用的特征(判断一个人是否达到8岁,与他鞋子的颜色无关)
    • 早停策略:在即将过拟合的时候立刻停止训练
    • 正则化策略:损失函数中加入惩罚项来降低模型复杂度,特征越多惩罚越大
    欠拟合
    • 与过拟合相反,是由于训练不足造成的,可在模型中增加特征来增大网络复杂度

    本篇帮大家快速了解神经网络的基本思想,避开了大量数学推理证明。对于做数模竞赛,先理解本篇讲的概念,然后学会使用MATLAB实现BP神经网络(不需要过于深究原理),等比赛时遇到赛题再去翻书查资料。机器学习/神经网络/深度学习背后的水很深,立志深耕该领域的话做好脱发的准备。

  • 相关阅读:
    1、强化学习基础知识点
    数据结构之排序
    分享96个节日庆典PPT,总有一款适合您
    window+anaconda+pytorch+vscode+python调试
    解决高并发问题不只有分布式
    JavaWeb---- (1)互联网通信流程(超详细)
    894. All Possible Full Binary Trees
    SpringCloud(二) 用Eureka做服务注册中心认证
    Flutter 在 windows 上的开发环境设置
    前端图形:SVG与Canvas
  • 原文地址:https://blog.csdn.net/W_O_Z/article/details/136230654