【问题标题】:Activation Function, Initializer function, etc, effects on neural networks for face detection激活函数、初始化函数等对人脸检测神经网络的影响
【发布时间】:2011-02-10 18:40:37
【问题描述】:

有各种激活函数:sigmoid、tanh 等。还有一些初始化函数:Nguyen 和 Widrow、随机、归一化、常数、零等。所以这些对神经网络的结果有很大影响吗?在人脸检测中?现在我正在使用 Tanh 激活函数,只是将所有权重从 -0.5 随机化到 0.5。我不知道这是否是最好的方法,而且每次训练网络需要 4 小时,我宁愿在这里询问也不愿进行实验!

【问题讨论】:

  • 是的,它们对神经网络的结果有很大影响。您可以详细说明您正在使用的方法以及您尝试解决的问题,以获得有意义的答案。

标签: c# .net neural-network face-detection


【解决方案1】:

取几百个数据案例,看看你的单位激活值的平均值和标准差。你想摆脱 tanh sigmoid 的饱和状态。

我怀疑不同的合理初始化方案会对您的解决方案的质量产生很大影响。将权重初始化为在区间 [-1/sqrt(N), +1/sqrt(N)] 上一致可能就足够了,其中 N 是传入连接的数量。

话虽如此,但往往会产生重大影响的是预训练网络权重,无论是作为 RBM 还是作为自动编码器。即使对于单隐藏层神经网络,这也很有帮助,尽管它对于更深的网络更为重要。您没有提及您正在使用的架构,这些信息将为您的问题提供更有帮助的答案。

甚至还有一个新的初始化规则似乎在本文中描述得很好: http://www.iro.umontreal.ca/~lisa/publications2/index.php/publications/show/447 该论文还提到了我在上面提到的一些不良初始化症状,您可以轻松检查这些症状。

总而言之,[-1/sqrt(N), +1/sqrt(N)] 上的 Uniform 并不算太糟糕,我链接到的论文中也没有提到。如果您使用其中之一,请不要担心太多。非常重要的是将权重预训练为自动编码器(或受限玻尔兹曼机),即使您只有一个隐藏层,您也应该研究一下。

如果您想将权重作为 RBM 进行预训练,您可以切换到逻辑 sigmoid,甚至从小的标准差高斯初始化权重,而不会遇到麻烦。

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 2014-01-18
    • 2017-12-08
    • 2013-08-20
    • 2011-02-05
    • 2013-12-20
    • 2019-07-03
    • 2018-03-19
    相关资源
    最近更新 更多