草庐IT

机器学习与微分方程的浅析

半吊子全栈工匠 2023-03-28 原文
大家都已经使用机器学习了,尤其是基于神经网络的深度学习,chatGPT甚嚣尘上,还需要深入理解微分方程么?不论答案是啥,都会涉及到二者的对比,那么,机器学习与微分方程的区别又是什么呢?

从爱情模型的微分方程说起

这两个方程预测了夫妻恋爱关系的长久性,基于心理学家 John Gottman 的开创性工作,该模型预测持续的积极情绪是婚姻成功的有力因素。关于模型的更多解读,可以参考《幸福的婚姻》一书,作者还给出了维护婚姻幸福的7个法则:

  1. 完善你的爱情地图
  2. 培养你对配偶的喜爱和赞美
  3. 彼此靠近而不是远离
  4. 让配偶影响你的决定
  5. 以温和开场,用妥协收场
  6. 学会和问题和谐相处
  7. 创造共同意义
疫情三年,大家亲身经历,冷暖自知。那么,如何用微分方程描述患者与传染者的关系呢?

SIR 模型假设病毒是通过感染者和未感染者之间的直接接触传播的,患病者自动以某种固定的速率恢复。

这些微分方程都包含了一些未知函数的导数(即变化率),这些未知函数,例如 SIR 模型中的 S (t) ,I (t)和 R (t) ,称为该微分方程的解。基于这些方程的机制,我们可以得到模型的设计方式,而数据稍后将用于验证我们的假设。

数学模型的分类

类似微分方程这样的数学模型是预先对系统的基本机制进行假设,建模始于物理学,实际上,整个数学建模领域都始于17世纪对解开行星运动背后的基本动力学的探索。从那时起,基于数学的机制模型开启了许多现象的关键见解,从生物学和工程学到经济学以及社会科学。这样的机制模型可以分为基于方程的模型 ,如微分方程,或基于Agent的模型。

基于经验或数据驱动的建模,例如机器学习,是通过丰富的数据来了解系统的结构。机器学习对于复杂的系统特别有用,因为我们真的不知道如何从噪声中分离出信号,这时候,只要训练一个聪明的算法就可以帮助解决难题。

机器学习任务可大致分为以下几类:

  • 监督式学习(例如,回归和分类) ;
  • 非监督式学习(例如,聚类及降维) ;
  • 强化学习

先进的机器学习和人工智能系统如今在我们的日常生活中无处不在,从基于智能音箱的会话助手(例如 小度)到 各种推荐引擎,再到人脸识别技术,甚至特斯拉(Tesla)的自动驾驶汽车。所有这些都是由嵌入在堆积如山的代码下的数学和统计建模驱动的。

进一步,可以将这些模型分为“确定性”(预测是固定的)或“随机性”(预测包括随机性)的。

确定性模型忽略随机变量,在相同的起始条件下总是预测相同的结果。一般的,机器学习和基于方程的模型都是确定性的,输出总是可预测的。换句话说,输出完全由输入决定。

随机模型通过在模型中引入概率来考虑总体的随机变化。捕捉这些变化的一种方法是让每个实体成为模型中一个单独的Agent,并为这些Agent定义允许的行为和机制,这些行为和机制具有一定的概率。这些是基于Agent的模型。

然而,对个体行为者进行建模的可实现性是有代价的,而基于代理的模型则更为现实。由于计算代价的高昂以模型的可解释性,这激发了数学建模中的一个关键概念: 模型复杂度。

模型复杂度

模型复杂度的困境是所有建模者都要面对的现实,我们的目标是构建并优化既不太简单也不太复杂的模型。简单的模型容易分析,但往往缺乏预测能力。复杂的模型可能是超现实的,但有可能试图了解复杂问题的背后真相。

我们需要在简单性和易于分析性之间进行权衡。复杂的机器学习模型在努力学习信号(即系统的真实结构)的同时排除噪音(即干扰)。这导致模型在新数据上表现不佳。换句话说,机器学习模型的普遍性较差。

平衡模型复杂度的微妙行为是一种“艺术”,试图寻找一个既不太简单也不太复杂的最佳位置。这个理想的模型可以冲刷掉噪音,捕捉到正在发生的事情的潜在动态,并且是可以合理解释的。

需要注意的是,这意味着一个好的数学模型并不总是正确的。不过没关系。可推广性是目标,可以向受众解释模型为什么这么做,无论他们是学者、工程师还是商业领袖。

所有的模型都是错误的,但有些是有用的。——乔治•博克斯(George Box),1976

在机器学习和统计学中,模型复杂度称为偏差-方差的折衷。高偏差模型过于简单,导致拟合不足,而高方差模型记忆噪声而不是信号,导致过度拟合。数据科学家努力通过精心选择训练算法和调整相关的超参数来达到这种微妙的平衡。

微分方程与机器学习的对比

在机制建模中,我们在对系统的潜在机制做出假设之前,会仔细地观察和审查一种现象,然后用数据验证模型。我们的假设正确吗?如果是这样,既然是亲自挑选的机制,完全可以向任何人解释是什么模型的这种行为。如果假设是错误的,那也没关系,只是浪费了一些时间,没什么大不了的。建模毕竟是反复试验。修补这些假设,甚至从头开始。机制模型,通常是微分方程等形式的方程,甚至是基于主体的模型。

在数据驱动建模中,我们是先让数据开始工作,为我们构建系统的全景。我们要做的就是满足那台机器的数据质量,希望有足够的数据。这便是机器学习。如果普通人很难搞清楚一个现象,可以调整一台机器来筛选噪音,为我们学习那难以捉摸的信号。标准的机器学习任务包括回归和分类,它们使用一系列度量标准进行评估。神经网络和强化学习也已经流行了起来,它们能够创建模型并学习令人惊叹的复杂信号。

尽管机器学习从20世纪50年代就已经存在,但随着计算机变得越来越强大,数据在爆炸式增长,使得人们如何利用人工智能获得竞争优势、提高洞察力和增长利润展开了广泛的实践。对于不同的应用场景,机器学习与微分方程都有着广泛的场景。​

有关机器学习与微分方程的浅析的更多相关文章

  1. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  2. ruby-on-rails - ruby 日期方程不返回预期的真值 - 2

    为什么以下不同?Time.now.end_of_day==Time.now.end_of_day-0.days#falseTime.now.end_of_day.to_s==Time.now.end_of_day-0.days.to_s#true 最佳答案 因为纳秒数不同:ruby-1.9.2-p180:014>(Time.now.end_of_day-0.days).nsec=>999999000ruby-1.9.2-p180:015>Time.now.end_of_day.nsec=>999999998

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  5. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  6. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  7. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  8. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  9. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  10. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

随机推荐