数学建模【神经网络】

news2024/11/18 11:47:07

一、神经网络简介

机器学习与神经网络

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

神经网络能用来做什么

  • 已知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神经网络(不需要过于深究原理),等比赛时遇到赛题再去翻书查资料。机器学习/神经网络/深度学习背后的水很深,立志深耕该领域的话做好脱发的准备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lyra游戏框架宏观框架梳理

想象一下一个完整游戏流程。 Loading界面。 进入场景。 弹出Menu菜单 加载角色。 角色动画系统-切换动画系统(默认-剑客-拳手) 角色皮肤切换 相机 角色可以接收到用户输入,然后进行前后左右移动。 角色可以接收到用户输入,…

C语言----联合体

不知道大家是否听说过联合体这个名词。但其实大家不用觉得联合体有多特殊,大家可以想象结构体是一栋楼,里面有很多房间,住了形形色色的住户(不用或者相同的数据)。但联合体只有一个房间,所有的住户都挤在这…

半小时到秒级,京东零售定时任务优化怎么做的?

导言: 京东零售技术团队通过真实线上案例总结了针对海量数据批处理任务的一些通用优化方法,除了供大家借鉴参考之外,也更希望通过这篇文章呼吁大家在平时开发程序时能够更加注意程序的性能和所消耗的资源,避免在流量突增时给系统…

认证模式~

认证方式 基于Cookie和Session的认证方式 基于Cookie和Session的认证是传统的Web应用认证机制。它依赖于HTTP协议无状态的特性,在客户端(浏览器)和服务器之间保持用户的状态。 工作原理 用户登录:用户通过输入用户名和密码来登…

【AIGC】OpenAI推出王炸级模型sora,颠覆AI视频行业

文章目录 强烈推荐前言什么是OpenAI Sora?工作原理:算法原理:应用场景展望与其他视频生成模型相比有哪些优势和不足?优点缺点 总结强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易…

Unity中字符串拼接0GC方案

本文主要分析C#字符串拼接产生GC的原因,以及介绍名为ZString的库,它可以将字符串生成的内存分配为零。 在C#中,字符串拼接通常有三种方式: 直接使用号连接;string.format;使用StringBuilder; 下面分别细…

table展示子级踩坑

##elemenui中table通过row中是否有children进行判断是否展示子集,通过设置tree-prop的属性进行设置,子级的children的名字可以根据自己的子级名字进行替换,当然同样可以对数据处理成含有chilren的子级list。 问题: 1.如果是根据后…

java大数据开发面试题,完美世界java面试题

02 JVM 线程JVM内存区域JVM运行时内存垃圾回收与算法JAVA四种引用类型GC分代收集算法 VS 分区收集算法GC垃圾收集器JAVA IO/NIOJVM类加载器 03 JAVA集合 接口继承关系和实现LISTSETMAP 04 JAVA多线程并发 JAVA并发知识库JAVA线程实现/创建方式4种线程池线程生命周期&#xf…

★【递归】【链表】Leetcode 21. 合并两个有序链表

★【递归】【链表】Leetcode 21. 合并两个有序链表 解法1 :递归链表 简直是好题啊好题多做做 ---------------🎈🎈题目链接🎈🎈------------------- 解法1 :递归链表 简直是好题啊好题多做做 >>>…

Time Travel

题目链接 解题思路 由于所有边集中的边加起来的总和至多为,无向图即,可以存下所以直接对所有边集中的边进行建边,同时对于每条边,记录其所在边集号对于每个边集,由大到小维护其能通过的时间点然后从1号跑最短路到当前…

javaWeb个人学习03

事务管理: 概述: 一个事务里面的操作 要么同时成功, 要么同时失败例子: 比如在根据id 删除部门的时候 当部门删除成功了 但是遇到了异常 导致下面的代码没有继续执行下去 就没法根据id删除员工的信息了 这个时候 事务就很重要了 开启回滚 或者提交事务 要么同时成功 要么同时…

【考研数学】《汤家凤 1800 》《张宇 1000 》《李永乐 660 》《李林 880 》应该如何选择?

本人数学逆袭的路上,深知选对一本题集对我的重要性!!! 我本科期间,数学并不是我的强项,但是我却能够在考研的时候靠数学甩开别人几十分成功上岸,一本优秀的题集起到了关键的作用。 1800题&…

MySQL的事务与隔离级别

1. 什么是事务? 数据库中的事务是指对数据库执行一批操作,而这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。这个时候就需要用到事务。 最经典的例子就是转账,你要给朋友小白转 1000 块钱&…

选择排序,冒泡排序,插入排序,快速排序及其优化

目录 1 选择排序 1.1 原理 1.2 具体步骤 1.3 代码实现 1.4 优化 2 冒泡排序 2.1 原理 2.2 具体步骤 2.3 代码实现 2.4 优化 3 插入排序 3.1 原理 3.2 具体步骤 3.3 代码实现 3.4 优化 4. 快速排序 4.1 原理 4.2 具体步骤 4.3 代码实现 4.4 优化 为了讲…

如何优化一个看似正常的数据库

通常DBA是不会太了解业务逻辑的,遇到系统中劣质的sql 一般也是以通过添加索引的方式来优化,但是并不是所有的sql都能通过添加索引来优化 这就需要重sql的本身来做分析,另外还要了解什么样的语句会不走索引!本文通过几个简单的例子…

RK3568 android11 调试陀螺仪模块 MPU-6500

一,MPU6500功能介绍 1.简介 MPU6500是一款由TDK生产的运动/惯性传感器,属于惯性测量设备(IMU)的一种。MPU6500集成了3轴加速度计、3轴陀螺仪和一个板载数字运动处理器(DMP),能够提供6轴的运动…

计算机网络——IPV4数字报

1. IPv4数据报的结构 本结构遵循的是RFC 791规范,介绍了一个IPv4数据包头部的不同字段。 1.1 IPv4头部 a. 版本(Version):指明了IP协议的版本,IPv4表示为4。 b. 头部长度(IHL, Internet Header Length&…

web组态软件

1、强大的画面显示web组态功能 2、良好的开放性。 开放性是指组态软件能与多种通信协议互联,支持多种硬件设备,向上能与管理层通信,实现上位机和下位机的双向通信。 3、丰富的功能模块。 web组态提供丰富的控制功能库,满足用户的测…

回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量…

《互联网的世界》第二讲-最短路径优先

昨天讲 dns 时讲过,“你问一个当地人最近的厕所在哪,路人给你一个地址…”,可是只有地址还不够,如何到达那里呢?这是本节的内容。 自然的方式是,一边走一边问,根据路人的指示继续一边走一边问…