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

    文章

    3656

    浏览量

    51757
  • 深度学习
    +关注

    关注

    73

    文章

    5591

    浏览量

    123971
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23261

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用NVIDIA Cosmos开放世界基础模型加速物理AI开发

    NVIDIA 最近发布了 NVIDIA Cosmos 开放世界基础模型(WFM)的更新,旨在加速物理 AI 模型的测试与验证数据生成。借助 NVIDIA Omniverse 库和 Cosmos,开发者可以大规模生成基于物理学的合
    的头像 发表于 12-01 09:25 599次阅读

    构建CNN网络模型并优化的一般化建议

    通过实践,本文总结了构建CNN网络模型并优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神经网络:我们清楚神经网络本身是需要不断抽象出
    发表于 10-28 08:02

    成都汇阳投资关于模型白热化,应用加速分化

           大模型加速多模态研发 ,闭源模型逐步逆袭开源 多模态技术路线尚未收敛 , 国内外大模型厂商持续刷新 SOAT。 图片领域 ,GPT-4o 图像生成功能引发热潮后 ,谷
    的头像 发表于 09-09 09:30 731次阅读

    Cognizant加速AI模型企业级开发

    -Cognizant推出AI Training Data Services,助力企业级AI模型加速开发 Cognizant是数据与AI模型训练合作伙伴,长期深受大型数字原生先锋企业信赖,助力其训练
    的头像 发表于 07-31 17:25 603次阅读

    最新人工智能硬件培训AI 基础入门学习课程参考2025版(大模型篇)

    教育等领域发挥着越来越重要的作用。​针对日前前来咨询的广大客户对面向大模型智能硬件的学习需求,我们根据CSK6大模型语音视觉开发板已有功能,整理了一份适合基于本开发板进行教学活动的学习
    发表于 07-04 11:10

    模型推理显存和计算量估计方法研究

    ,如乘法、加法等; (2)根据各层计算操作的类型和复杂度,确定每层所需的计算量; (3)将各层计算量相加,得到模型总的计算量。 基于硬件加速的算力估计 随着硬件加速技术的发展,许多深度学习
    发表于 07-03 19:43

    模型时代的深度学习框架

    量是约为 25.63M,在ImageNet1K数据集上,使用单张消费类显卡 RTX-4090只需大约35~40个小时 ,即可完成ResNet50模型的预训练。在 大模型时代 ,由于大模型参数规模庞大,无法跟CNN时代的小
    的头像 发表于 04-25 11:43 678次阅读
    大<b class='flag-5'>模型</b>时代的深度<b class='flag-5'>学习</b>框架

    AI眼镜大模型激战:多大模型协同、交互时延低至1.3S

    电子发烧友网报道(文/莫婷婷)“百镜大战”开始时,也是AI大模型在智能眼镜端加速落地的开始,一场关于智能眼镜的“百模大战”也同步进行。几乎今年刚推出的AI智能眼镜都搭载了AI大模型。随
    的头像 发表于 03-20 08:59 2275次阅读
    AI眼镜大<b class='flag-5'>模型</b>激战:多大<b class='flag-5'>模型</b>协同、交互时延低至1.3S

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 641次阅读

    【ELF 2学习板试用】利用RKNN-Toolkit2实现rknn模型转换

    的整个流程。资料中不仅模型种类丰富多样,而且对典型模型都进行了深入的剖析,详细阐述了模型的优化思路与方法,让AI项目能够真正地从理论走向实践。 若想在开发板上实现GPU加速,则需要把我
    发表于 02-09 17:57

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    同时优化多个相关任务的损失函数来提升模型的泛化能力。学习率调整策略:合理的学习率调整可以加速模型收敛,提高最终的性能。常用的
    发表于 01-14 16:51

    【「大模型启示录」阅读体验】营销领域大模型的应用

    今天跟随「大模型启示录」这本书,学习在营销领域应用大模型。 大模型通过分析大量的消费者数据,包括购买历史、浏览记录、社交媒体互动等,能够识别消费者的偏好和行为模式。这种分析能力有助于企
    发表于 12-24 12:48

    【「大模型启示录」阅读体验】对大模型更深入的认知

    。兴奋的是,大模型技术的发展为我们带来了无限可能;不安的是,我意识到自己对这一领域的了解还远远不够。我开始思考,作为一名学生,我如何能够更好地利用这些技术,以及在未来的职业生涯中,我如何能够参与到这一变革中去。 学习之路仍然很漫长啊……
    发表于 12-20 15:46

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    可能在训练数据上表现良好,但在遇到未曾见过的数据(例如不同环境、光照条件、角度等)时性能可能会下降。 对异常值敏感:如果训练集中包含异常值或者噪声数据,这可能导致模型学习到不正确的模式,从而影响其
    发表于 12-19 14:33

    【「大模型启示录」阅读体验】如何在客服领域应用大模型

    在客服领域是大模型落地场景中最多的,也是最容易实现的。本身客服领域的特点就是问答形式,大模型接入难度低。今天跟随《大模型启示录 》这本书,学习模型
    发表于 12-17 16:53