0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Pre-trained模型加速模型学习的建议

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-11-03 18:08 次阅读

首先,为什么要调整模型?

像卷积神经网络( CNN )这样的深度学习模型具有大量的参数;一般称之为超参数,因为它们不是固定值,需要迭代优化。通常可以通过网格搜索的方法来查找这些超参数的最佳值,但需要大量硬件和时间开销。那么,一个真正的数据科学家是否满足于只是猜测这些超参数呢?答案当然是否定的。

改进模型的最佳方法之一是,基于专业团队的设计和体系结构上来进行改进,但这些专业的知识往往需要对某一领域具有深入的了解,且通常需要有强大的硬件支持。一般这些专业的团队都喜欢把他们的训练好的模型(pre-trained model)开源出来,无偿提供给别人使用。基于这些pre-trained model来做研究和应用,可以省去大量的时间和资源。

深度学习技巧

这里分享几种方法,如何基于预训练好的模型来降低深度学习模型训练时间,提升模型的准确性:

1、选择最适用于做pre-trained模型的网络结构:了解迁移学习(transfer learning)的优点,或者一些强大的CNN网络结构。主要考虑,有些领域之间看起来不明显,但领域之间却共享一些具有潜在特性(share potential latent features)。

2、使用较小的学习率:由于预先训练的权重(weights)通常比随机初始化的权重更好,因此调整需要更精细!如何选择主要取决于training landscape和学习的进展情况,但需要仔细检查每个epoch的training errors,分析如何能让模型达到收敛。

3、使用Dropout:就像Ridge和LASSO正则化技术对于回归模型一样,对于所有模型都存在需要优化的参数alpha或Dropout。这是一个超参数,取决于需要解决的具体问题,只能通过不停实验的方法得到。先对超参数做比较大的调整(gridsearch时选择一个比较大的变化范围),比如NP. logspace(),然后像上面的一样减小学习速率。循环上述过程直到找到最优值。

4、限制权重大小:可以限制某些层的权重的最大范数(绝对值),可以提升模型泛化的能力。

5、不要改变第一层网络的权值:神经网络的第一个隐含层倾向于捕捉通用和可解释(universal and interpretable)的特征,如形状、曲线或交叉(shapes、curves and interactions),这些特征通常与跨域(domains)相关。应该经常把这些特征放到一边,把重点放在进一步优化meta latent level在水平上。这可能意味需要添加隐藏层!

6、修改输出层:把模型参数替换成适用于要解决新领域的新的激活函数和输出大小。但是,不要把自己局限于最明显的解决方案中。比如,尽管MNIST只需要10个输出类,但这些数字有共同的变化,允许有12 - 16个类可能会更好地解决这些问题,并提高模型性能!

Keras中的技巧

如何在Keras MNIST中修改Dropout和限制权重的大小:

Dropout最佳实践

1、使用20–50 %的,比较小的Dropout,建议20 %的输入(Inputs)。值取得太小,不起作用;值取得太大,不好收敛。

2、在输入层和隐藏层上使用Dropout。这一方法已被证明可以提高深入学习的效果。

3、使用较大的(带衰减率)学习速率(learning rate with decay),以及较大的动量(momentum)。

4、限制模型的权重!大的学习速率容易导致梯度爆炸。通过对网络权值施加约束(如最大范数正则化(max-norm regularization),其大小为5 )可以改善结果。

5、使用更大的网络。在较大的网络上使用Dropout,可能会获得更好的性能,从而使模型有更多的机会学习独立表示(Independent representations)。

给一个例子,如何在Keras中修改MNIST模型最后一层,输出14个类别:

如何在网络的最初五层中固定网络的权值(Freeze weights):

此外,可以将该层的学习速率设置为零,或者使用参数的自适应学习算法,如Adadelta或Adam。这有点复杂,在Caffe等其他平台上可以更好地实现。

预训练模型库

Keras
Kaggle List https://www.kaggle.com/gaborfodor/keras-pretrained-models
Keras Application:https://keras.io/applications/
OpenCV Example:https://www.learnopencv.com/keras-tutorial-fine-tuning-using-pre-trained-models/


TensorFlow
VGG16:https://github.com/ry/tensorflow-vgg16
Inception V3:https://github.com/tensorflow/models/blob/master/inception

ResNet:https://github.com/ry/tensorflow-resnet


Torch
LoadCaie:https://github.com/szagoruyko/loadcaffe


Caffe
Model Zoo:https://github.com/BVLC/caffe/wiki/Model-Zoo

