前言:本笔记是对近日阅读keynote“Troubleshooting Deep Neural Networks”的总结。 keynote来源: http://josh-tobin.com/troubleshooting-deep-neural-networks
80%-90%时间用于debug和tune,10%-20%时间用于推导数学或者实现。
最常见的5种深度学习bug:
Get your model to run
常见问题及解决方法:
Overfit a single batch
常见问题:
Compare to a known result
Test error = irreducible error + bias + variance (+ distribution shift) + val overfitting (train, val, and test all come from the same distribution)
解决欠拟合(使用顺序由上到低下):
解决过拟合(使用顺序由上到低下):
解决分布转换(distribution shift):
平衡数据集
如果验证集上的结果好于测试结果,在验证集上过拟合。上述情况通常发生在小验证集上或者大规模超参数调整
超参数优化面临如下问题:
网络:多少层?如何参数初始化?卷积核大小?
优化器:batch size?学习率?beta1,beta 2?
正则化:?
方法1:人工选择超参数
方法2:网格搜索
方法3:随机搜索
方法4:由粗到细搜索
方法5:贝叶斯方法
结论
原文链接:https://zhuanlan.zhihu.com/p/89566632