【发布时间】:2015-06-05 16:13:18
【问题描述】:
我目前正在研究 MNIST 手写数字分类。
我构建了一个具有以下结构的前馈网络:
- 输入: 28x28 = 784 个输入
- 隐藏层:具有 1000 个神经元的单个隐藏层
- 输出层: 10 个神经元
所有的神经元都有Sigmoid激活函数。
报告的类是输出神经元对应的输出值最大的类
我的问题是:
- 创建具有多个输出的单个网络是一种好方法吗? IE。我应该改为为每个数字创建一个单独的网络吗?
我问这个问题,因为目前网络的成功率约为 75%。由于实际上“10 个分类器”共享隐藏层的相同神经元——我不确定——这是否会降低网络学习能力?
** 编辑:**
由于其他人可能会参考此线程,我想说实话并更新 75% 的成功率是在大约 1500 个 epoch 之后。现在我已经完成了近 3000 个 epoch,并且成功率约为 85% - 所以效果很好
【问题讨论】:
-
你应该为输出使用 softmax 层,而不是 sigmoid。
-
什么是“softmax”层?你说“softmax”时是指线性吗?
-
不,当我说 softmax 时,我指的是 softmax:en.wikipedia.org/wiki/Softmax_function
-
查看我发布的链接。既不应该使用 liner,也不应该使用 sigmoid,而应该使用 soft-max,这是用于多类分类的。
-
@AndreasMueller 如果他/她不进行多类分类,那么使用 softmax 比仅选择最大的 sigmoid 输出值有什么好处吗?
标签: machine-learning neural-network backpropagation feed-forward