首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络输出神经元数目背后的直觉

神经网络输出神经元数目背后的直觉
EN

Data Science用户
提问于 2019-08-25 15:02:59
回答 3查看 1.3K关注 0票数 6

我正在读迈克尔·尼尔森关于深度学习的。在第一章中,他给出了10个手写体数字分类的经典例子,并用它解释了选择输出神经元数量的直觉。

一开始,在阅读这本书之前,我认为这是很直观的,你需要10个输出神经元,每个神经元代表一个给定的数字,但我开始质疑我为什么这么认为。

总之,尼尔森解释道:

你可能会想,为什么我们使用10个输出神经元。毕竟,网络的目标是告诉我们哪个数字(0,1,2,…),9)对应于输入图像。一种看似自然的方法是,只使用4个输出神经元,将每个神经元视为二进制值,这取决于神经元的输出接近于0还是接近1。四个神经元足以对答案进行编码,因为2^4=16大于输入数字的10个可能值。为什么我们的网络应该使用10个神经元呢?这不是很低效吗?最终的理由是经验性的:我们可以尝试这两种网络设计,结果是,对于这个特殊的问题,有10个输出神经元的网络比有4个输出神经元的网络能够更好地识别数字。但这让我们想知道为什么使用10个输出神经元效果更好。是否有一些启发会提前告诉我们,我们应该使用10输出编码而不是4 -output编码?为了理解我们为什么要这么做,从第一原理出发思考神经网络在做什么是很有帮助的。首先,考虑使用10个输出神经元的情况。让我们把注意力集中在第一个输出神经元上,这个神经元试图决定这个数字是否是0。它是通过权衡隐藏的神经元层的证据来做到这一点的。那些隐藏的神经元在做什么?那么,假设为了论证隐藏层中的第一个神经元是否存在以下图像:

它可以通过对与图像重叠的输入像素进行重加权,而只对其他输入进行轻微加权。以类似的方式,让我们假设,为了论证隐藏层中的第二、第三和第四神经元是否存在以下图像:

正如您可能已经猜到的,这四个图像合在一起构成了我们在前面显示的数字行中看到的0图像:

因此,如果所有四个隐藏神经元都在发射,那么我们可以得出数字是0。当然,这不是我们能用的唯一证据来得出图像是0--我们可以在许多其他方面合法地得到0(例如,通过对上面的图像的翻译,或者轻微的扭曲)。但似乎可以肯定地说,至少在这种情况下,我们得出的结论是输入为0。假设神经网络以这种方式发挥作用,我们可以给出一个合理的解释,为什么从网络中得到10个输出而不是4个输出。如果我们有4个输出,那么第一个输出神经元将试图确定数字中最重要的部分是什么。而且没有一种简单的方法可以把最重要的一点与上面所示的简单形状联系起来。很难想象有什么好的历史原因,数字的组件形状将与(比如说)输出中最重要的部分密切相关。现在,尽管如此,这一切都只是一个启发。没有人说三层神经网络必须以我描述的方式工作,隐藏的神经元检测简单的分量形状。也许一个聪明的学习算法会找到一些权重分配,让我们只使用4个输出神经元。但作为一种启发,我所描述的思维方式非常有效,可以为您节省大量时间来设计良好的神经网络体系结构。

我不明白他在最后一段的第二段是什么意思。我包括了其他的上下文,但是这是最后一段的第二段让我感到困惑。有人能澄清他在说什么吗?

EN

回答 3

Data Science用户

回答已采纳

发布于 2019-08-25 21:09:04

10个神经元之所以比4个神经元工作得更好,是因为它允许网络独立地编码所有可能的答案。

你可以有4个神经元,训练第一个神经元编码最不重要的比特,第二个神经元,第二个最不重要的比特,等等。会管用的。

1(位: 0001)的图像就像7位(位0111)的图像。想象一下一幅图像,我们知道它是1还是7,但我们不知道是哪一张。如果有4个输出(如前所述),您将输出(0、0.5、0.5、1),这意味着正确的答案是1、3、5或7。如果有10个输出,所有类都有0的概率,1和7的输出各有50%,这将更准确地传达从图像中可以解释的内容。

您可以有一个输出,它直接输出数字的值。但是输出节点中的1和7现在相距很远(整个范围从0到9),所以这个网络不可能说“1或7”。可能会说:4(中点在1到7之间)。这就是为什么它不能正常工作的原因。

“尼尔森的书”( IMHO )解释得很差。

票数 6
EN

Data Science用户

发布于 2020-10-31 01:59:40

我也想谈谈尼尔森的书。在他的网络中,他使用16x16隐藏神经元和10个隐神经元作为输出,但我最近在谷歌Colab中发现了这样的例子:在隐藏层中使用128个神经元,在输出中使用1个神经元。这种新的组合非常适用于数字(每个数字都是100%),现在他们使用的是服装制品(尽管仍然只有10种)。对我来说,这个“魔法”盒子不过是精心设计的分拣机,用来分类不同等级的砾石。你已经知道了你想要的尺寸(从0到9),你只需要不同的尺寸网格(一个在另一个下面),直到你得到顶部的金属和底部的沙子.

票数 1
EN

Data Science用户

发布于 2019-08-25 15:14:47

Michael正在讨论数字的用于二进制表示的最重要的数字位

这部分可以忽略,神经网络不学习二进制,也就是基-2,表示MNIST数。神经网络学习十进制,也就是基数-10,数字的视觉表示。

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

https://datascience.stackexchange.com/questions/58173

复制
相关文章

相似问题

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