我想用这些信息训练一个神经网络:
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。
我测试了这两个解决方案,但无法帮助我:
任何提示或您的经验可能都有用:)
我想使用自己的代码,对于测试我使用了这个函数(与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
考虑我们有随机权重,为什么测试函数的输出始终相同?
答案 0 :(得分:0)
我意识到我有很多输入,我必须减少它们。
所以我使用PCA
将115 * 115转换为200个功能,问题解决了!