作者:Sebastian Dick

翻译:王可汗

校对:车前子

本文约3800字,建议阅读13分钟。

本文为大家展示了在机器学习模型中编码现实生活中的对称性可以将其准确性提高几个数量级。

对称无处不在,围绕在我们生活左右。

从雪花美丽的规则形状和罗马花椰菜的自相似(分形)结构,到蜂巢的六角形图案。大自然似乎在寻找对称。事实上,我们存在的法则实在是太多了:物理学家谈到时空中的平移对称(“穿过”)。他们的意思是,像万有引力这样的力在数百万年前和现在的作用方式是一样的,在悉尼和纽约之间没有差别。旋转对称是自然最喜欢的另一种形式,简单地说就是当你从不同角度看一个物体时,它的属性不会改变。对称的例子不胜枚举,其中一些比其他的更容易理解(比如洛伦兹对称,它说明在惯性系中光速是相同的,这可以被不太懂物理的人所理解)。尽管其中一些对称性对人类来说是显而易见的,但令人惊讶的是,大多数机器学习模型都对它们的存在视而不见。让我以我自己的工作为例:

大致来说,我的研究目标是利用机器学习仅从结构信息来预测分子的性质。这意味着,我得到一列原子和它们的坐标。对于一个水分子,它看起来是这样的:

原子的坐标可以方便地归纳成一个矩阵,矩阵的行对应于原子,列分别对应于x、y和z的位置。我想预测需要多少能量需要把分子分解成它的组成原子(原子化能量)。我可以通过训练神经网络F来做到这一点,它使用原始坐标作为特征并输出能量:

假设我成功地在一个大且不同的分子数据集上训练了这个神经网络,我想找到以下水分子的原子化能量:

你可能已经注意到了,它只是原始分子的一个旋转版本。因此,它应该具有相同的原子化能。我们能保证神经网络会遵守这个旋转对称吗?不幸的是,没有。

更糟糕的是,如果我们简单地交换两个氢原子。网络可能会再次给出一个完全不同的答案。相同原子的顺序没有物理意义,只是神经网络训练出来的人为产物。理想情况下,我们希望神经网络的输出尊重这种排列对称(排列:“交换事物的顺序”),但如何做到呢?

