我正在尝试为一个单层神经网络添加代码,该网络以位图为输入,并具有26个输出,用于表示每个字母出现概率。
我首先要问的问题是关于添加的单隐藏层。我是否正确地认为隐藏层将拥有自己的输出值和权重?它不需要有自己的偏置吗?
我还可以确认我对前馈方面的理解是否正确吗?以下是一些伪代码:
// input => hidden
for j in hiddenOutput.length:
sum=inputs*hiddenWeights
hiddenOutput[j] = activationFunction(sum)
// hidden => output
for j in output.length:
sum=hiddenOutputs*weights
output[j] = activationFunction(sum)
假设这是正确的,那么培训会是这样的吗?
def train(input[], desired[]):
iterate through output and determine errors[]
update weights & bias accordingly
iterate through hiddenOutput and determine hiddenErrors[]
update hiddenWeights & (same bias?) accordingly
非常感谢您的帮助,我已经阅读了很多示例和教程,但仍然难以确定如何正确地完成所有操作。