我对NN全新,想要对近6000张属于不同游戏的图像进行分类(由IR收集)。我使用了以下链接中介绍的步骤,但我在每轮中都获得了相同的训练准确度。 有关NN架构的一些信息:2个convloutional,激活和池化层。激活类型:relu,第一层和第二层中的过滤器数分别为30和70。 2个完全连接的层,分别有500和2个隐藏层。 http://firsttimeprogrammer.blogspot.de/2016/07/image-recognition-in-r-using.html
答案 0 :(得分:1)
我有类似的问题,但回归。在尝试了几件事(不同的优化器,不同的层和节点,学习率,迭代等)之后,我发现给出初始值的方式有很大帮助。例如,我使用了方差初始值设定项,方差为0.2(initializer = mx.init.normal(0.2)
)。
我从blog获得了这个价值。我建议你阅读它。 [编辑]摘录自同样的,
重量初始化。担心在学习开始时权重的随机初始化。 如果你很懒,通常就可以做0.02 * randn(num_params)。这种规模的价值往往在很多不同的问题上都能很好地发挥作用。当然,更小(或更大)的值也值得尝试。 如果它不能正常工作(比如你的神经网络架构不常见和/或非常深),那么你应该使用init_scale / sqrt(layer_width)* randn初始化每个权重矩阵。在这种情况下,init_scale应设置为0.1或1,或类似的东西。 随机初始化对于深度和循环网络来说非常重要。如果你做得不对,那么看起来网络根本就没有学到任何东西。但我们知道,一旦条件设定,神经网络就会学习。 有趣的故事:研究人员认为,多年来,SGD无法通过随机初始化训练深度神经网络。每次他们尝试它,它都行不通。令人尴尬的是,他们没有成功,因为他们使用“小随机权重”进行初始化,这对于浅网很有用,但根本不适用于深网。当网络较深时,许多权重矩阵都相互叠加,因此放大了次优规模的影响。 但是如果您的网络很浅,您可以对随机初始化不那么小心,因为SGD只会找到解决方法。 你现在被告知了。担心并关心你的初始化。尝试许多不同类型的初始化。这项努力将得到回报。如果网络根本不起作用(即,从不“离地”),继续对随机初始化施加压力。这是正确的做法。
http://yyue.blogspot.in/2015/01/a-brief-overview-of-deep-learning.html