理论

简单来说,预训练模型(pre-trained model)是前人为了解决类似问题所创造出来的模型。你在解决问题的时候,**不用从零开始训练一个新模型,可以从在类似问题中训练过的模型入手。**比如说,如果你想做一辆自动驾驶汽车,可以花数年时间从零开始构建一个性能优良的图像识别算法,也可以从Google在ImageNet数据集上训练得到的inception model(一个预训练模型)起步,来识别图像。一个预训练模型可能对于你的应用中并不是100%的准确对口,但是它可以为你节省大量功夫。

通过使用之前在大数据集上经过训练的预训练模型,我们可以直接使用相应的结构和权重,将它们应用到我们正在面对的问题上。这被称作是“迁移学习”,即将预训练的模型“迁移”到我们正在应对的特定问题中。在选择预训练模型的时候你需要非常仔细,如果你的问题与预训练模型训练情景下有很大的出入,那么模型所得到的预测结果将会非常不准确。
预训练模型已经训练得很好,我们就不会在短时间内去修改过多的权重,在迁移学习中用到它的时候,往往只是进行微调(fine tune)。在修改模型的过程中,我们** **

如何使用预训练模型

场景一:数据集小,数据相似度高(与pre-trained model的训练数据相比而言)
在这种情况下,因为数据与预训练模型的训练数据相似度很高,因此我们不需要重新训练模型。我们只需要将输出层改制成符合问题情境下的结构就好。我们使用预处理模型作为模式提取器。比如说我们使用在ImageNet上训练的模型来辨认一组新照片中的小猫小狗。在这里,需要被辨认的图片与ImageNet库中的图片类似,但是我们的输出结果中只需要两项——猫或者狗。在这个例子中,我们需要做的就是把dense layer和最终softmax layer的输出从1000个类别改为2个类别。

场景二:数据集小,数据相似度不高
在这种情况下,我们可以冻结预训练模型中的前k个层中的权重,然后重新训练后面的n-k个层,当然最后一层也需要根据相应的输出格式来进行修改。因为数据的相似度不高,重新训练的过程就变得非常关键。而新数据集大小的不足,则是通过冻结预训练模型的前k层进行弥补。

场景三:数据集大,数据相似度不高
在这种情况下,因为我们有一个很大的数据集,所以神经网络的训练过程将会比较有效率。然而,因为实际数据与预训练模型的训练数据之间存在很大差异,采用预训练模型将不会是一种高效的方式。因此最好的方法还是将预处理模型中的权重全都初始化后在新数据集的基础上重头开始训练。

场景四:数据集大,数据相似度高
这就是最理想的情况,采用预训练模型会变得非常高效。最好的运用方式是保持模型原有的结构和初始权重不变,随后在新数据集的基础上重新训练。

微调模型的方法

如何使用与训练模型,是由数据集大小和新旧数据集(预训练的数据集和我们要解决的数据集)之间数据的相似度来决定的。
特征提取:
我们可以将预训练模型当做特征提取装置来使用。具体的做法是,将输出层去掉,然后将剩下的整个网络当做一个固定的特征提取机,从而应用到新的数据集中。

采用预训练模型的结构:
我们还可以采用预训练模型的结构,但先将所有的权重随机化,然后依据自己的数据集进行训练。

训练特定层,冻结其他层:
另一种使用预训练模型的方法是对它进行部分的训练。具体的做法是,将模型起始的一些层的权重保持不变,重新训练后面的层,得到新的权重。在这个过程中,我们可以多次进行尝试,从而能够依据结果找到frozen layers和retrain layers之间的最佳搭配。

