Machine learning 前馈神经网络:对许多类使用具有多个输出神经元的单个网络

Machine learning 前馈神经网络:对许多类使用具有多个输出神经元的单个网络,machine-learning,neural-network,backpropagation,feed-forward,Machine Learning,Neural Network,Backpropagation,Feed Forward,我目前正在进行MNIST手写数字分类 我构建了一个具有以下结构的单前馈网络: 输入:28x28=784个输入 隐藏层:包含1000个神经元的单个隐藏层 输出层:10个神经元 所有神经元均具有Sigmoid激活功能 报告的类是与输出值最大的输出神经元对应的类 我的问题是: 创建具有多个输出的单个网络是一种好方法吗?也就是说,我应该为每个数字创建一个单独的网络吗 我问了一下,因为目前网络的成功率约为75%。实际上,“10个分类器”共享相同的隐藏层神经元——我不确定——这会降低网络学习能力吗

我目前正在进行MNIST手写数字分类

我构建了一个具有以下结构的单前馈网络:

  • 输入:28x28=784个输入
  • 隐藏层:包含1000个神经元的单个隐藏层
  • 输出层:10个神经元
所有神经元均具有Sigmoid激活功能

报告的类是与输出值最大的输出神经元对应的类

我的问题是:

  • 创建具有多个输出的单个网络是一种好方法吗?也就是说,我应该为每个数字创建一个单独的网络吗
我问了一下,因为目前网络的成功率约为75%。实际上,“10个分类器”共享相同的隐藏层神经元——我不确定——这会降低网络学习能力吗

**编辑:**


其他人可能会参考这条线索,我想诚实地告诉大家,75%的成功率是在1500个时代之后。现在我经历了近3000个时代,成功率约为85%——因此它运行得非常好

简言之,是的,使用具有多个输出的单个网络是一种很好的方法。第一个隐藏层描述要素空间中的决策边界(超平面),多个数字可以从某些相同的超平面中受益。虽然您可以为每个数字创建一个ANN,但这种一对一的方法不一定会产生更好的结果,并且需要训练10倍多的ANN(每个ANN可能会训练多次以避免局部极小值)。如果你有成百上千的数字,那么它可能更有意义

对于这个问题来说,在一个隐藏层中有1000个神经元似乎太多了。我认为,通过减少手写数字的数量并添加第二个隐藏层,您可能会获得更好的结果。这样可以在输入要素空间中为更复杂的组合边界建模。例如,可以尝试类似于
784x20x20x10
网络的方法


如果你用不同的网络结构做实验,通常最好从较少的层&神经元开始,然后增加复杂性。这不仅减少了培训时间,而且还避免了立即过度拟合数据(您没有提到您的准确性是否用于培训或验证集)。

简言之,是的,使用具有多个输出的单个网络是一种很好的方法。第一个隐藏层描述要素空间中的决策边界(超平面),多个数字可以从某些相同的超平面中受益。虽然您可以为每个数字创建一个ANN,但这种一对一的方法不一定会产生更好的结果,并且需要训练10倍多的ANN(每个ANN可能会训练多次以避免局部极小值)。如果你有成百上千的数字,那么它可能更有意义

对于这个问题来说,在一个隐藏层中有1000个神经元似乎太多了。我认为,通过减少手写数字的数量并添加第二个隐藏层,您可能会获得更好的结果。这样可以在输入要素空间中为更复杂的组合边界建模。例如,可以尝试类似于
784x20x20x10
网络的方法


如果你用不同的网络结构做实验,通常最好从较少的层&神经元开始,然后增加复杂性。这不仅减少了培训时间,而且还避免了立即过度拟合数据(您没有提到您的准确性是否用于培训或验证集)。

简言之,是的,使用具有多个输出的单个网络是一种很好的方法。第一个隐藏层描述要素空间中的决策边界(超平面),多个数字可以从某些相同的超平面中受益。虽然您可以为每个数字创建一个ANN,但这种一对一的方法不一定会产生更好的结果,并且需要训练10倍多的ANN(每个ANN可能会训练多次以避免局部极小值)。如果你有成百上千的数字,那么它可能更有意义

对于这个问题来说,在一个隐藏层中有1000个神经元似乎太多了。我认为,通过减少手写数字的数量并添加第二个隐藏层,您可能会获得更好的结果。这样可以在输入要素空间中为更复杂的组合边界建模。例如,可以尝试类似于
784x20x20x10
网络的方法


如果你用不同的网络结构做实验,通常最好从较少的层&神经元开始,然后增加复杂性。这不仅减少了培训时间,而且还避免了立即过度拟合数据(您没有提到您的准确性是否用于培训或验证集)。

简言之,是的,使用具有多个输出的单个网络是一种很好的方法。第一个隐藏层描述要素空间中的决策边界(超平面),多个数字可以从某些相同的超平面中受益。虽然您可以为每个数字创建一个ANN,但这种一对一的方法不一定会产生更好的结果,并且需要训练10倍多的ANN(每个ANN可能会训练多次以避免局部极小值)。如果你有成百上千的数字,那么它可能更有意义

对于这个问题来说,在一个隐藏层中有1000个神经元似乎太多了。我认为,通过减少手写数字的数量并添加第二个隐藏层,您可能会获得更好的结果。这样可以在输入要素空间中为更复杂的组合边界建模。例如,也许可以尝试一下