再无需从头训练迁移学习模型!亚马逊开源迁移

  雷锋网 AI 科技评论按:所谓的「迁移学习」,是指重新利用已训练的机器学习模型来应对新任务的技术。它

  雷锋网 AI 科技评论按:所谓的「迁移学习」,是指重新利用已训练的机器学习模型来应对新任务的技术。它给深度学习领域带来了许多好处,最明显的是,一旦无需从头开始训练模型,我们可以省下大量的计算、数据以及专业知识等资源。近期由亚马逊开源的 Xfer 数据库,可以让我们轻松应用及打造迁移学习原型,雷锋网 AI 科技评论将亚马逊算法工程师 Andreas Damianou 关于此库的介绍博文节译如下。

  Xfer 是一款针对 MXNet 的迁移学习,为适那些希望达到以下目的的从业者与研究人员而设计:

  换句话说,只要给定机器学习任务,Xfer 就能通过神经网络找到最佳解决方案,而无需你再从头开始进行训练。该库可以应用于任意的数据与网络,包括那些最常见的图像和文本数据。

  节省资源:无需从头开始训练网络,从而节省大量的人力与 CPU / GPU 资源)。

  降低使用门槛:无需成为机器学习专家,就能轻松利用和修改现有的神经网络体系结构,创建出自己的解决方案。

  提升原型设计速度:Xfer 的 ModelHandler 模块将能允许我们轻松修改神经网络的架构。

  不确定性建模(Uncertainty modeling):通过贝叶斯神经网络(BNN)或高斯过程(GP),我们得以把控模型预测的不确定性。

  只要确定好目标任务的源模型(MXNet)和数据迭代器,你只需输入 3 行代码即可实现迁移学习:

  在该例子中,ModelHandler 用于获取已在源任务上预先进行训练的神经网络参数 W。在保持 W 原来参数的基础上,我们通过源任务中的预训练神经网络传递目标输入数据。过程中我们将获得描述目标数据以及源任务信息的表示,因为它们是由从中获取的参数 W 生成的。最后,我们调用 Repurposer 模块将上述特征当作元模型分类器的输入。在给出的代码中,元模型以「Lr」进行指代,代表的是 Logistic Regression.。

  需要注意的是,如果使用的元模型基于高斯过程或贝叶斯神经网络(两者均构建在 Xfer 中),则可以在对目标任务的预测中进行不确定性预估。这也意味着,该方法可以「习得过去它们所不懂的东西」。这一点很重要,它可以借此应对标记数据过少的情况。

  该方法允许用户事先细化预训练神经网络架构,比如通过 ModelHandler 模块添加或移除层,接着通过基于梯度的优化器微调用于目标任务的神经网络。通过使用 ModelHandler,我们可以尝试使用自定义的微调再利用方法来进行实验。例如,从预训练神经网络中选择要传输/冻结的图层。关于 ModelHandler 传输功能的代码展示如下:

  与上个任务很类似,ModelHandler 用于获取在源任务上预训练的神经网络参数 W,该源模型可以是预先训练好的 VGGNet。通过 ModelHandler,我们可以对源任务神经网络的架构进行调整;在这个示例中,我们在架构底部添加了一个新层(带有新进的初始化参数)。接下来基于微调的再利用方法对新架构进行训练,以使其适应目标任务的数据。Xfer 允许我们通过定义原始参数(上图中显示为蓝色)以及新参数(上图中显示为橙色)来实现基于微调的再利用方法。由于原始参数已包含源任务的信息,因此不应和学习值有太大出入,而新参数已经被随机初始化,因此应该以更高的学习率进行优化。

TAG标签: 数据库学习
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。