摘要:近年来,基于数据驱动的机器学习模型开始提供可替代的方法,并在许多任务中优于纯物理学驱动模型。

本文分享自华为云社区《如何将知识引入机器学习模型提升泛化能力?》,作者:PG13 。

基于物理学的模型是当今技术和科学的核心。近年来,基于数据驱动的机器学习模型开始提供可替代的方法,并在许多任务中优于纯物理学驱动模型。但是,基于数据驱动的模型训练需要大量的数据,而且它们的决策推理可能难以解释,而且泛化性能仍然是一个挑战。而同时结合数据和物理学则可以两全其美,当机器学习算法在学习时,它们实际上是在你选择的算法、架构和配置所定义的假设空间中去寻找解。即使对于简单的算法,假设空间也可能相当大,而数据是我们在这个巨大空间中寻找解决方案的唯一指南。而如果我们可以使用我们对世界的知识(例如物理学)和数据一起来指导解空间的搜索,结果会怎样呢?

如何用物理学指导机器学习算法

如何利用物理学来指导机器学习模型,总结一下主要有两种方法:(1)使用物理学理论计算额外特征(特征工程),与测量值一起输入模型进行训练;(2)在损失函数中添加物理不一致惩罚项以惩罚与物理学不一致的预测。

第一种方法,也就是特征工程,在机器学习领域中广泛使用。而第二种方法很像添加一个正则化项来惩罚过拟合现象,它们在损失函数中添加了一个物理不一致惩罚项。因此,在进行参数优化时,优化算法还需最小化物理上不一致的结果。

在论文[1]中,Karpatne 等人将这两种方法与神经网络相结合,并展示了一种他们称之为物理引导神经网络 (PGNN) 的算法。PGNN 可以提供两个主要优势:

  • 实现泛化是机器学习中一个基本挑战。由于大多物理模型不依赖于数据,因此它们在可能在未见过的数据上也能有良好的表现,即使这些数据来自于不同的分布。
  • 机器学习模型有时也被称为黑盒模型,因为它并不总是清楚模型如何进行特定的决策。可解释AI(XAI)有很多的工作要做以提高模型的可解释性。而PGNN可以为XAI提供基础,因为他们能够呈现出物理上一致且可解释的结果。

应用示例:湖泊温度建模

在论文[1]中,以湖泊温度建模为例来证明了 PGNN 的有效性。众所周知,水温控制着生活在湖中的生物物种的生长、生存和繁殖。因此,准确的温度观测和预测对于了解社区中发生的变化至关重要。论文的任务是开发一个模型,可以根据给定的深度和时间来预测湖泊的水温。

现在,让我们看看他们是如何应用 (1) 特征工程和 (2) 损失函数修改来解决这个问题的。对于特征工程,他们提出了一种称为GLM的模型来生成新特征并将其输入神经网络。它是一个基于物理学的模型,它能捕捉控制湖泊温度动态的过程(由于太阳、蒸发等引起的加热)。那么如何定义这个物理不一致项呢?众所周知,密度大的水会下沉至更深处,而水的温度与其密度之间的物理学关系也是已知的。因此,我们的模型在预测时应该遵循这样一个事实,即点越深,预测密度越高。如果对于两个点,模型预测出来更靠近湖面的点的密度更高,这就是在物理上不一致的预测。

经过以上的分析,现在可以将这个想法合并到我们的损失函数中。如果 ρA> ρB,也就是预测不符合物理一致性,我们需要进行惩罚,否则不进行惩罚。这可以通过将函数max( ρA- ρB, 0)的值添加到损失函数中来轻松实现。如果 ρA> ρB(即物理不一致),该函数将给出一个正值,这将增大损失函数的值,否则为零,保持损失函数不变。

此时,我们还需要对该函数进行两点修改:(1) 我们需要考虑所有点对的物理不一致情况,而不仅仅只是某一对。因此,可以对所有点对的max( ρA- ρB, 0)值求平均。(2) 此外,最小化物理不一致惩罚项的权重也很关键。这可以通过将平均物理不一致项乘以超参数(与正则化参数类似)来完成。如下公式所示:

对4个模型的结果进行了比较,分别是:

  • PHY:通用湖泊模型(GLM)
  • NN:神经网络
  • PGNN0:具有特征工程的神经网络,GLM模型的结果作为额外特征输入神经网络。
  • PGNN:具有特征工程和修正损失函数的神经网络。

以及两个评估指标:

RMSE:均方根误差

物理不一致分数:模型的预测不符合物理一致性结果的占比。

将 NN 与 PHY 进行比较,我们可以得出结论,NN 以损失物理不一致的结果为代价提供了更准确的预测。而比较 PGNN0 和 PGNN,我们可以看到通过修改了损失函数消除了物理不一致性。而预测准确性的提高主要是由于特征工程以及损失函数的一些贡献。

总而言之,这些初步结果向我们表明, PGNN 非常有希望提供较准确且物理一致的结果。此外,我们通过将物理学的知识进行转换引入损失函数,提升了机器学习模型的泛化性能。这个看似简单的想法有可能从根本上改善我们进行机器学习和科学研究的方式。

