社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

深度学习调参最全指南!(附对应pdf)

kaggle竞赛宝典 • 1 年前 • 643 次点击  
↑↑↑关注后"星标"kaggle竞赛宝典
  kaggle竞赛宝典  
作者:文章摘自算法进阶

深度学习调参(炼丹)的权威指南!

简介
「大量的实践经验已被提炼成这份强大的深度学习模型调参指南。」——Geoffrey Hinton。
在深度学习训练中,常因为神经网络模型的超参数繁多,训练调个参数需要大量算力及耗费大量时间。找到的不同的超参数,有时带来的差异也是巨大的。在这种客观情况下,超参数调整成为一门公认的玄学(炼丹学)。


在平时的模型开发中,每个人都会根据自己的实际经验进行模型调参,最终可能得出的调参经验(迷信)如:
  • Random seed = 42 是个万能调参技巧(注:42这个特殊数字, 源于科幻小说银河系漫游指南在书的最后,超级计算机Deep Thought揭示了“生命、宇宙和一切”这个重大问题的答案是 “42”)-------- 有一说一,我也非常擅长调随机种子!
  • Batch大小应该是 2 的幂次方
  • 神经网络各层神经元数目要按照1/2衰减
  • ...

我们也常常需要借助一些自动化调参工具较为快速地训练模型,如:
  • 网格/随机搜索(Grid / Random Search):是对超参数组合的子集简单地做固定次数的随机搜索,找到表现最佳的超参数子集。对于规模较大的参数空间,采用随机搜索往往效率更高。
  • 贝叶斯优化(Bayesian Optimization):与网格/随机搜索最大的不同,在于考虑了历史调参的信息,使得调参更有效率。(但在高维参数空间下,贝叶斯优化复杂度较高,效果会近似随机搜索。)
自动化调参工具对于常见的集成学习树模型、逻辑回归、KNN什么的是游刃有余的,但是,由于神经网络模型的复杂性,这些工具在暴力搜索过程,也是要耗费大量的算力时间的,如果不讲究点优化策略,也是没啥卵用。。

为了破解炼丹奥秘,近期来自谷歌大脑、哈佛大学的研究人员发布了《Deep Learning Tuning Playbook》,为深度学习提供了份系统及科学地调参理论!
项目地址:https://github.com/google-research/tuning_playbook
项目 GitHub 上线仅一天就已收获了上千 Star 量,并获得 Geoffrey Hinton老爷子的好评!如下翻译版的正文(可关注公众号-算法进阶,回复【tiao】获取本文的PDF版本):

如下项目地址阅读英文版原文!
https://github.com/google-research/tuning_playbook
如果想获取pdf可以公众号后台回复:“调参指南”
 


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/156060
 
643 次点击