激活函数,初始化函数等对神经网络的影响用于人脸检测

时间:2010-04-21 19:40:25

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

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

1 个答案:

答案 0 :(得分:2)

获取几百个数据案例,查看单位激活值的均值和标准差。你想要超出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也不错,也不是我链接到的论文中提到的那个。如果您使用其中之一,请不要太担心。非常重要的是将权重预训练为自动编码器(或Restricted Boltzmann Machine),即使您只有一个隐藏层,也应该查看它。

如果您想要将权重预先训练为RBM,您可以切换到逻辑sigmoids,甚至可以从小的标准偏差Gaussian初始化权重,而不会遇到麻烦。