
作者 | Christopher Dossman
编译 | ronghuaiyang
在我们的机器学习实验室,我们在许多高性能的机器已经积累了成千上万个小时的训练。然而,并不是只有计算机在这个过程中学到了很多东西:我们自己也犯了很多错误,修复了很多错误。
在这里,我们根据我们的经验(主要基于 TensorFlow)提出了一些训练深度神经网络的实用技巧。有些建议对你来说可能是显而易见的,但对我们中的某个人来说却不是。其他的建议可能不适用,甚至对你的特定任务来说是不好的建议:谨慎使用!
我们承认这些都是众所周知的方法。我们也站在巨人的肩膀上!我们这篇文章的目的仅仅是对它们进行高层次的总结,以便在实践中使用。
通用 Tips
调试神经网络
如果你的网络没有学习(意思是:在训练过程中,损失没有收敛,或者你没有得到你期望的结果),试试下面的建议:
用一个例子来学习一下
为了使上面描述的过程更接近实际,这里有一些损失图(通过 TensorBoard 画出来的),用于我们构建的卷积神经网络的一些实际回归实验。
起初,这个网络根本没有学习:
我们尝试对值进行 clipping,以防止它们超出界限:
嗯。看看这些没做平滑的值有多疯狂。学习率太高?我们试着降低学习速度,只对一个输入进行训练:
你可以看到学习率的最初几个变化发生在什么地方(大约在第 300 步和第 3000 步)。显然,我们衰减得太快了。所以,在衰减之前给它更多的时间,它可以做得更好:
你可以看到我们在 2000 步和 5000 步时衰减。这个更好,但仍然不是很好,因为它没有趋近于 0。
然后,我们禁用了学习率衰减,并尝试将值移动到一个更窄的范围内,不过不是通过输入 tanh。虽然这明显使错误值低于 1,但我们仍然不能过拟合训练集:
通过删除 batch normalization,我们发现,在经过一两次迭代之后,网络可以快速输出 NaN。我们禁用了 batch normalization,并将初始化更改为 variance scaling。这些改变了一切!我们能够过拟合我们的测试集,只是一个或两个输入。虽然底部的图表盖住了 Y 轴,但初始误差值远远高于 5,表明误差减少了近 4 个数量级:
上面的图表非常平滑,但是你可以看到它与测试输入过拟合的速度非常快,随着时间的推移,整个训练集的损失降到了 0.01 以下。这并没有降低学习率。在学习率下降一个数量级后,我们继续训练,得到了更好的结果:
这些结果好多了!但是如果我们以几何的方式衰减学习率而不是把训练分成两部分呢?
将每一步的学习率乘以 0.9995,结果并不好:
大概是因为衰减太快了,乘数为 0.999995 的情况要好一些,但结果几乎等于完全不衰减。我们从这个特殊的实验序列中得出结论,batch normalization 隐藏了糟糕的初始化所导致的急剧变化的梯度,降低学习率对 ADAM 优化器并没有特别的帮助,除了在最后可能会故意降低。与 batch normalization 一起,clipping 只是掩盖了真正的问题。我们还通过将高方差输入值放入 tanh 来处理它们。
我们希望随着你对构建深度神经网络越来越熟悉,你会发现这些基本技巧非常有用。通常,只是一些简单的事情就能改变一切。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
t 检验与 Wilcoxon 检验:数据差异比较的两大统计利器 在数据分析中,“比较差异” 是核心需求之一 —— 如新药疗效是否优于旧药 ...
2025-08-26季节性分解外推法:解锁时间序列预测的规律密码 在商业决策、资源调度、政策制定等领域,准确的预测是规避风险、提升效率的关键 ...
2025-08-26CDA 数据分析师:数据治理驱动下的企业数据价值守护者 在数字经济时代,数据已成为企业核心战略资产,其价值的释放离不开高 ...
2025-08-26基于 SPSS 的 ROC 曲线平滑调整方法与实践指南 摘要 受试者工作特征曲线(ROC 曲线)是评估诊断模型或预测指标效能的核心工具, ...
2025-08-25神经网络隐藏层神经元个数的确定方法与实践 摘要 在神经网络模型设计中,隐藏层神经元个数的确定是影响模型性能、训练效率与泛 ...
2025-08-25CDA 数据分析师与数据思维:驱动企业管理升级的核心力量 在数字化浪潮席卷全球的当下,数据已成为企业继人力、物力、财力之后的 ...
2025-08-25CDA数据分析师与数据指标:基础概念与协同逻辑 一、CDA 数据分析师:数据驱动时代的核心角色 1.1 定义与行业价值 CDA(Certified ...
2025-08-22Power Query 移动加权平均计算 Power Query 移动加权平均设置全解析:从原理到实战 一、移动加权平均法的核心逻辑 移动加权平均 ...
2025-08-22描述性统计:CDA数据分析师的基础核心与实践应用 一、描述性统计的定位:CDA 认证的 “入门基石” 在 CDA(Certified Data Analy ...
2025-08-22基于 Python response.text 的科技新闻数据清洗去噪实践 在通过 Python requests 库的 response.text 获取 API 数据后,原始数据 ...
2025-08-21基于 Python response.text 的科技新闻综述 在 Python 网络爬虫与 API 调用场景中,response.text 是 requests 库发起请求后获取 ...
2025-08-21数据治理新浪潮:CDA 数据分析师的战略价值与驱动逻辑 一、数据治理的多维驱动引擎 在数字经济与人工智能深度融合的时代,数据治 ...
2025-08-21Power BI 热力地图制作指南:从数据准备到实战分析 在数据可视化领域,热力地图凭借 “直观呈现数据密度与分布趋势” 的核心优势 ...
2025-08-20PyTorch 矩阵运算加速库:从原理到实践的全面解析 在深度学习领域,矩阵运算堪称 “计算基石”。无论是卷积神经网络(CNN)中的 ...
2025-08-20数据建模:CDA 数据分析师的核心驱动力 在数字经济浪潮中,数据已成为企业决策的核心资产。CDA(Certified Data Analyst)数据分 ...
2025-08-20KS 曲线不光滑:模型评估的隐形陷阱,从原因到破局的全指南 在分类模型(如风控违约预测、电商用户流失预警、医疗疾病诊断)的评 ...
2025-08-20偏态分布:揭开数据背后的非对称真相,赋能精准决策 在数据分析的世界里,“正态分布” 常被视为 “理想模型”—— 数据围绕均值 ...
2025-08-19CDA 数据分析师:数字化时代的价值创造者与决策智囊 在数据洪流席卷全球的今天,“数据驱动” 已从企业战略口号落地为核心 ...
2025-08-19CDA 数据分析师:善用 Power BI 索引列,提升数据处理与分析效率 在 Power BI 数据分析流程中,“数据准备” 是决定后续分析质量 ...
2025-08-18CDA 数据分析师:巧用 SQL 多个聚合函数,解锁数据多维洞察 在企业数据分析场景中,单一维度的统计(如 “总销售额”“用户总数 ...
2025-08-18