我有一些单层神经网络的代码:
class network {
var outputs;
var weights;
var biases;
feedforward(inputs) {
}
outputFunction(number) {
}
}
输出函数是一个sigmoid(因此返回0到1之间的数字)。输入是1和0的数组。
我通过添加outputs2,weights2,biases2添加了一个隐藏层,然后执行:
feedforward2(inputs) {
use weights2, biases2, etc.
}
feedforwad(inputs) {
inputs = feedforward2(inputs)
....
}
我认为输出节点的输入现在是我的隐藏层的输出,所以它应该至少具有相似的性能。然而,在再次培训网络后,性能大幅下降。有任何想法吗?训练没有向隐藏层反向传播,它只是更新输出图层的权重,隐藏图层权重始终保持不变。
答案 0 :(得分:0)
如果隐藏的图层权重是随机的并且是固定的,那么他们所做的只是扭曲信号。
培训多层网络很困难。其中绝大多数只有一个隐藏层,除了卷积网络和最近一些关于深度信念网络的工作。