“GANs”与“ODEs”:数学建模的终结?
在本文中,我想将经典数学建模和机器学习之间建立联系,它们以完全不同的方式模拟身边的对象和过程。虽然数学家基于他们的专业知识和对世界的理解来创建模型,而机器学习算法以某种隐蔽的不完全理解的方式描述世界,但是在大多数情况下甚至比专家开提出的数学模型更准确。然而,在许多应用程序(如医疗保健,金融,军事)中,我们需要清晰可解释的决策,而机器学习算法,特别是深度学习模型并不是这样设计的。
本文将回顾所期望模型的的主要特点,“经典”数学模型和机器学习模型的优点和缺点,并展示一个结合了两种模型特点的案例:disentangled representation learning。
深度学习有什么问题?
自从深度学习开始蓬勃发展以来,我们尝试在任何地方使用神经网络。在许多重要领域,它非常有效并可以得到最先进的结果,例如在计算机视觉,自然语言处理,语音分析和信号处理等领域。最终,这些深度学习的方法都是关于从复杂数据中自动提取特征,在神经网络中结合线性和非线性变换,以一些“向量”(vector)结束,也叫做“嵌入”(embedding),它表示输入对象需要的所有信息并对其进行分类或回归:
1_ylhkvJ23KcdrAn42py2JUg
这些“向量”在特征提取和准确性方面确实非常好,但它们也在很多方面都有不足:
可解释性:大小为N的向量不能告诉我为什么要采取某种决策,只有逆向工程方法可以在输入数据中突出“感兴趣对象”。
需要大量数据:深度学习并不适合只有10-100个样本。
无监督学习:大多数应用都需要标记训练数据。
零重复使用:这是一个非常重要的问题:在一个数据集上训练的神经网络很少可以直接应用于另一个类似的数据集而无需重新训练。
对象生成:我可以通过嵌入生成真实的对象吗?对GAN来说,可以。
对象操作:我可以使用嵌入操作输入对象的特定属性吗?并不能。
理论基础:我们有通用逼近理论。但是不够深入。
在现代机器学习框架中,似乎很难解决这些问题。但是我们可以用某种方式来解决!
数学建模有什么用?
关于上面提到的这些问题,大多数数学家在20,50甚至100年前根本没有遇到过。为什么?因为他们一直在使用数学来建立模型,即用数学抽象来描述现实世界中的对象和过程,例如分布,公式或微分方程(这就是为什么我们的标题中有“ODE”,常微分方程(ordinary differential equations))。再次查看“问题清单”,并考虑科学家从头开始创建的数学模型。我仍然会在这里使用术语“嵌入”,它将代表数学模型的参数,即微分方程中的自由度集。
解释:每个数学模型都是基于科学家如何描述对象而创建的,具有明确的动机和理论。例如,为了描述物理运动,我们的嵌入将包括物体质量,运动速度和坐标空间,没有抽象的向量!
需要大量数据:今天的大部分科学突破都没有在“ImageNet大小”的数据集上完成。
无监督学习:嗯~,这不是数学建模要考虑的情况:)
零重复使用:相同的随机微分方程,比方说,几何布朗运动可以应用于金融,生物或物理,只需要重命名参数名称。
对象生成:立即可用,只需要采样参数。
对象操作:立即可用,只需要操作参数。
理论基础:数百年的科学理论。
那么为什么我们不使用微分方程呢?事实证明,对于大规模的复杂数据,它们的表现要差得多。这就是如今掀起深度学习的浪潮的原因。但是,我们仍然希望从开发的模型中获得不错的灵感。
结合机器学习和数学建模
如果我们想使用在分析复杂数据时比较准确的神经网络,但也要具有上面描述的属性,应该怎么做?在不同的环境中,可解释性,生成和操纵对象的能力,无监督的特征学习和零重复使用,怎样找?例如,作为面部图像的特征提取器,我希望看到下面这样的东西:
链接:https://pan.baidu.com/s/10Pj5_5d1saesbvT8JKfkMg
提取码:88rc
它适用于对于微分方程或其他模型而言过于复杂的图像,允许生成和操纵对象,有可解释性,并且很可能也可以在另一个数据集上完成这些操作。这项工作的唯一问题是不是完全无监督。另一个重要的操作问题是当我改变例如“胡须”的特征时,它会自动使脸部变得更有男子气概,这意味着学习的特征虽然可以解释,但是彼此相关连,或者说,纠缠。
β-VAE
然而,存在一种方法可以帮助我们解开纠缠,换句话说,那就是嵌入,其中的每个元素负责单个因子,并且该嵌入可以用于新数据的分类,生成或操作任务(在零重用领域)。该算法是在DeepMind实验室中开发的,基于可变自动编码器,但更强调潜在分布与先验分布选择之间的KL-差异,而不是恢复损失。有关详细信息,可以参考下面的视频,它很好地解释了β-VAE背后的想法,和在监督学习和强化学习中的应用。
链接:https://pan.baidu.com/s/1iH-Xd-btEVSLpCtWmcKMTA
提取码:mhph
观看此视频后,您可以看到,β-VAE实际上能够提取输入数据变化的因素:物理运动方向,物体大小,颜色还有方向,它们能够在强化学习分离出感兴趣的物体和背景,并可以在实际环境中重复使用模拟训练的结果。
我的实验
由于我一直在医疗和金融应用方面工作,脱离了真正解决实际问题相关的可解释的模型,人工数据生成和零重复学习,我尝试将beta-VAE用于ECG和BTC价格数据。您可以在我的GitHub中找到用于训练模型的代码。首先,我将β-VAE(非常简单的MLP网络)用在来自PTB诊断数据集的心电图,它有三个变化因素:不同的心电图脉冲/形式,不同的人随时间变化的脉搏,还有是否患有梗塞的诊断。我一共训练VAE 50次迭代,bottleneck 大小为 10,学习率为5e-4,capacity C 为 25(详见本处)。输入设置为单个心跳。正如我预料的,我的模型学习了数据集变化的真正因素。在下面的图片中可以看到,操做心跳输入(黑色的线)时bottleneck中的单个特征从-3变为3的,同时保留其他特征是怎样变化的。可以看到,第5个特征负责改变心跳的形式,第8个特征代表心脏状况(蓝色表示有梗塞症状,而红色心电图与它相反),第10个特征改变脉搏等。
解构心电图节拍
关于金融数据,一切都不是那么清楚(不足为奇)。训练参数相似,但输入是2017年收集的BTC价格的180分钟的样本。我期望从beta-VAE学习一些“标准”金融时间序列模型,如均值回归时间序列,但解释获得的表示相对比较困难。可以看出五号特征改变了输入时间序列的趋势,但二号,三号和六号更多或更少的“更改”会在在时间序列的不同部分添加或删除曲线。
解构 BTC收盘价
多目标解析
如果在图像上显示多个对象并且为每个对象找到不同的因素,那么情况又是怎样呢?
2ew6i-dmgss
总结
让我们总结一下 beta-VAE 在描述“一般”深度学习和数学建模时的方法。
可解释性:完全可解释的特征,需要验证每个特定的嵌入元素。
需要大量数据:仍然需要如此,因为我们是在深度学习领域运行。
无监督学习:100%无人监督。
零重复使用:来自视频的强化学习示例
对象生成:像一般的VAE一样容易采样。
对象操作:使用您想要的任何变化因素都很简单。
理论基础:正在进行中
我们几乎拥有经典数学建模所具有的所有优良特性以及深度学习能力,可以高精度地分析复杂的数据类型。因此,非常自然的问题出现了:如果我能够以完全无监督的方式从复杂数据中学习如此好的模型,那么它是否意味着“经典”数学建模的结束?如果ML模型可以做到,我们是否真的需要考虑复杂的模型,只需要分析它的特征?这取决于我们决定:)
原文链接:https://towardsdatascience.com/gans-vs-odes-the-end-of-mathematical-modeling-ec158f04acb9
欢迎关注磐创博客资源汇总站:http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:http://pytorch.panchuang.net/
“GANs”与“ODEs”:数学建模的终结?的更多相关文章
- python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记
今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...
- 在数学建模中学MATLAB
为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上. 1. 一些MATLAB的基础性东西: 元胞数组的使用:http://blog.csdn.net/z1137 ...
- BITED数学建模七日谈之七:临近比赛时的准备工作
经过前面六天的文章分享,相信大家对数学模型的相关准备.学习都有了更新的认识,希望大家能从中有所收获,以便更高效地准备比赛和学习数学模型,本文是数学建模经验谈的最后一天:临近比赛的准备工作,希望在临近比 ...
- BITED数学建模七日谈之六:组队建议和比赛流程建议
今天进入数学建模经验谈第六天:组队建议和比赛流程建议 数学模型的组队非常重要,三个人的团队一定要有分工明确而且互有合作,三个人都有其各自的特长,这样在某方面的问题的处理上才会保持高效率. 三个人的分工 ...
- BITED数学建模七日谈之五:怎样问数学模型问题
下面进入数学建模经验谈第五天:怎样问数学模型问题 写这一篇的目的主要在于帮助大家能更快地发现问题和解决问题,让自己的模型思路有一个比较好的形成过程. 在我们学习数学模型.准备比赛的时候,经常会遇到各种 ...
- BITED数学建模七日谈之四:数学模型分类浅谈
本文进入到数学建模七日谈第四天:数学模型分类浅谈 大家常常问道,数学模型到底有哪些,分别该怎么学习,这样能让我们的学习有的放矢,而不至于没了方向.我想告诉大家,现实生活中的问题有哪些类,数学模型就有哪 ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- BITED数学建模七日谈之二:怎样阅读数学模型教材
今天进入我们数学建模七日谈的第二天:怎样阅读数学建模教材? 大家再学习数学建模这门课程或准备比赛的时候,往往都是从教材开始的,教材的系统性让我们能够很快,很深入地了解前人在数学模型方面已有的研究成果, ...
- MCM试题原文及翻译 AB题 2014美国数学建模竞赛
MCM试题原文及翻译 AB题 2014美国数学建模竞赛 原创翻译,如有瑕疵,敬请谅解. 转载请注明:过客小站 » MCM试题原文及翻译 AB题 2014美国数学建模竞赛 PROBLEM A: The ...
随机推荐
- java反序列化-ysoserial-调试分析总结篇(2)
前言: 这篇主要分析commonCollections2,调用链如下图所示: 调用链分析: 分析环境:jdk1.8.0 反序列化的入口点为src.zip!/java/util/PriorityQueu ...
- python django 之 django自带的分页
1. 例1: 基础的分页 1). vim app01/views.py def users(request): from django.core.pagina ...
- 2020年,MyBatis常见面试题总结
Mybatis 技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用 Mybatis 的文章,所以,一些参数使用细节略掉了,我们的目标 ...
- MVC04
1. 从页面到action 讲述controller与View之间的具体运作关系 在上次添加的名为Movie的Model内添加 下面我们尝试为该model内的属性添加attribute 具体修改如下: ...
- node--静态文件托管,路由,模板引擎
1.路由 路由是由一个URI和一个特定的HTTP方法(GET/POST)组成的 涉及到应用如何响应客户端对某个网站节点的访问 2.ejs 3.get/post 1)get获取数据 通过Url类中的qu ...
- chorme浏览器记住密码后input黄色背景处理方法总结(三种)
问题分析 正常情况: 记住密码后访问: 解决方法 方法1:阴影覆盖input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px white ins ...
- JZOJ 5328. 【NOIP2017提高A组模拟8.22】世界线
5328. [NOIP2017提高A组模拟8.22]世界线 (File IO): input:worldline.in output:worldline.out Time Limits: 1500 m ...
- @常见的远程服务器连接工具:Xshell与secureCRT的比较!!!(对于刚接触的测试小白很有帮助哦)
现在比较受欢迎的终端模拟器软件当属xshell和securecrt了. XShell绝对首选,免费版也没什么限制,随便改字体随便改颜色随便改大小随便改字符集,多窗口,也比较小巧,而SecureCRT界 ...
- 前端劝退预警:JavaScript 工具链不完全指南
经过这么多年的发展,JavaScript 早已经不是当年那个不太起眼的脚本语言.如今的 JavaScript 可以说是风光无限,在 Web 前端.移动端.服务端甚至物联网设备上都大展身手,到处都有它的 ...
- Flask 使用pycharm 创建项目,一个简单的web 搭建
1:新建项目后 2:Flask web 项目重要的就是app 所有每个都需要app app=Flask(__name__) 3:Flask 的路径是有app.route('path')装饰决定, ...