神经网络该如何调参

这个问题,其实我也是初学,水平有限,说说自己的感觉吧。在潜意识里,我始终觉得神经网络的东西和中医看病有种隐隐的联系,经验(自己的和别人的)、感觉这些谈不上有什么标准化的东西确是挺重要的东西。基于此,调试一个神经网络,就需要首先熟悉网络的每个层、每个参数的作用是什么,为什么要有这样的设置,通常researcher们都基于什么样的原则来设置?其次,多自己动手设置一下,找找感觉,看看不同的参数设置会产生什么样的效果,为什么会产生这样的效果(定量分析会比较困难,也可以凭着感觉想想为什么这样的设置会产生这样的效果,也可以直接把每层的output解刨出来看看)?最后,熟能生巧吧。。。
相关材料有很多,个人推荐两个大家熟知的可以常翻来看看:
Neural Network: Trick of the Trade Neural Networks: Tricks of the Trade
我一般都是参考大牛的网络或者直接在大牛的模型上finetune,目前还没遇到不work的情形。

我觉得真正能从零开始调好参数,必须既对cnn中的各个层有深入的理解(能做到这一点的人应该不超过10%)还要对你要解决的问题有非常深刻的理解。能做到后者,然后准备比较好的样本,基本上不会遇到什么问题。caffe简直是end-to-end,已经非常简单了。我的日常调参也就占了10%的时间Practical Recommendations for Gradient-based Training of Deep Architectures arxiv.org/abs/1206.5533



如果你不求state of the art,0.0x的learning rate,0.9x的momentum (1 <= x <= 5),再加少量learning rate decay就可以开始了,还有别忘了一定要加dropout。其他都不用管。
如果你要state of the art performance,直接去找别人做的最好的。
如果你要超越state of the art。。。那问别人也没用,只有自己研究新方法

展开阅读全文

没有更多推荐了,返回首页