参考文献

[1] Physics-guided Neural Networks(PGNN): An Application in Lake Temperature Modeling.

[2] Theory-guided Data Science: A New Paradigm for Scientific Discovery from Data.

点击关注,第一时间了解华为云新鲜技术~

如何将知识引入机器学习模型提升泛化能力?相关推荐

  1. 量纲与无量纲、标准化、归一化、正则化【能够帮助梯度下降中学习进度收敛的更快、提升模型的收敛速度提升模型的精度、防止模型过拟合,提高模型的泛化能力】

    目录 1 量纲与无量纲 1.1 量纲 1.2 无量纲 2 标准化 3 归一化 归一化的好处 4 正则化 5 总结 1 量纲与无量纲 1.1 量纲 物理量的大小与单位有关.就比如1块钱和1分钱,就是两个 ...

  2. 漫谈机器学习的【泛化能力】【模型能力】【调参技巧】_CodingPark编程公园

    漫谈机器学习 完成第一幅初稿 完成终稿 1945年12月5日 1946年1月17日 前言 上面的画就是20世纪最著名的抽象派画家毕加索于1946年1月17日完稿的画作--公牛,寥寥几笔,勾勒出公牛的& ...

  3. 【AI初识境】如何增加深度学习模型的泛化能力​​​​​​​

    文章首发于微信公众号<有三AI> [AI初识境]如何增加深度学习模型的泛化能力 这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. ...

  4. 【AI初识境】如何增加深度学习模型的泛化能力

    这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 今天来说说深度学习中的generalization问题,也就是泛化和正则化有关的内容. 作者 ...

  5. 数据增强,扩充了数据集,增加了模型的泛化能力

    数据增强(Data Augmentation)是在不实质性的增加数据的情况下,从原始数据加工出更多的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值. 其原理是,通过对原始数据融入先验知识, ...

  6. ICLR2020 | 谷歌最新研究:用“复合散度”量化模型合成泛化能力

    2020-03-11 18:13:47 据官方消息,ICLR 2020会议将取消线下会议,并于4月25日-30日线上举办虚拟会议.本届会议共有 2594篇投稿,其中 687篇论文被接收(48篇oral ...

  7. Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力...

    AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中.AlexNet主要使用到的新技术点如下. (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过 ...

  8. 梯度中心化,一行代码加速训练并提升泛化能力

    来源 | 晓飞的算法工程笔记 优化器(Optimizer)对于深度神经网络在大型数据集上的训练是十分重要的,如SGD和SGDM,优化器的目标有两个:加速训练过程和提高模型的泛化能力.目前,很多工作研究 ...

  9. 如何提高强化学习算法模型的泛化能力?

    深度强化学习实验室 官网:http://www.neurondance.com/ 来源:https://zhuanlan.zhihu.com/p/328287119 作者:网易伏羲实验室 编辑:Dee ...

最新文章

  1. OpenJudge/Poj 2027 No Brainer
  2. Eclipse+Maven创建webapp项目
  3. [python] LDA处理文档主题分布代码入门笔记
  4. java 判断进程状态_获取远程服务器上 Java 进程的运行状态
  5. 休息一下,或者:如何使用Java 12制作出色的拼图游戏
  6. C#LeetCode刷题之#63-不同路径 II​​​​​​​(Unique Paths II)
  7. 【codevs1830】【BZOJ1951】古代猪文,数论综合
  8. Git:git同步git push时候提示filename too long解决办法
  9. Java案例:实现九九乘法表
  10. Python开发——函数【迭代器、生成器、三元表达式、列表解析】
  11. 干货|如何轻松安装和永久激活photoshop cs6
  12. MyOS 之 键盘鼠标
  13. windows如何切换到administrtor用户
  14. Android之讯飞语音-文字转语音(不用另外安装语音合成包apk)遇到的问题
  15. 计算服务——弹性云服务器
  16. SAS聚类分析(系统聚类cluster,动态聚类fastclus,变量聚类varclus)
  17. java入门第一周总结
  18. 支付宝接口调试完成后,接入本地项目中
  19. 网络安全-跨站请求伪造(CSRF)的原理、攻击及防御
  20. ppt学习日记:L4-图片实战技巧

热门文章

  1. (9)css常用样式--盒子模型
  2. 实战 | Java 流之Stream,Lambda以及日期
  3. 理论 | 优雅的构建一个健壮的API接口
  4. ROS笔记(27) 机械臂的组装
  5. object C php,关于消息推送的补充,主要介绍服务端的实现,包含object c 版本 c 版本 java 版本 php 版本 (转)...
  6. c语言比两个人年龄大小,c语言结构体
  7. python excel vlookup_Python Excel vlookup实现
  8. java 正規表示 group_经验分享|Java+百度AI实现人脸识别
  9. MySQL---InnoDB引擎隔离级别详解
  10. 从LFS官方文档构建完整Linux系统