【问题标题】:number of neuron in output layer输出层的神经元数量
【发布时间】:2014-02-14 08:09:22
【问题描述】:

我是人工神经网络的新手,但请帮我解决这个问题?

我正在尝试实现用于字符识别的人工神经网络(使用 MLP 和 SNN),我是否需要在输出层中具有与需要识别的字符数量相同数量的神经元。例如,如果我希望我的网络能够识别大写字母、小写字母和数字,我是否需要在输出层有 26+26+10 个神经元。

如果我必须识别 Unicode 字符集中的所有字符,我需要多少输出层中的神经元。

有没有什么方法(动态阈值)来减少这个数量或者在输出层动态添加神经元?

如果可能,请提供研究文章的链接。 谢谢。

【问题讨论】:

  • 这篇研究文章提供了一种使用神经网络进行字符识别的方法,您不需要特别具有与输出数量相同的输出神经元数量:yann.lecun.com/exdb/publis/pdf/lecun-98.pdf ... 它基本上提供了一种方法,通过输出神经元的激活组合,您将能够预测输出。

标签: neural-network adaptive-threshold


【解决方案1】:

不,你不需要输出层的大小来匹配类的数量。

我认为您需要了解的是,输出层的输出只是网络输入的表示。话虽如此,您可以拥有任何所需的输出层。如果您想要一种反映您的类的编码,减少层中节点数量的最简单方法是使用二进制编码。

示例:您可以使用 3 个神经元,而不是为 8 个类使用 8 个节点(每个类 1 个节点):
0 类是输出 0-0-0
第 1 类是输出 0-0-1
...
第 7 类是输出 1-1-1

我想你明白了。当然,您不仅可以使用二进制,还可以使用任何你能想到(或谷歌)的编码方法

【讨论】:

  • 谢谢,我明白了。这是我所期待的。我很惊讶为什么我不能去想它。
  • 二进制编码假定类标签中的序数,这可能不存在。
  • @gunes 实际上,它采用名义标签。正常的 MLP 自然不会将“100”视为“011”的延续,因此特定编码不需要是序数。无论如何,自从我最初发布此类型以来,这种类型的编码已经过时了。现在都是 one-hot 编码、softmax 或其他非二进制输出编码。
猜你喜欢
  • 2018-10-20
  • 2014-11-07
  • 2016-09-14
  • 1970-01-01
  • 2021-10-21
  • 2022-12-11
  • 2018-09-23
  • 2017-09-28
  • 1970-01-01
相关资源
最近更新 更多