【发布时间】:2016-06-02 16:51:33
【问题描述】:
在这里完成 Caffe 教程后:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
我对本教程中使用的不同(高效)模型感到非常困惑,该模型在此处定义:https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_train_test.prototxt
据我了解,Caffe 中的卷积层只是计算每个输入的 Wx+b 之和,而不应用任何激活函数。如果我们想添加激活函数,我们应该在该卷积层的正下方添加另一个层,例如 Sigmoid、Tanh 或 Relu 层。我在互联网上阅读的任何论文/教程都将激活函数应用于神经元单元。
这给我留下了一个很大的问号,因为我们只能看到模型中交错的卷积层和池化层。我希望有人能给我一个解释。
作为站点说明,我的另一个疑问是此求解器中的 max_iter: https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_solver.prototxt
我们有 60000 张图像用于训练,10000 张图像用于测试。那么为什么这里的 max_iter 只有 10.000(它仍然可以获得 > 99% 的准确率)? Caffe 在每次迭代中都做了什么? 实际上,我不太确定准确率是否是正确预测/测试的总大小。
我对这个示例感到非常惊讶,因为我还没有找到任何示例,框架可以在很短的时间内达到如此高的准确率(只需 5 分钟即可获得 >99% 的准确率)。因此,我怀疑应该是我误解了什么。
谢谢。
【问题讨论】:
-
恒等式 y=x 也可以被认为是一个激活函数,其导数等于 1。这样的激活层只会在前向传递中复制值,在反向传递中将值乘以 1。所以可以省略。您可以使用几乎任何单调函数作为反向传播算法中的激活函数。
标签: deep-learning convolution caffe mnist