TensorBoard的Graph的可视化

了解模型的整体结构通常很重要。下面给出一个例子,如何直接使用Python可视化训练的模型:

http://nbviewer.jupyter.org/github/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/deepdream/deepdream.ipynb

责任编辑:xj

原文标题:基于Pre-trained模型加速模型学习的6点建议

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3226

    浏览量

    48806
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121109
  • cnn
    cnn
    +关注

    关注

    3

    文章

    352

    浏览量

    22203

原文标题:基于Pre-trained模型加速模型学习的6点建议

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    扩散模型的理论基础

    扩散模型的迅速崛起是过去几年机器学习领域最大的发展之一。在这本简单易懂的指南中,学习你需要知道的关于扩散模型的一切。
    的头像 发表于 10-28 09:30 312次阅读
    扩散<b class='flag-5'>模型</b>的理论基础

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度
    的头像 发表于 10-25 09:22 214次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度学习
    的头像 发表于 10-23 15:25 643次阅读

    【《大语言模型应用指南》阅读体验】+ 基础知识学习

    今天来学习大语言模型在自然语言理解方面的原理以及问答回复实现。 主要是基于深度学习和自然语言处理技术。 大语言模型涉及以下几个过程: 数据收集:大语言
    发表于 08-02 11:03

    LLM大模型推理加速的关键技术

    LLM(大型语言模型)大模型推理加速是当前人工智能领域的一个研究热点,旨在提高模型在处理复杂任务时的效率和响应速度。以下是对LLM大模型推理
    的头像 发表于 07-24 11:38 855次阅读

    深度学习模型量化方法

    深度学习模型量化是一种重要的模型轻量化技术,旨在通过减少网络参数的比特宽度来减小模型大小和加速推理过程,同时尽量保持
    的头像 发表于 07-15 11:01 488次阅读
    深度<b class='flag-5'>学习</b><b class='flag-5'>模型</b>量化方法

    llm模型和chatGPT的区别

    ,有许多不同的LLM模型,如BERT、GPT、T5等。 ChatGPT是一种基于GPT(Generative Pre-trained Transformer)模型的聊天机器人。GPT模型
    的头像 发表于 07-09 09:55 1030次阅读

    深度学习中的模型权重

    在深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是模型
    的头像 发表于 07-04 11:49 1211次阅读

    预训练模型的基本原理和应用

    预训练模型Pre-trained Model)是深度学习和机器学习领域中的一个重要概念,尤其是在自然语言处理(NLP)和计算机视觉(CV)等领域中得到了广泛应用。预训练
    的头像 发表于 07-03 18:20 2761次阅读

    深度学习模型训练过程详解

    深度学习模型训练是一个复杂且关键的过程,它涉及大量的数据、计算资源和精心设计的算法。训练一个深度学习模型,本质上是通过优化算法调整模型参数,
    的头像 发表于 07-01 16:13 1220次阅读

    深度学习模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习模型进行优化与调试是确保其性能优越的关键步骤。本文将从数据预处理、
    的头像 发表于 07-01 11:41 797次阅读

    中控流程工业首款AI时序大模型TPT发布

    点燃AI引擎,打造工业应用新范式  杭州2024年6月7日 /美通社/ -- 6月5日,由中控技术倾力打造的流程工业首款AI时序大模型TPT(Time-series Pre-trained
    的头像 发表于 06-07 14:23 497次阅读
    中控流程工业首款AI时序大<b class='flag-5'>模型</b>TPT发布

    【大语言模型:原理与工程实践】大语言模型的应用

    关于大语言模型是否具备与人类“系统2”相似的能力,存在广泛的争议。然而,随着模型参数量的增加和大规模预训练的实施,大语言模型展现出了与人类相似的推理能力。与人类不同的是,大语言
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    大语言模型(LLM)是人工智能领域的尖端技术,凭借庞大的参数量和卓越的语言理解能力赢得了广泛关注。它基于深度学习,利用神经网络框架来理解和生成自然语言文本。这些模型通过训练海量的文本数据集,如
    发表于 05-04 23:55

    AI大模型落地学习机,大模型应用成学习机创新方向

    电子发烧友网报道(文/李弯弯)大模型在终端产品上的落地,除了智能手机、PC之外,还有学习机。过去一段时间,随着大模型的火热,互联网、教育公司都已经纷纷披露大模型在教育领域的最新动态,并
    的头像 发表于 02-23 01:19 3848次阅读