2011-10-19 90 views
0

的急剧降低性能我有一个单层的神经网络的一些代码:添加隐藏层的神经网络

class network { 

var outputs; 
var weights; 
var biases; 

feedforward(inputs) { 
} 

outputFunction(number) { 
} 

} 

输出函数是S形(因此返回0之间的数字和1)。输入是1和0的数组。

我通过添加outputs2,weights2,biases2,然后做增加了一个隐藏层:

feedforward2(inputs) { 
    use weights2, biases2, etc. 
} 

feedforwad(inputs) { 
    inputs = feedforward2(inputs) 
    .... 
} 

我想,输出节点的输入现在是我的隐层的输出,因此它应该在至少有类似的表现。然而,在再次对网络进行培训后,性能大幅降低。有任何想法吗?训练不会隐藏层的反向传播,它只是更新输出层的权重,而隐藏层权重始终保持不变。

回答

0

如果隐藏层的权重是随机的并且是固定的,那么他们所做的只是使信号失真。

培训多层网络很困难。绝大多数人只有一个隐藏层,除了卷积网络和最近关于深层信仰网络的一些工作。