这个神经网络中有多少层?

时间:2016-11-13 18:28:01

标签: machine-learning neural-network

我正在努力确保我使用正确的术语。下图显示了MNIST示例

X is 784 row vector
W is 784X10 matrix
b is a 10 row vector
The out of the linear box is fead into softmax
The output of softmax is fed into the distance function cross-entropy

enter image description here

这个NN中有多少层?该示例中的inputhidden图层是什么?

同样,this answer中有多少图层如果我的理解是正确的,那么3图层?

修改

@lejlot下面是否代表3层NN,有1个隐藏层?

enter image description here

2 个答案:

答案 0 :(得分:2)

看看这张照片:

http://cs231n.github.io/assets/nn1/neural_net.jpeg

在你的第一张照片中,你只有两层:

  • 输入图层 - > 784个神经元
  • 输出图层 - > 10个神经元

您的模型太简单了(w包含输入和输出之间的直接连接,b包含偏差项)。

没有隐藏层,您将获得线性分类器,因为线性组合的线性组合再次是线性组合。隐藏图层包含模型中的非线性变换。

在你的第二张照片中,你有3层,但你对这个符号感到困惑:

  • 输入图层是您放置输入数据的向量x。
  • 然后操作 - > w - > + b - > f() - >是第一层和第二层之间的共存。
  • 第二层是存储结果z = f(xw1 + b1)
  • 的向量
  • 然后softmax(zw2 + b2)是第二层和第三层之间的共存。
  • 第三层是矢量y,您可以在其中存储最终结果y = softmax(zw2 + b2)。
  • 交叉熵不是一层是训练你的神经网络的成本函数。

编辑:

还有一件事,如果你想获得一个非线性分类器,你必须在每个隐藏层中添加一个非线性变换,在我所描述的例子中,如果f()是一个非线性函数(例如sigmoid, softsign,...): Z = F(XW1 + B1)

如果仅在输出层(最后的softmax函数)中添加非线性变换,则输出仍然是线性分类器。

答案 1 :(得分:0)

它有1个隐藏层。

你链接的答案,我会称之为隐藏的NN层。

您的输入图层是X向量。 您的图层Wx + b是隐藏图层,也就是说。你图片中的方框。 输出层是Soft-max。 交叉熵是您的损失/成本函数,根本不是一个层。