谷歌大脑深度学习调参(炼丹)指南出炉,Hinton点赞,一天收获1500星

简介: 谷歌大脑深度学习调参(炼丹)指南出炉,Hinton点赞,一天收获1500星

「大量的实践经验已被提炼成这份强大的深度学习模型调参指南。」——Geoffrey Hinton。

众所周知,AI 的超参数决定着模型学习效果和速度。相比普通机器学习任务,深度学习需要的训练时间较长,因此调参技巧就显得尤为重要。


但鉴于深度学习「炼丹」的特性,不同的模型需要不同的超参数,而每个超参的意义又不同,在不同实验中,参数和调整的方向又都不一样。调参这件事一直以来没有固定的套路,每个人都有自己的经验,因此经常会出现一些似是而非的理论,比如:


  • Random seed = 0 得到坏的结果
  • Random seed = 42 得到好的结果


为了破除「迷信」,高举科学旗帜,近日来自谷歌大脑、哈佛大学的研究人员发布了《Deep Learning Tuning Playbook》,旨在帮助大家解决这一 AI 领域的老大难问题。


项目 GitHub 上线仅一天就已收获了上千 Star 量:


项目地址:https://github.com/google-research/tuning_playbook


该项目也得到了图灵奖获得者,谷歌 AI 科学家 Geoffrey Hinton 等人的转推支持。Geoffrey Hinton 表示「大量的实践经验已被提炼成这份强大的深度学习模型调参指南。」



文档意义


这份调参指南适用于对改进深度学习模型性能感兴趣的工程师和研究人员。阅读这份指南需要掌握机器学习和深度学习的基本知识。


这份指南的主要内容是调整超参数,也涉及深度学习训练的其他方面,例如 pipeline 实现和优化。指南假设机器学习问题是一个监督学习问题或自监督学习问题,但其中的一些规定也适用于其他类型的问题。


当前,深度神经网络就像一个黑箱,要想在实践中获得良好的性能,需要付出大量的努力和猜测。更糟糕的是,很少有人记录各种研究获得良好结果的实际方法。人们似乎在回避详解实践中的调参问题,也极少分享经验。这让深度学习专家获得的实验结果,与普通从业者复现相似方法获得的结果差距悬殊。


随着深度学习方法的成熟并对世界产生重要影响,深度学习社区需要更多涵盖有用方法的资源,包括对于获得良好结果至关重要的所有实用细节。


本项目是一个由五名研究人员和工程师组成的团队,他们在深度学习领域工作多年,其中一些人早在 2006 年就开始了。


该团队已经将深度学习应用于从语音识别到天文学的各个领域的问题,并在此过程中学到了很多东西。本文档源于工程师们训练神经网络、教授新机器学习工程师以及为同事提供深度学习实践建议的经验。虽然深度学习早已从实验室实践的机器学习方法发展为数十亿人使用的技术驱动产品,但它作为一门工程学科仍处于起步阶段。


该指南是谷歌研究人员在构建自有深度学习方法时产生的,它代表了作者在撰写本文时的观点,而不是任何客观规律。为此,作者鼓励发现其中存在问题的读者提出替代建议和令人信服的证据,以便不断更新完善这份指南。


需要说明的是,这不是 TensorFlow 等谷歌产品的官方支持文档。


指南内容


该指南包含哪些内容?可以分为四大部分:


  • 指导开始新项目
  • 改善模型性能的科学方法

  • 如何决定每次训练运行步数

  • 训练过程中的其他经验


例如第一部分,你开始新项目时如何选择模型架构、优化器、batch 大小等,都有详细的经验指导。


该指南中关于选择模型架构的经验。


而后关于「炼丹」的模型性能改进、训练运行的步数等也有经验分享。

可以说,这份指南可以教你提升模型性能的大量细节。看完下面目录,大家可以去Github细致学习下。


相关文章
|
Go
Go语言浮点数完全手册 float32和float64一文掌握!
Go语言浮点数完全手册 float32和float64一文掌握!
3180 0
|
传感器 监控 Ubuntu
Linux下监控CPU和GPU温度的三款命令行工具
如今,即使技术已经日新月异,但是笔记本电脑的散热还是一个常见问题。监视硬件温度可以帮助您诊断笔记本电脑过热的原因。
5713 0
Linux下监控CPU和GPU温度的三款命令行工具
|
数据采集 数据可视化 大数据
Python在大数据处理中的应用实践
Python在大数据处理中扮演重要角色,借助`requests`和`BeautifulSoup`抓取数据,`pandas`进行清洗预处理,面对大规模数据时,`Dask`提供分布式处理能力,而`matplotlib`和`seaborn`则助力数据可视化。通过这些工具,数据工程师和科学家能高效地管理、分析和展示海量数据。
598 4
|
10月前
|
弹性计算 运维 Cloud Native
云原生架构的崛起与未来展望
在数字化转型的浪潮中,云原生架构凭借其高效、灵活和可扩展的特性,正逐渐成为企业IT战略的核心。本文旨在探讨云原生架构的定义、关键特性、实施优势以及面临的挑战,同时展望未来的发展趋势。通过深入分析,我们期望为读者提供一个关于云原生架构全面而深入的视角,助力企业在云计算时代做出更明智的决策。
211 30
|
前端开发 JavaScript
React配合axios请求拦截校验session,403跳转至登陆页面
React中使用axios进行请求拦截,通过自定义事件监听和响应拦截实现403状态码时的自动登录页面跳转。
427 2
|
运维 监控 安全
|
分布式计算 Java Hadoop
NameNode 处理线程配置(心跳并发)
NameNode线程池处理客户端和数据节点请求,如读写文件及心跳、块报告。通过调整`dfs.namenode.handler.count`(默认10,示例设为21)在`hdfs-site.xml`中可控制并发处理能力。线程数过多或过少都可能影响性能,需平衡资源使用并进行基准测试以确定最佳值。合理线程数可通过公式`int(math.log(N) * 20)`计算,N为服务器数量。例如,3台服务器的计算结果为21。
459 4
|
存储 关系型数据库 对象存储
实时计算 Flink版操作报错合集之变更数据流转换为Insert-Only记录时,报错"datastream api record contains: Delete"如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
257 1
|
机器人 计算机视觉
技术好文:RobotJS截取屏幕screen.capture踩坑
技术好文:RobotJS截取屏幕screen.capture踩坑
205 0
|
存储 Shell iOS开发
【Python 学习篇】 Python环境变量设置指南 (A Guide to Setting Python Environment Variables)
【Python 学习篇】 Python环境变量设置指南 (A Guide to Setting Python Environment Variables)
1304 1