我用一个大型数据库执行了一个神经网络,并在测试中得到了很好的答案(非常小的错误 - 近 4%)。现在我想使用权重和偏差来推导出一个方程,以便直接获得我的输出(不再使用该网络)。我怎样才能推导出一个方程来得到我的输出?
问问题
3648 次
1 回答
1
好吧,这取决于您使用的是哪种神经网络。如果它是一个简单的前馈网络,那么导出公式所需要做的就是通过激活函数将输入与权重矩阵和偏置向量一起传播。
假设您有一个 SLFN(单层前馈网络),这基本上意味着您有一个输入层、一个隐藏层和一个输出层。
让我们表示:
- 输入向量X
- 输入和隐藏W_ih之间的权重矩阵
- 隐藏层b上的偏置向量
- 隐藏节点f上的激活函数
- 隐藏层Y_h的输出
- 隐藏和输出W_ho之间的权重矩阵
- 输出向量Y
计算输出的步骤是:
1-通过与隐藏层的连接传播您的输入向量并添加偏置项。这为您提供了“进入”隐藏层(有时称为“logit”)的总输入Z :
Z = X * W_ih + B
其中B是每行都等于向量b的矩阵,并且行数与输入案例的行数一样多。
2-将激活函数应用于此 logit:
Y_h = f(Z) = f(X * W_ih + B)
3-通过与输出层的连接再次传播此向量,您的输出向量Y等于:
Y = Y_h * W_ho = f(X * W_ih + B) * W_ho
现在,如果您有更多隐藏层,您所要做的就是为每个额外的隐藏层重复步骤 1 和 2,并以步骤 3 结束输出层。
于 2013-07-08T09:39:06.977 回答