精华内容
下载资源
问答
  • 深度学习调参

    2017-03-27 17:54:33
    深度学习调参有哪些技巧

    回答来自知乎问题:深度学习调参有哪些技巧?

    learning rate:0.01
    momentum:0.9
    weight decay:0.005
    进行dropout防止过拟合,相当于多个网络ensemble
    进行batch normalization可以有效加快训练速度,防止过拟合
    参数初始化无脑用Xavier

    微调网络: caffe微调网络时的注意事项
    1.数据集
    2.参数设置使其不更新

    展开全文
  • 深度学习调参-附件资源
  • 深度学习调参经验

    2018-07-26 17:11:49
  • 深度学习调参细节

    2019-03-03 15:26:44
    1、深度学习(deep learning)优化调参细节(trick)https://blog.csdn.net/h4565445654/article/details/70477979 2、如何调试神经网络(深度神经网络)?...3、深度学习调参策略https://blog.csdn.n...

    1、深度学习(deep learning)优化调参细节(trick)  https://blog.csdn.net/h4565445654/article/details/70477979

    2、如何调试神经网络(深度神经网络)?https://blog.csdn.net/dcxhun3/article/details/53924524

    3、深度学习调参策略https://blog.csdn.net/xiaocong1990/article/details/72585696

    4、深度学习的过拟合问题https://blog.csdn.net/mrgiovanni/article/details/52167016

    5、训练loss不下降原因集合https://blog.csdn.net/jacke121/article/details/79874555

    展开全文
  • 深度学习调参,模型选择,Google 的automl。希望对大家有用!!
  • 深度学习 14. 深度学习调参,CNN参数调参,各个参数理解和说明以及调整的要领。underfitting和overfitting的理解,过拟合的解释。

    本文为原创文章转载必须注明本文出处以及附上 本文地址超链接  以及 博主博客地址http://blog.csdn.NET/qq_20259459  和 作者邮箱( jinweizhi93@gmai.com )。

    (如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)


    因为最近一直比较忙所以就有一段时间没有更新了。
    终于今天开始着手写这篇关于参数的文章了,可以说我自己其实也在一直进行着各种调参而且有了一段时间了。作为自己的见解和相应的相关知识理论将会在这篇文章里为大家写出来,以做参考和学习资料。


    我们在学习使用深度学习的过程中最最重要的就是调参,而调参的能力是需要长期积累才能形成的,因为每一种数据库和每一种网络结构都需要不同的参数以达到最佳效果。而寻找这个最佳的参数的过程就叫做调参。


    正文:


    一. 参数是指那些?

    参数其实是个比较泛化的称呼,因为它不仅仅包括一些数字的调整,它也包括了相关的网络结构的调整和一些函数的调整。下面列举一下各种参数:

    1. 数据处理(或预处理)相关参数:
    enrich data(丰富数据库),
    feature normalization and scaling(数据泛化处理),
    batch normalization(BN处理),
    2. 训练过程与训练相关的参数:
    momentum term(训练动量),
    BGD, SGD, mini batch gradient descent(这里的理解可以看我之前的一篇博 客:http://blog.csdn.net/qq_20259459/article/details/53943413 )。
    number of epoch,
    learning rate(学习率),
    objective function(衰减函数),
    weight initialization(权值初始化),
    regularization(正则化相关方法),
    3. 网络相关参数:
    number of layers,
    number of nodes,
    number of filters,
    classifier(分类器的选择),



    二. 调参的目的以及会出现的问题

    首先我们调参有两个直接的目的:1. 当网络出现训练错误的时候,我们自然需要调整参数。 2. 可以训练但是需要提高整个网络的训练准确度。
    关于训练可能会出现的问题汇总:

    1. 可能没法进行有效地训练,整个网络是错误的,完全不收敛(以下图片全部来源于我的实验,请勿盗用):



    2. 部分收敛



    3. 全部收敛但是结果不好:




    三. 问题分析理解

    在深度学习领域我上面的三个例子可以说是比较全面的概括了问题的种类:完全不收敛,部分收敛,全部收敛但是误差大。
    下面我们先进行问题分析,然后我再介绍如何具体调参:

    1. 完全不收敛:

    这种问题的出现可以判定两种原因:1,错误的input data,网络无法学习。 2,错误的网络,网络无法学习. 

    2. 部分收敛:

    这种问题的出现是有多种多样的原因的,但是我们可以总结为:1,underfitting。 2, overfitting
    underfittingoverfitting在深度学习中是两个最最常见的现象,他们的本质是网络分类器的复杂度导致的。
    一个过简单的分类器面对一个复杂的数据就会出现underfitting,举个例子:比如一个2类分类器他是无法实现XOR的问题的。
    一个过复杂的分类器面对一个简单的数据就会出现overfitting

    说的更容易理解一点:
    1.underfitting就是网络的分类太简单了没办法去分类,因为没办法分类就是没办法学到正确的知识。
    2.overfitting就是网络的分类太复杂了以至于它可以学习数据中的每一个信息甚至是错误的信息他都可以学习。

    如果我们放在实际运用中我们可以这样理解:
    1.我们有两个数据A和B,是两个人的脸的不同环境下10张照片。A我们拿来进行训练,B则是用来测试,我们希望网络可以从A学习人脸的特征从而认识什么是人脸,然后再去判断B是不是人脸。
    2.如果我们使用会导致underfitting的分类器时,这个网络在学习A的时候将根本学不到任何东西,我们本来希望它可以知道A是人脸,但是它却认为这是个汽车(把A分去不正确的label,错误的分类)。
    3.而当我们使用会导致overfitting的分类器时,这个网络在学习A的时候不仅可以知道A是人脸,还认为只有A才是人脸,所以当它去判别B的时候它会认为B不是人脸(过度的学习了过于精确的信息导致无法判别其它数据)。

    下面我们再用图来解释说明一下这两个问题:


    以及用表格表示一下他们的训练结果:



    3. 全部收敛:

    这是个好的开始,接下来我们要做的就是微调一些参数。


    四. 针对问题来调参

    我在许多其他人的文章看过别人的调参方法的分享和心得,其中有许多人提出使用暴力调参和微调配合使用。这里我不是很同意这种观点,因为所谓的暴力调参就是无规律性的盲目的调整,同时调整多个参数,以寻找一个相对能收敛的结果,再进行微调。这种做法是一种拼运气的做法,运气好的话这个网络的深度和重要的参数是可以被你找到,运气不好的好你可能要花更多的时间去寻找什么是好的结果。而且最终即使有好的结果你自己本身也是不能确认是不是最好的结果。
    所以再次我建议我们在调参的时候切忌心浮气躁,为了好的实验结果,我们必须一步一步的结果分析,解决问题。

    下面我们谈谈如和调参:
    现有的可调参数我已经在(一)中写出了,而这些参数其实有一些是现在大家默认选择的,比如激活函数我们现在基本上都是采用Relu,而momentum一般我们会选择0.9-0.95之间,weight decay我们一般会选择0.005, filter的个数为奇数,而dropout现在也是标配的存在。这些都是近年来论文中通用的数值,也是公认出好结果的搭配。所以这些参数我们就没有必要太多的调整。下面是我们需要注意和调整的参数。

    1. 完全不收敛:

    请检测自己的数据是否存在可以学习的信息,这个数据集中的数值是否泛化(防止过大或过小的数值破坏学习)。
    如果是错误的数据则你需要去再次获得正确的数据,如果是数据的数值异常我们可以使用zscore函数来解决这个问题(参见我的博客: http://blog.csdn.net/qq_20259459/article/details/59515182 )。
    如果是网络的错误,则希望调整网络,包括:网络深度,非线性程度,分类器的种类等等。

    2. 部分收敛:

    underfitting: 
    增加网络的复杂度(深度),
    降低learning rate,
    优化数据集,
    增加网络的非线性度(ReLu),
    采用batch normalization,
    overfitting: 
    丰富数据,
    增加网络的稀疏度,
    降低网络的复杂度(深度),
    L1 regularization,
    L2 regulariztion,
    添加Dropout,
    Early stopping,
    适当降低Learning rate,
    适当减少epoch的次数,

    3. 全部收敛:

    调整方法就是保持其他参数不变,只调整一个参数。这里需要调整的参数会有:
    learning rate,
    minibatch size,
    epoch,
    filter size,
    number of filter,(这里参见我前面两篇博客的相关filter的说明)


    五. 大的思路和现在的发展

    其实我们知道现在有许多的成功的网络,比如VGGNet和GoogleNet,这两个就是很划时代的成功。我们也由此可以发现网络设计或者说网络调参的主方向其实只有两种:1. 更深层的网络, 2. 更加的复杂的结构。
    我们可以参见下面图片以比较几个成功网络的独特之处:

    1. AlexNet(深度学习划时代的成功设计):



    2. VGGNet(用小的filter得到更好的非线性和降低网络的权值以及实现了更深的构造):



    3. GoogleNet(新的结构的提出受启发于NiN,网络中的网络同时实现了更深和更非线性):



    4. Latest(接受请参见:https://arxiv.org/abs/1608.06993 ):



    5. 比较分析:



    这里我们可以看出,不管你怎么调整网络,调整参数,你的目的只有一个就是让网络变得更加深层,更加非线性。


    至此已经全部介绍完了有关结果分析和参数调整的相关知识和心得,最后我还是希望告诉每一个正在奋力调参的朋友们,调参是个辛苦和乏味的过程,一次次的失败只是为了更加好的结果。不要气馁不要放弃,坚持每一次都分析,调参的过程必须是有规律的,切忌不可乱调,这种既得利益的取巧行为是非常不好的习惯。

    我们只看到了VGGNet和GoogleNet这种作品的成就,却没有看到背后的付出。同样我们必须保持着创新精神和扎实的理论基础。这些才是成功的不二法则。


    后面我会不定期更新一些其他实用的知识和心得,谢谢大家长期以来的支持。


    本文为原创文章转载必须注明本文出处以及附上 本文地址超链接  以及 博主博客地址http://blog.csdn.NET/qq_20259459  和 作者邮箱( jinweizhi93@gmai.com )。

    (如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)

    展开全文
  • 深度学习调参技巧

    2017-08-12 09:23:24
    深度学习调参技巧:http://www.cnblogs.com/DjangoBlog/category/544871.html(大神的博客地址)
  • 1、深度学习训练的小技巧,调参经验。总结与记录。http://blog.csdn.net/chenzhi1992/article/details/52905569 2、深度学习(deep learning)优化调参细节(trick)...3、深度学习 14. 深度学习调参,CNN参数调...
  • 魏秀参CNN book, 以及cnn trick。深度学习书和调参技巧ppt
  • 深度学习调参技巧总结

    千次阅读 2018-09-01 09:32:35
    深度学习调参技巧总结 做dl也有一段时间了,积累了一些经验,也在网上看到一些别人的经验。  为了面试,结合知乎上面的问答,我也总结了一下,欢迎大家补充。 知乎 深度学习调参有哪些技巧? 一. 初始化  有人...
  • 总结知乎深度学习调参技巧。

    千次阅读 2019-04-01 21:04:07
    2.深度学习调参有哪些技巧? - Captain Jack的回答 - 知乎 https://www.zhihu.com/question/25097993/answer/127472322 调参就是trial-and-error. 没有其他捷径可以走. 唯一的区别是有些人盲目的尝试, 有些人思考...
  • 深度学习调参:简短的注意事项
  • 深度学习调参tricks总结

    千次阅读 2020-10-18 00:00:00
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达作者丨山竹小果来源丨NewBeeNLP编辑丨极市平台导读本文总结了一系列深度学习工作中的调参策略,并含有多个训练技巧,非常实用。寻...
  • 深度学习调参经验汇总

    千次阅读 多人点赞 2019-08-16 18:10:54
    相信大家在做深度学习时对调参尤为无奈,经验不足乱调一通,或者参数太多无从下手,我也如此。希望通过此文汇总网上一些调参的经验方法,供大家参考。此文会对网上每一篇调参文章做简练的总结与提炼,以此为此文的...
  • 深度学习调参技巧(二)

    千次阅读 多人点赞 2017-05-30 17:28:13
    我们在学习使用深度学习的过程中最最重要的就是调参,而调参的能力是需要长期积累才能形成的,因为每一种数据库和每一种网络结构都需要不同的参数以达到最佳效果。而寻找这个最佳的参数的过程就叫做调参。 ...
  • Disclaimer: weakly coupled topics, so may be a little chaotic, short summaries of interesting problems, my random thoughts on those problems, A rough plan of this presentation: learning schedulers, ...
  • 深度学习调参技巧(一)

    千次阅读 2017-05-30 17:26:31
    最近因为一些需要,参与了一些CNN建模调参的工作,出于个人习性,我并不习惯于通过单纯的trial-and-error的方式来调试经常给人以”black-box”印象的Deep Learning模型。所以在工作推进过程中,花了一些时间去关注了...
  • 发现很多小伙伴现在已经把机器学习、深度学习的理论基础打好了,但是真正要解决一个现实中的算法问题的时候经常两手抓瞎,一顿毫无目的乱试,甚至认为模型表现不好一定是调参不够仔细。 新手最大的问题在于解决问题...
  • 深度学习调参技巧(三)

    千次阅读 2017-05-30 17:31:08
    由于深度学习实验超参众多,代码风格良好的实验环境,可以让你的人工或者自动调参更加省力,有以下几点可能需要注意: 将各个参数的设置部分集中在一起。如果参数的设置分布在代码的各个地方,那么修改的过程想必...
  • 深度学习调参有哪些技巧

    千次阅读 2017-04-07 09:53:32
    转自知乎上的回答:https://www.zhihu.com/question/25097993Captain Jack227 人赞同了该回答我和 @杨军 类似, 也是半路出家. 现在的工作内容主要就是...先说下我的观点, 调参就是trial-and-error. 没有其他捷径可以走.
  • 二、深度学习调参经验 2.1 激活函数的选择 :常用的激活函数有relu、leaky-relu、sigmoid、tanh等。对于输出层,多分类任务用softmax输出,二分类任务选用sigmoid输出。而对于中间隐层,则优先选择relu激活函数。...
  • 本文为原创文章转载必须注明...终于今天开始着手写这篇关于参数的文章了,可以说我自己其实也在一直进行着各种调参而且有了一段时间了。作为自己的见解和相应的相关知识理论将会在这篇文章里为大家写出来,以做参考...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,963
精华内容 9,185
关键字:

深度学习调参