来源商业新知网,原标题:“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模型可以做到,我们是否真的需要考虑复杂的模型,只需要分析它的特征?这取决于我们决定:)