首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使神经网络具有分层输出更好吗?

使神经网络具有分层输出更好吗?
EN

Stack Overflow用户
提问于 2018-01-13 07:07:42
回答 2查看 293关注 0票数 0

我对神经网络非常陌生,最近我建立了用于车牌号码分类的神经网络。它有3层:1输入层,16*24(382神经元)数字图像,150 dpi;1隐层(199神经元),乙状结肠激活函数;1 softmax输出层(10神经元),每个数字0到9。

我想把我的神经网络扩展到车牌上的字母分类。但我担心,如果我只是简单地在输出中添加更多的类,例如在分类中添加10个字母,总共20个类,神经网络将很难将特征从每个类中分离出来。而且,当输入是数字的输入,神经网络错误地将其归类为概率最大的字母时,即使所有数字输出的概率之和超过了这一概率之和,也会引起问题。

因此,我想知道是否有可能以下列方式建立分层神经网络:

有三个神经网络:“项目”、“数字”、“字母”

  1. “项目”神经网络分类输入是数字还是字母。
  2. 如果“Item”神经网络将输入分类为数字(字母),则输入通过‘Number’(字母)神经网络。
  3. 从数字(字母)神经网络返回最终输出。

每个网络的学习机制如下:

  1. “项目”神经网络学习数字和字母的所有图像。所以有两个输出。
  2. ‘number’(字母)神经网络只学习数字(字母)的图像。

我应该选择哪种方法来进行更好的分类?只是简单地增加10个类,还是用上面的方法构建层次化的神经网络?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-13 16:19:41

我强烈建议只训练一个单独的神经网络,它能输出你想要检测的所有类型的图像(因此,你想要识别的每一个字母都有一个输出节点,而你想识别的每一个数字都有一个输出节点)。

主要原因是识别数字和识别字母实际上是完全相同的任务。直观地说,你可以理解一个经过训练的多层神经网络,它可以在多个步骤中进行识别。在隐藏层中,它可以学习检测各种简单的原始形状(例如,隐藏层可以学习检测垂直线、水平线、对角线、某些简单的弯曲形状等)。然后,在隐藏层和输出层之间的权重中,它可以学习如何将这些原始形状的多个组合识别为特定的输出类(例如,在大致正确位置上的垂直和水平线可以被重新编码为大写字母L)。

它在隐藏层中学到的那些“东西”将与数字和字母完全相关(这条垂直线可能表示L,当与其他形状组合时也可能表示1 )。因此,有一些有用的东西需要学习,这些东西对两个“任务”都相关,如果它能够在同一个网络中学习它们,它可能会更容易地学习这些东西。

也见一个我过去曾回答过一个相关的问题

票数 2
EN

Stack Overflow用户

发布于 2018-01-14 20:31:41

我想把我的神经网络扩展到车牌上的字母分类。但我担心,如果我只是简单地在输出中添加更多的类,例如在分类中添加10个字母,总共20个类,神经网络将很难将特征从每个类中分离出来。

你离它变成问题的地方很远。ImageNet有1000个类,通常在单个网络中完成。见AlexNet纸。如果您想了解更多关于CNN的知识,请查看第二章“卷积神经网络体系结构的分析与优化”。当你在上面的时候,请看第四章的历史分类。你可以读一下.嗯,总结一下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48237696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档