神经网络的设计

一、神经网络的设计原则

目前并没有权威的设计原则,以下只是从别人那里搜集到的一些经验:

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、拟合训练集

检查方法:训练后在训练集上做预测,如果表现很差,可能是网络没有正确地学习或者代码有误。

你可能感兴趣的:(神经网络的设计)