关于机器学习/深度学习的一些事-答知乎问(一)

173 篇文章 1 订阅
138 篇文章 5 订阅

如何将领域知识融入到深度学习模型中?

在早期的研究阶段,大多基于经验和对问题的一些理解, 启发式地设计网络, 并通过端到端学习的方式得到解决具体问题的深度模型。这类方法在很多问题如图像识别中取得了巨大的成功, 但随着相关研究的逐渐深入, 发现完全启发式设计的深度网络并不能在所有的问题中取得令人满意的果。一些依赖低层知识的视觉问题中, 如图像盲去模糊问题, 这种直接使用端到端策略和经验设计的网络就不能达到很好的性能。针对这类问题,一种最直接的方法就是:在端到端学习方法之前, 利用具有某种知识的模型驱动方法对数据进行预处理。

在机器学习模型的输入端对数据进行预处理是将知识融合到机器学习模型中一类重要的方法, 大致可以被归入两种方式:通过具有某种知识的模型驱动方法将原始数据转换为特征向量、对原始数据进行某种变换使得其与某种知识相关的特征如旋转不变性更加明显。第一种方式本质为特征工程, 在传统机器学习算法如决策树以及SVM中广为出现, 如:利用Haralick纹理特征模型、Canny滤波器提取具有纹理知识的特征向量作为SVM的输入的方法等。这类方法的优点在于能够获得与某些知识相关的特征输入, 缺点在于转换的过程中可能出现信息的丢失。第二种方式是一种类似预处理的形式, 在神经网络中出现更多, 如:通过与人眼成像相近的具有形状不变性的Gabor变换后的图像作为卷积神经网络的输入;通过获取信号信息的稀疏滤波器组变换后作为卷积神经网络的输入 ;通过统计梯度信息而来的HOG或Fishier向量变换后的图像作为卷积神经网络的输入;通过保稀疏性的小波变换后的图像作为卷积神经网络的输入。这些方法的优点在于加强了与某种知识如形状相关的特征, 从而使得在输入端更加具有区分性, 但存在着过于依赖人为选定的超参数、无法跟随目标函数更新参数的问题。

如何将领域知识融入网络结构?

随着深度学习的发展,当面对复杂问题的时候,在深度神经网络提取特征的过程中完全抛弃知识是非常不明智的策略。虽然有很多研究者在深度网络处理数据之前, 利用具有某种知识的模型驱动方法对数据进行预处理, 但是这种方法没有进行实质性地改造深度网络, 且这种两阶段方法从端到端学习策略来看很难达到最优。另一方面, 具有某种知识的模型驱动方法如Schmid滤波器能够保持旋转不变性, 这类知识很符合深度网络中浅层网络结构所需要的特征。因此, 很多研究者利用具有某种知识的模型驱动方法来改进深度网络的网络结构, 用这种方法在深度网络中融入知识能够提高模型的性能。

这方面的研究主要分为三个大方向:通过知识对输入进行编码并添加到神经网络的输入端构建第一层网络、利用知识改变神经网络的部分结构、利用知识改变神经网络的整体结构。

第一种方式是通过编码知识作为神经网络的辅助输入构建第一层网络的方式实现的,比如利用文本信息作为辅助输入的算法。

第二种方式是通过改变神经网络的部分结构(如:卷积神经网络中的卷积核)实现的:为保持深度网络往边缘以及纹理信息的方向进行端到端学习,利用Gabor 滤波器改进深度网络的网络结构, 如使用固定参数Gabor滤波器作为第一卷积层的卷积核方法,使用Gabor 滤波器初始化卷积核的方法;使用Gabor滤波器和普通卷积核相乘的方法。这一类方法的优点在于适当调整网络的部分结构, 从而将知识嵌入到整个深度网络学习的过程中, 缺点在于大部分方法对于初始化或参数的选择要求都很高, 且这些参数难以更新。

第三种方式是通过对整个神经网络的结构作出调整实现的,比如为了保全局信息和边缘信息将多尺度全卷积残差网络和病变指数计算单元结合组成的框架结合以同时处理病变分割和病变分类,这类利用具有某种知识的模型驱动方法改进深度网络框架的方法, 虽然有效地将知识和数据融合改进深度网络, 但是仍然需要更多的数据去训练深层网络。

