在本文中,我想将经典数学建模和机器学习之间建立联系,它们以完全不同的方式模拟身边的对象和过程。虽然数学家基于他们的专业知识和对世界的理解来创建模型,而机器学习算法以某种隐蔽的不完全理解的方式描述世界,但是在大多数情况下甚至比专家开提出的数学模型更准确。然而,在许多应用程序(如医疗保健,金融,军事)中,我们需要清晰可解释的决策,而机器学习算法,特别是深度学习模型并不是这样设计的。

本文将回顾所期望模型的的主要特点,“经典”数学模型和机器学习模型的优点和缺点,并展示一个结合了两种模型特点的案例: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”:数学建模的终结?的更多相关文章

  1. python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记

    今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...

  2. 在数学建模中学MATLAB

    为期三周的数学建模国赛培训昨天正式结束了,还是有一定的收获的,尤其是在MATLAB的使用上. 1. 一些MATLAB的基础性东西: 元胞数组的使用:http://blog.csdn.net/z1137 ...

  3. BITED数学建模七日谈之七:临近比赛时的准备工作

    经过前面六天的文章分享,相信大家对数学模型的相关准备.学习都有了更新的认识,希望大家能从中有所收获,以便更高效地准备比赛和学习数学模型,本文是数学建模经验谈的最后一天:临近比赛的准备工作,希望在临近比 ...

  4. BITED数学建模七日谈之六:组队建议和比赛流程建议

    今天进入数学建模经验谈第六天:组队建议和比赛流程建议 数学模型的组队非常重要,三个人的团队一定要有分工明确而且互有合作,三个人都有其各自的特长,这样在某方面的问题的处理上才会保持高效率. 三个人的分工 ...

  5. BITED数学建模七日谈之五:怎样问数学模型问题

    下面进入数学建模经验谈第五天:怎样问数学模型问题 写这一篇的目的主要在于帮助大家能更快地发现问题和解决问题,让自己的模型思路有一个比较好的形成过程. 在我们学习数学模型.准备比赛的时候,经常会遇到各种 ...

  6. BITED数学建模七日谈之四:数学模型分类浅谈

    本文进入到数学建模七日谈第四天:数学模型分类浅谈 大家常常问道,数学模型到底有哪些,分别该怎么学习,这样能让我们的学习有的放矢,而不至于没了方向.我想告诉大家,现实生活中的问题有哪些类,数学模型就有哪 ...

  7. BITED数学建模七日谈之三:怎样进行论文阅读

    前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...

  8. BITED数学建模七日谈之二:怎样阅读数学模型教材

    今天进入我们数学建模七日谈的第二天:怎样阅读数学建模教材? 大家再学习数学建模这门课程或准备比赛的时候,往往都是从教材开始的,教材的系统性让我们能够很快,很深入地了解前人在数学模型方面已有的研究成果, ...

  9. MCM试题原文及翻译 AB题 2014美国数学建模竞赛

    MCM试题原文及翻译 AB题 2014美国数学建模竞赛 原创翻译,如有瑕疵,敬请谅解. 转载请注明:过客小站 » MCM试题原文及翻译 AB题 2014美国数学建模竞赛 PROBLEM A: The  ...

随机推荐

  1. 做直播能有多赚钱,Python告诉你

    前面我们介绍了APP爬虫环境的搭建和mitmproxy工具的简单使用,这次我们要来一个简单的APP爬虫,尝试一下APP爬虫的简单实用,顺便让我们看看喜马拉雅上的主播到底有多赚钱. APP爬虫一般分为两 ...

  2. 操作系统-IO管理和磁盘调度

    I/O设备 IO设备的类型 分为三类:人机交互类外部设备:打印机.显示器.鼠标.键盘等等.这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换的 存储设备:用于存储程序和数据的设备,如磁盘.磁 ...

  3. 使用nestjs集成grpc具体操作

    两个程序中, 提供grpc服务的称为服务端, 调用grpc服务的为客户端, 以下是grpc服务端和客户端的代码编写     1. 创建两个nestjs项目demo1(端口: 3000)和demo2(端 ...

  4. Vue请求第三方接口跨域最终解决办法!2020最终版!

    废话少说,再百度的近三个小时尝试了近10种方法无解后,终于皇天不负有心人! 这个vue axios 跨域问题被我解决了! 需求:请求客户端ip地址获取客户ip,再根据ip获取用户位置 工具:Vue,a ...

  5. MyBatis 源码分析-项目总览

    MyBatis 源码分析-项目总览 1.概述 本文主要大致介绍一下MyBatis的项目结构.引用参考资料<MyBatis技术内幕> 此外,https://mybatis.org/mybat ...

  6. php -v 找不到命令

    [root@localhost htdocs]# php -v -bash: php: command not found export PATH=$PATH:/usr/local/php7/bin ...

  7. vue中v-if和v-show的区别

    v-if.v-show顾名思义就是用来判断视图层展示效果的.  v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回真值的时候被渲染. v-show 指的是单纯的切换元素的样式dis ...

  8. Mac 下 Docker 运行较慢的原因分析及个人见解

    在mac 使用 docker 的时候,我总感觉程序在 docker 下运行速度很慢,接下来我一一分析我遇到的问题,希望大家能进行合理的讨论和建议. 问题: valet 下打开 laravel 首页耗时 ...

  9. vue-element-admin 模板 登录页面 post请求通过django的csrf认证,处理304错误

    经过一天的研究,终于把 vue-admin-template 模板的 post 请求 和django的api 弄通了 没有了那该死的304报错了 直接贴代码: 在main.js中 我直接给设置了一个 ...

  10. 吐血干货,直播首屏耗时400ms以下的优化实践

    导读: 直播行业的竞争越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近在帮做直播优化首开,通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴. 背景: ...