Python社区  »  机器学习算法

这有一份花书《深度学习》笔记,深度学习规则,帮你抓住精髓!(附下载)

专知 • 5 月前 • 83 次点击  

【导读】一份深度学习精髓宝典。


作者 | Jeff Macaluso

编译 | Xiaowen



当我第一次在研究生院学习神经网络的时候,我问我的教授是否有选择架构和超参数的经验法则。我期望他的回答是“嗯,有点,但不是真的”……毕竟,神经网络比其他机器学习算法有更多的选择!当我阅读 Ian Goodfellow, Yoshua Bengio, 和 Aaaron Courville的深度学习书时,我一直在思考这个问题,并决定在这本书中列出一份规则清单。事实证明,它们有很多……主要是因为它们可以完成很多类型的神经网络和任务。

https://jeffmacaluso.github.io/post/DeepLearningRulesOfThumb/

有趣的是,许多这些经验法则并没有得到很好的确立-深度学习仍然是一个相对较新的活跃研究领域,所以下面列出的很多规则只是研究人员最近发现的。除此之外,这本书中还有很多领域,作者要么说(用更多的学术术语)“我们不知道这是为什么,但我们可以看到这是真的”或者“我们知道这不是最好的方法,但这是一个活跃的研究领域,我们目前还不知道更好的方法“。


下面是我在阅读深度学习过程中所做的更实际的笔记。



TL:DR

  • 如果可能的话,使用迁移学习。如果没有,并且要处理一个已经被广泛研究过的问题,那么从复制架构开始。

    • 网络体系结构最终应该通过实验来决定,并由验证误差来决定。更深(更多层more layers)、更薄(smaller layers)的网络更难优化,但往往会产生更好的泛化误差。


  • 总是要early stopping

    • 两种早期停止方法

      • 在整个数据集上使用新的参数重新训练模型,在早期停止点达到与前一个模型相同的训练步骤时停止。

      • 保持在早期停止时获得的参数,继续使用所有数据进行训练,当平均训练误差降到前一个早期停止点的训练误差以下时停止训练。


  • 使用Dropout可能是个好主意

    • 输入层用0.8的概率,隐藏层用0.5。

    • Dropout可能需要更大的网络,需要与更多的迭代训练。


  • ReLUs是理想的激活函数。当然它们还是存在缺陷,因此使用leaky或noisy ReLUs 可以获得性能增益,而代价是需要调整更多的参数。


  • 要获得可接受的性能,每个类别至少需要5,000次观察。

    • 如果你的观察量少于10万,使用k折交叉验证代替训练/验证/测试分割。


  • 使用GPU内存所能处理的批处理大小

    • 尝试不同的批次大小,每次增加2倍,从32开始(或者在大网络里先用16开始),增加到256。


  • 具有动量和衰减学习率的随机梯度下降是一种较好的优化算法。

  • ……

  • ……

  • …………还有很多很多……还有19页PDF…………翻译不完了……这段话老板千万别看见……

查看完整内容:

请关注专知公众号(扫一扫最下面专知二维码,或者点击上方蓝色专知

  • 后台回复“TLDR” 就可以获取花书深度学习笔记的下载链接~ 

  • 专知2019年1月将开设一门《深度学习:算法到实战》讲述相关深度学习基础与前沿技术及实战 ,欢迎报名!

专知开课啦!《深度学习: 算法到实战》, 中科院博士为你讲授!


-END-

专 · 知

   专知开课啦!《深度学习: 算法到实战》, 中科院博士为你讲授!


请加专知小助手微信(扫一扫如下二维码添加),咨询《深度学习:算法到实战》参团限时优惠报名~

欢迎微信扫一扫加入专知人工智能知识星球群,获取专业知识教程视频资料和与专家交流咨询!

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/grW1OlEoWL
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/27580
 
83 次点击  
分享到微博