如何将模型驱动方法和深度学习方法结合?

所谓的unrolling方法。

在深度学习的发展过程中,很多研究者发现这种纯端到端学习策略并不能完全替代具有某种知识的模型驱动算法, 很难处理一些复杂问题如图像去噪, 为了更好地将知识和数据融合改进深度学习方法, deep unrolling技术被提出,deep unrolling技术是一种具有某种知识的模型驱动方法和深度学习方法的迭代交融学习方法, 以弥补将知识和数据融合进行一次简单串行的缺陷。这类技术指的是通过知识建立原始模型并给出基础迭代格式, 然后在此基础上通过引入可学习模型( 深度网络) , 进而从给定的训练数据中学习该问题的潜在规律和数据分类, 最后通过unrolling实现知识和数据的有效融合。

unrolling是指将求解一个给定连续模型的迭代优化看成一个动态系统, 进而通过若千个可学习模块(深度网络) 来离散化这一系统,得到数据驱动的演化过程的方法。主要包括的三个核心步骤, 即设计迭代格式、嵌入可学习模块和理论分析;现有的很多工作都是集中在前面两个步骤中,而由于使用可学习模块对迭代格式进行非精确的展开和计算, 原有的数值算法的理论性质如收敛性不在保持。现有的工作缺乏对这方面的一些研究, 另外unrolling技术仍然是将知识的模型驱动方法和深度学习方法进行简单的串行。

小样本学习的主要挑战是什么?

小样本学习一般包含两个阶段:第一阶段是利用一个大规模的基类数据集训练一个基础模型,这一阶段可以类比于人类已经学会的知识,第二阶段是将基础模型泛化到小样本新类的训练中,这一阶段则可以类比人类对于新知识的学习。可以从分类层,表征层和输入层三个角度说明传统的深度学习在训练样本数量不足的情况下表现不佳的原因,并作相应的改进。

从分类层的角度,传统深度学习模型没有对新类别和基础类别的关系进行建模。传统深度学习模型在第二阶段一般采用的方式是微调机制,即在基础模型上使用新类别训练数据进一步训练。在训练数据较多时,深度神经网络的强拟合能力保证了微调机制的有效性,然而在训练数据较少的情况下,一方面严重的过拟合现象会导致深度神经网络在测试集上的识别能力下降,另一方面缺少将已经学会的有关基础类别的知识迁移到新类别的机制,导致深度神经网络不能有效的进行小样本新类的学习。因此如何能够在分类层上对新类别和基础类别的关系进行建模,从而提高小样本学习能力是一个非常重要的问题。

从表征层的角度,传统深度学习模型的表征层往往不适合小样本学习。一方面在传统的深度神经网络的学习中,一般在训练过程中不会对表征层的数据分布施加限制。在训练数据和测试数据是同分布的场景下,表征层的数据分布也趋向于一致。然而在数据分布不一致的情况下,使用基类数据集训练的基础模型不能很好的刻画新类别的数据分布,尤其在新类别样本数较少的情况下,更增加了将基础模型泛化到新类别上的难度。另一方面从统计学的角度,对于训练样本数较少的参数估计一般要求是最小方差无偏的,而在传统神经网络的表征层上的参数推断往往做不到这一点。

从输入层的角度,传统深度学习模型的基类数据集一般是固定的,其类别的选取往往是基于简单随机策略或是人类经验。事实上,在第一阶段中,不同的基类数据集训练出的基础模型具有不同的泛化能力。这一点在人类的学习中也有所体现,例如在学习“狼”这个新概念之前,如果学会了“狗”这个概念,基础模型的泛化能力要强于学习了“汽车”等概念。传统深度学习模型的训练过程是基于大规模训练数据的,因此基类数据集的构造方式对新类别的学习的影响不大,而小样本学习则非常依赖基类数据集知识的迁移和泛化,因此如何选择基类也是小样本学习的重要问题之一。

事后解释的神经网络解释算法是什么?

基于网络的解释方法

针对网络自身单元的属性进行解释, 不依赖于特定的输入输出

(1) 理想样本: 特定的网络单元自发生成最感兴趣的输入样本。

(2) 真实样例: 网络单元从输入样本中寻找感兴趣样本的代表。

基于输入的解释方法

针对指定输入样本, 对网络给出的输出结果进行解释