神经网络---预训练相关推荐

  1. 加载部分神经网络预训练参数后改写网络的方法

    对于pytorch直接 checkpoint = 'D:/Speech-Transformer/BEST_checkpoint_85.tar' checkpoint = torch.load(chec ...

  2. TOP 100值得读的图神经网络----自监督学习与预训练

    清华大学的Top 100 GNN papers,其中分了十个方向,每个方向10篇.此篇为自监督学习与预训练方向的阅读笔记. Top100值得一读的图神经网络| 大家好,我是蘑菇先生,今天带来Top10 ...

  3. 《智源社区周刊:预训练模型》第1期:吴恩达团队医疗影像预训练、快手落地万亿参数模型...

    超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了<智源社区周刊:预训练模型>,从研究动态.行业资讯.热点讨论等几个维度推荐最近 ...

  4. 华为诺亚方舟预训练语言模型NEZHA、TinyBERT开源代码

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :华为,专知 [人工智能资源 ...

  5. 卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络

    卷积神经网络:VGG16 是基于大量真实图像的 ImageNet 图像库预训练的网络 图片输入->卷积->填充(Padding)->池化(pooling)->平坦(Flatte ...

  6. Make GNN Great Again:图神经网络上的预训练和自监督学习

    来源:RUC AI Box本文约6500字,建议阅读13分钟本文梳理近年来 GNN预训练和自监督学习/对比学习的相关工作. 1 引言 近些年来,对图神经网络(GNN)的研究如火如荼.通过设计基于 GN ...

  7. KDD 2020 开源论文 | GPT-GNN:图神经网络的生成式预训练

    论文标题:GPT-GNN: Generative Pre-Training of Graph Neural Networks 论文链接:https://arxiv.org/abs/2006.15437 ...

  8. 深度学习之循环神经网络(12)预训练的词向量

    深度学习之循环神经网络(12)预训练的词向量  在情感分类任务时,Embedding层是从零开始训练的.实际上,对于文本处理任务来说,领域知识大部分是共享的,因此我们能够利用在其它任务上训练好的词向量 ...

  9. GPT-GNN:图神经网络的生成式预训练 KDD 2020

    论文链接:https://arxiv.org/pdf/2006.15437.pdf 代码链接:https://github.com/acbull/GPT-GNN 论文来源:KDD 2020 参考文档: ...

最新文章

  1. 汽车穿越沙漠的算法问题(反推法)
  2. 反汇编RETN 0x0c的理解
  3. 国家市场监管总局:低价倾销、大数据杀熟等价格违法行为将被罚
  4. hive-03-hive的分区
  5. linux 防火墙开端口(转)
  6. 从set中取出指定位置的元素
  7. 特殊用途的IP地址介绍
  8. 几个jquery分发库速度测评
  9. iOS中分段控制器与UIScrollView结合使用
  10. DMTF Redfish 概念介绍
  11. 微信支付商户号和企业付款到零钱开通方法
  12. 隧道测量快速坐标反程序48004850计算器
  13. 授人以渔系列----如何win10安装ffmpeg
  14. Intel核显--OpenCL环境--Linux
  15. Thinkpad 系列电脑,装win10无限卡死在登录界面 解决方案及bug report!
  16. Dell服务器组建阵列-Raid(无阵列卡)
  17. i 春秋CTF题目 百度杯 9月场 再见CMS Upload 复现
  18. 服务器ip多有什么作用是什么,使用多ip服务器有什么优势呢?
  19. 非常不错的点餐系统应用源码完整版
  20. python股票自动交易从零开始-怎样用 Python 写一个股票自动交易的程序-数字货币代理...

热门文章

  1. 8.互 联 网 上 的 音 频 和 视 频 服 务
  2. 核心案例|中国民用航空飞行学院半实物飞行仿真平台
  3. 网站被降权了怎么办?
  4. 电商“双11”or直播“双11”?
  5. java程序license验证_基于TrueLicense实现产品License验证功能
  6. 主线程结束子线程会跟着结束吗
  7. 万向区块链“汽车供应链物流服务平台”获评“2018金融区块链创新应用优秀案例”...
  8. 微信小程序开发笔记 进阶篇④——getPhoneNumber 获取用户手机号码(小程序云)
  9. Go实现的5G核心网开源项目free5gc源码分析系列 | Gopher Daily (2021.01.08) ʕ◔ϖ◔ʔ
  10. Revisiting Over-Smoothness in Text to Speech