在化学和物理应用机器学习的早期,研究者很快意识到模型需要观察这些对称性才能足够精确。因此,人们投入了大量的精力来研究如何在机器学习算法体现出对称性。现在,这通常是通过巧妙的特征工程和神经网络设计相结合来实现的。关于这些方法的全面评述可以在这里(https://aip.scitation.org/doi/full/10.1063/1.4966192)找到[1]。所有这些方法都有一个共同点,就是它们以某种形式向学习算法引入了归纳偏置。

学习算法的归纳偏置是一组假设,学习者用来预测未遇到[2]的给定输入的输出。

在旋转对称的情况下,这种归纳偏置可以表述为假设:“任何在旋转下不变的信息可以而且应该被忽略。” 不管你是否意识到这一点,如果你以前使用过任何机器学习模型,你就会遇到归纳偏置:

  • 线性回归是基于因变量与协变量之间存在线性关系的假设。

  • k近邻分类器假设特征空间中的邻近转换为输出空间中的邻近。

  • 卷积神经网络假设输出在很大程度上不受输入转换的影响(不考虑边界条件)。

虽然所有这些标准算法都有一些内在的偏差,但我想通过一个例子来演示如何引入额外的假设可以大大提高模型的准确性。

例子:房地产价格模型

想象下面的场景:

您的客户对买卖房地产感兴趣,并要求您创建一个机器学习模型,准确预测建筑物的公平市场价值。幸运的是,训练数据很容易获得,但有些有限(约1000个样本)。更复杂的是,这栋建筑的任何信息都是以房屋单元为单位给出的,除了价格是以整栋建筑为单位给出的。

为了简化我们的分析,让我们假设每个建筑包含10个单元,我们有关于每个单元的以下信息:

  • 单元类型:零售,办公,生活空间

  • 单元面积:以平方英尺为单位

  • 房间数量

  • 窗户与墙壁的比率

  • 单元在哪一层(以楼层总数的比率给出)

我们的数据以表格形式,有1000行(样本数量)和51列(5个特征 10个单元+总价)。让我们把模型输入(前50列)写成设计矩阵X,因变量写成向量y。

线性回归(LR)

普通 LR

对于任何回归任务来说,一个好的起点总是线性回归,它的目标是选择权重w,以便模型预测的平均平方误差最小化。

为了分析这个模型基于我们的数据表现得有多好,我们可以查看与训练集大小相关的泛化误差(测试集上的误差)。绘制我们的结果,我们得到了通常所说的学习曲线:

注意,我们已经包含了一个基线模型,它仅仅预测了训练集的平均价格。我们可以从这张图中推断出几件事。我们看到,对于非常小的训练集,基线模型比LR更准确,然而,当我们使用更大的数据集时(注意log-log坐标!),我们可以在基线上进行改进。但是100万美元的均方根误差(RMSE)并不是很好的表现,它对我们虚构的客户也没有用处。我们希望能做得更好…

置换不变LR

让我们想想对称性的问题:在设计矩阵X中以何种顺序罗列单元重要吗?答案显然是否定的。我们可以将第1-5列与第6-10列互换,但该建筑仍然拥有相同的净值。然而,我们的普通LR并不能准确地捕捉到这一点,因为不能保证权重1−5和6−10是相同的。目标很明确:我们需要我们的模型在单元排列下保持不变。

让我们考虑一个稍微不同的版本,我们的设计矩阵,我们将称之为。考虑每单元(每5列一组)作为一个单独的数据点,矩阵原始X转化后维数为10000a✖5由。线性回归则为

z是每个单元的价格。不幸的是我们无法得知z(潜变量),但是我们可以假设z和y之间的关系。由于我们想保持在线性模型的范围内,我们得到:

简而言之,就是一栋楼的价格是这栋楼内每一单元价格的总和。通过引入一个适当的矩阵L,我们可以用矩阵L表示所有建筑物i的总和:

线性回归模型可以写成:

意味着我们总结一个建筑所有单元的特征,所以我们只使用建筑总面积而不是每个单元的面积。所以对于线性回归来说,强加排列对称真的是一个微不足道的任务。当我们转到内核方法时,使用这种更抽象的表示法的优势将变得清晰起来。

使用置换不变LR,我们得到以下学习曲线:

虽然我们看到了小数据集的实质性改善,但模型似乎没有从数据中学到很多东西,导致曲线平坦。这表明线性模型的表达能力不足以捕获训练数据中包含的所有细节。显然,线性假设过于强烈,对于一个“健康”模型,我们期望学习曲线在对数-对数坐标(表示预期的幂律行为)上是线性的[3]。

高斯过程回归(GPR)

普通GPR

让我们考虑一个更复杂的模型。我们有几个选择:神经网络当然很受欢迎,但对于如此小的数据集来说显然不可靠。有效的选择是基于树的方法和k-means方法。我个人最喜欢的是基于核函数的方法,特别是高斯过程回归(GPR)。

我们正在寻找一个函数映射输入,或自变量x对因变量y(价格)。在高斯过程回归中,我们用贝叶斯方法先找到这个函数,即首先在所有可能的f上指定一个高斯先验分布,然后对观测数据点(X,y)进行条件处理(即基于先验和一定的假设(联合高斯分布)计算得到高斯过程后验分布的均值和协方差。)。这个先验通过协方差矩阵为k的高斯过程定义:

高斯过程是随机变量的集合,任意有限个数的随机变量都具有联合高斯分布[4]。对于x的任何值,输出遵循正态分布。进一步,两个距离较远的点x和x’点的输出在在定义为的协方差条件下是联合正态分布的。在实践中,这意味着我们可以通过选择一个合适的协方差函数(也称为核)来确定拟合函数f的形状。

一种非常流行的核函数选择是平方指数协方差(有时也称为径向基函数)。选择这个内核,我们基本上设定f是光滑的,因为当点很近时(即很小),点之间将是高度相关的。让我们回到我们的例子。一旦我们在训练数据上设定高斯过程的条件,我们就可以在测试集上做出预测。

用我们设计的矩阵x和目标值y,给出了模型的预测。这看起来非常类似于线性回归,除了已经取代了X。因为w的参数方程是线性的,它仍然是直接可解的:

注意,我们引入参数并乘以单位矩阵。该参数用于拟合数据中的噪声,同时有助于避免矩阵求逆时的数值问题。

将我们的训练数据代入这些方程,我们得到以下学习曲线:

嗯,这不是很有效。虽然我们给了模型比LR更多的表达能力,但它的测试误差仍然与后者量级可比。我们的模型似乎对数据过拟合了。

置换不变GPR

我们把置换不变性加回去。和前面一样,我们想解决辅助问题。

其中,矩阵L与线性回归问题中相同。

在处理了一些项之后,我们得到了下面的方程:

重新定义:

修正GPR的原始形式:

特别好!通过使用对称不变性,我们已经能够将最佳测试误差从大约70万美元减少到3万美元。此外,缩放是线性的(在对数-对数尺度上),这表明如果需要,我们可以通过收集更多的数据来进一步提高模型的准确性。

回到科学

我希望我已经能够说服您,有时候在用机器学习模型拟合数据之前,值得停下来三思。通过简单地识别数据中的对称性,我们已经能够将模型的准确性提高20倍以上。作为一个小小的奖励,如果你理解了这篇文章的所有内容,你实际上离成为一个计算化学家又近了一步。

为什么这么说呢?如果你把“建筑”换成“分子”,把“单元”换成“原子”,我们基本上建立了一个化学和材料科学研究人员常用的模型[5]。通过把分子表示成原子贡献的组合,这个模型可以预测一个分子的性质,比如它的能量。就像在我们的例子中,这些原子的贡献是未知的——我们只知道整个分子的能量——但是我们仍然可以用潜在变量z来描述这个问题,从而使它置换不变。

参考文献:

[1] Behler, Jörg. “Perspective: Machine learning potentials for atomistic simulations.” The Journal of chemical physics 145.17 (2016): 170901.

[2] https://en.wikipedia.org/wiki/Inductive_bias

[3] C. Cortes, L. D. Jackel, S. A. Solla, V. Vapnik, and J. S. Denker, Learning Curves: Asymptotic Values and Rate of Convergence, Advances in Neural Information Processing Systems (Curran Associates, Inc., 1994),

pp. 327–334

[4] C. E. Rasmussen & C. K. I. Williams, Gaussian Processes for Machine Learning, the MIT Press, 2006, ISBN 026218253X. c 2006 Massachusetts Institute of Technology

[5] Bartók, Albert P., et al. “Gaussian approximation potentials: The accuracy of quantum mechanics, without the electrons.” Physical review letters 104.13 (2010): 136403.

原文标题:

Supercharge your model performance with inductive bias

原文链接:

https://towardsdatascience.com/supercharge-your-model-performance-with-inductive-bias-48559dba5133

编辑:于腾凯

校对:林亦霖

译者简介

车前子,北大医学部,流行病与卫生统计专业博二在读。从临床医学半路出家到数据挖掘,感到了数据分析的艰深和魅力。即使不做医生,也希望用数据为医疗健康做一点点贡献。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家 | 用归纳偏置来增强你的模型性能相关推荐

  1. 推荐 :用归纳偏置来增强你的模型性能

    作者:Sebastian Dick  翻译:王可汗  校对:车前子 本文约3800字,建议阅读13分钟. 本文为大家展示了在机器学习模型中编码现实生活中的对称性可以将其准确性提高几个数量级. 对称无处 ...

  2. ConViT:使用软卷积归纳偏置改进视觉变换器

    摘要 卷积架构已被证明在视觉任务方面非常成功.它们的硬归纳偏差使样本高效学习成为可能,但代价是可能降低性能上限.视觉变换器 (ViT) 依赖于更灵活的自注意力层,并且最近在图像分类方面的表现优于 CN ...

  3. 归纳偏置是什么?从现实生活中观察到的现象中归纳出一定的规则,然后对模型做一定的约束,从而可以起到“模型选择”的作用

    归纳偏置在机器学习中是一种很微妙的概念:在机器学习中,很多学习算法经常会对学习的问题做一些假设,这些假设就称为归纳偏置(Inductive Bias). 归纳偏置这个译名可能不能很好地帮助理解,不妨拆 ...

  4. 归纳偏置 (Inductive Bias)

    一.概念 Inductive Bias一般翻译为归纳偏置/归纳偏差(归纳偏置应该更容易理解些),是一个关于机器学习算法的目标函数的假设.其实说的是模型的指导规则. 归纳是自然科学中常用的两大方法(归纳 ...

  5. 机器学习中的归纳偏置

    机器学习中的归纳偏置 带着偏见看世界,否则你根本没有看待世界的方式. 本文主要参考整理自知乎问题:如何理解Inductive bias? No-Free-Lunch(NLF)定理指出学习是不可能的,除 ...

  6. 【机器学习】浅谈 归纳偏置 (Inductive Bias)

    目录 一.概念 二.例子 三.意义 一.概念 在机器学习中,很多学习算法经常会对学习的问题做一些关于目标函数的必要假设,称为 归纳偏置 (Inductive Bias). 归纳 (Induction) ...

  7. inductive bias:归纳偏置

    为什么卷积神经网络(CNN)相比于全连接网络(FC)往往有更好的泛化性能,尤其在图像分类任务上?通常用更好的归纳偏置(inductive bias)来解释,然而在数学上并不严格,因为足够宽的全连接网络 ...

  8. 归纳偏置/归纳偏差/inductive bias

    归纳偏置/归纳偏差/inductive bias "归纳偏差"中的"偏差"容易让人想到数据估计中估计值与真实值的差别error,会让人认为"归纳偏差& ...

  9. CNN中的Inductive bias(归纳偏置)

    归纳偏置其实就是一种先验知识,一种提前做好的假设. 在CNN中的归纳偏置一般包括两类:①locality(局部性)和②translation equivariance(平移等变性) ①  locali ...

最新文章

  1. android -volley-请求数据
  2. python学习第一章要点
  3. 问题:AttributeError: module 'tensorflow' has no attribute 'gfile'
  4. python流程控制-Python流程控制
  5. 关于实现udev/mdev自动挂载与卸载
  6. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
  7. 为梦想而战,高考励志主题教育班会PPT
  8. python中DictVectorizer的使用
  9. C++中set按降序排序
  10. android dp转px的公式_Android特效专辑——自定义不一样的Toast
  11. c#官方推荐md5通用加密类
  12. 【ES6(2015)】Number
  13. SnapKit 约束创建过程
  14. 1600802047 android 第三次作业(音乐播放器)
  15. TDtree冲刺第四天
  16. spark reduceByKey源码解析
  17. 软件配置管理计划示例
  18. java TWR是怎么优雅我们的代码的?
  19. 读书笔记:《权力之治:人工智能时代的算法规制》
  20. Redis 过期策略和淘汰策略

热门文章

  1. 首页列表显示全部问答,完成问答详情页布局。
  2. 使用PowerShell调用MTools分析MongoDB性能并发送邮件
  3. 升级BIOS解决DELL R730XD虚拟机死机问题
  4. [leetcode]Multiply Strings @ Python
  5. 首次创建maven项目的准备工作
  6. Ubuntu 安装软件方法
  7. C#读取数据库返回泛型集合 把DataSet类型转换为ListT泛型集合
  8. 我看ITIL在中国(三):嫁接的精髓
  9. python数组写入txt文档_Python打开文件,将list、numpy数组内容写入txt文件中的方法...
  10. tftp怎么给服务器传文件,TFTP文件传输工具使用