(1) 单一输入的解释: 对特定输入样本与输出结果的关系进行解释。

(2) 多个输入的解释: 为一类相似的输入样本的输出结果提供统一的解释。

机器学习的内在可解释性指的是什么?

机器学习的内在可解释性的概念与黑盒概念相反,其强调模型的透明度,具有三个不同的层面的属性:一是可仿真性,评判人类能否在合理的时间内完成模型决策的所有步骤,如相对较浅的决策树模型,维度较低的线性回归模型以及基于简单规则的模型都被认为具有良好的可仿真性,而计算参数庞大的深度神经网络则在此方面表现较差;二是模型的可分解性,即模型的每个参数和模块都能被分别直观地解释,如线性模型中的系数表示特征的重要性,决策树的每一个节点都可用文字描述其意义;三是训练算法透明度,即算法的难易理解程度,相对于神经网络反向传播训练算法,线性回归模型的训练算法更简单,更具透明度。

机器学习模型的内在可解释性的研究旨在通过改进或构建模型内部的单元或模块对复杂模型的决策机理作解释,大致可分为三大类,即模型结构稀疏化,模型模块功能化以及模型机理知识融合。模型机理知识融入的研究发展与其余两种的内在可解释性研究多起源不同领域,前两类大多在计算机及医学等领域发展,仅依托于数据、模型;后者则为新兴方向,多在物理系统如流场、温度场等,在从数据、模型入手研究可解释性的同时,往往与系统的物理数学紧密结合,甚至指导模型构建公式,这样的研究方向也被认为是对可解释模型的探讨。

(1)模型结构稀疏化

一个稀疏模型往往只保留与模型预测相关度较高的特征,而将其他冗余特征去除,如线性稀疏模型会出现大量的0值权重,树模型被修剪至仅有少量的分支。模型的稀疏化可以减轻高维问题中模型的过拟合现象,通过获取更稀疏的模型结构以获得更高的测试精度,如线性模型中的Lasso回归和Ridge回归、庞大树模型的修剪策略以及稀疏编码。

基于更简单的模型具有更好解释性这一假设,众多学者开始采用结构稀疏化的方法提升模型的可解释性。模型结构稀疏化的方式实际上并未直接对模型进行解释,本质上是间接地通过降低模型结构和参数的复杂度提高模型的可理解程度。因此,这种方法常应用于缓解过拟合,尽管也应用在对复杂深度模型的可解释性研究中,但是解释并不直观。

(2)模型模块功能化

模块功能化旨在赋予模型中的模块对决策过程中某部分进行独立解释的能力,要求设计者在网络设计或训练过程中添加特殊机制或约束来赋予模型分模块学习能力,常被应用于复杂深度网络解释中。典型的方法为注意力机制,其对深度网络中的不同模块赋予权重,希望各个模块学习不同范畴的表征。注意力机制最初被应用于机器翻译中,设计者对RNN解码器的隐藏状态向量赋予注意力权重,调整不同位置输入量对输出结果的贡献,约束机器在翻译过程中参考上下文信息的范围。模型模块功能化直接对模型的各个部分嵌入功能意义,常用于复杂的深度学习网络,解释效果明确、清晰。同时,模块功能化深度网络的研究也催促着更多新颖的神经学习单元、更多训练方式的产生。

(3)模型机理知识融入

模型机理知识融入主要旨在利用对象物理系统的机理知识导向构建深度模型,如一般物理系统内部的能量、质量守恒,牛顿定律等,甚至基于系统的微分方程,如计算流体力学中的对流扩散微分方程,此处认为这样的深度模型背部融合了系统中的机理知识,模型不再是黑盒系统,被赋予了可解释性。此处,模型机理知识融入分为两种方式,其一为基于神经网络的数学算子近似,其二为神经网络求解框架构建,即构建能够表征机理方程的深度模型.

目前,模型机理知识融入方面的研究如火如荼,实际上是以深度网络可学习结构代替传统的数值求解和系统辨识方法,与物理机理结合,得到可解释的深度模型,是非常有潜力的研究方向。

图片

知乎学术咨询:

https://www.zhihu.com/consult/people/792359672131756032

工学博士,担任《Mechanical System and Signal Processing》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

图片

  • 33
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哥廷根数学学派

码字不易,且行且珍惜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值