神经网络对每次测试都有相同的结果

时间:2014-11-20 14:22:04

标签: python neural-network image-recognition

我想用这些信息训练一个神经网络:

input : a logical image   -> 115*115 + 1 nodes   #+1 for bias
output: detected alphabet -> 24 nodes
hidden: i think           -> 6 nodes
activation function       -> tanh()

在开始时,我用[-1,1]之间的随机数初始化权重。
在训练NN之后,我对每个样本都得到了相同的结果。

我发现了问题:由于输入很多,第一层数字很大,当我对它们应用tanh()时,输出只有1,-1。

我测试了这两个解决方案,但无法帮助我:

  • 比例权重为[-0.1,0.1]
  • 将tanh(x)函数展开为tanh(x / N),其中N = 1000,10000
  • 将输入数据从[0,1]缩放到[-1,1]

任何提示或您的经验可能都有用:)


额外:

我想使用自己的代码,对于测试我使用了这个函数(与Activate()函数相同):

def test(self,Inp):
    Inp = np.reshape(Inp,(self.m,self.i))
    A1 = Inp.dot(self.W1.transpose())
    Z1 = np.tanh(A1) 
    A2 = Z1.dot(self.W2.transpose())
    Y = np.tanh(A2)
    return Y

考虑我们有随机权重,为什么测试函数的输出始终相同?

1 个答案:

答案 0 :(得分:0)

我意识到我有很多输入,我必须减少它们。
所以我使用PCA将115 * 115转换为200个功能,问题解决了!