一、神经网络的设计原则
目前并没有权威的设计原则,以下只是从别人那里搜集到的一些经验:
Is there a thumb-rule for designing neural-networks? - Data Science Stack Exchange
http://francky.me/aifaq/FAQ-comp.ai.neural-net.pdf
What are some rules of thumb for training neural networks? - Quora
为了收敛到更好的结果:
原文:梯度下降法的神经网络容易收敛到局部最优,为什么应用广泛? - 知乎
1、如何去设计一个尽量没有“平坦区”等危险地形的loss空间,即着手于loss函数的设计以及深度学习模型的设计;
2、尽量让模型的初始化点远离空间中的危险地带,让最优化游戏开始于简单模式,即着手于模型参数的初始化策略;
3、让最优化过程更智能一点,该加速冲时加速冲,该大胆跳跃时就大胆跳,该慢慢踱步时慢慢走,对危险地形有一定的判断力,如梯度截断策略;
4、开外挂,本来下一步要走向死亡的,结果被外挂给拽回了安全区,如batch normalization策略等。
作者:夕小瑶Elsa
链接:https://www.zhihu.com/question/68109802/answer/263503269
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
二、神经网络的随机性
网络和数据都不变,每次运行的结果都不同,这是由于网络的随机性导致的。
1、说明网络参数设置的不好,在经过微调之后,这个随机性应该小到可以被忽略。
Whenever i run my neural network I get different result.
三、验证网络及代码的有效性正确性
有时候网络loss在下降,却不一定学习到了有用的东西。
比如在数据集不均衡时就会出现loss下降,模型却不能拟合训练集。
1、拟合训练集
检查方法:训练后在训练集上做预测,如果表现很差,可能是网络没有正确地学习或者代码有误。