【神经网络和深度学习】
第二章 神经网络结构
案例:使用神经网络识别手写数字
我将介绍一个神经网络,它可以很好地对手写的数字进行分类。为了准备这一点,它有助于解释一些术语,让我们可以命名一个网络的不同部分。假设我们有网络:
如前所述,这个网络中最左边的层称为输入层,层中的神经元被称为输入神经元。最右边或输出层包含输出神经元,或者,就像在本例中一样,是一个输出神经元。中间层被称为隐藏层,因为这一层的神经元既不是输入,也不是输出。“隐藏”这个词听起来有点神秘——我第一次听到这个词的时候,我认为它一定有一些深刻的哲学或数学意义——但它的意思只不过是“不是输入或输出”。上面的网络只有一个隐藏的层,但是一些网络有多个隐藏层。例如,下面的四层网络有两个隐藏层:
这种多层网络又被称为多层感知器或MLPs,它们是由S型神经元组成的,而不是感知器。
在网络中输入和输出层的设计通常是直接的。例如,假设我们试图确定一个手写的图像是否描述了一个“9”。设计网络的一种自然方法是将图像像素的强度编码到输入神经元中。如果图像是64×64分辨率的图像,那么我们就有4,096=64× 64输入神经元,在0和1之间适当地缩放。输出层只包含一个神经元,输出值小于0.50.5,表示“输入图像不是9”,值大于0.50.5,表示“输入图像是9”。
虽然神经网络的输入和输出层的设计通常是直接的,但隐藏层的设计却有相当的复杂。特别地,用一些简单的经验法则来总结隐藏层的设计过程是不可能的。相反,神经网络研究人员已经开发出了许多隐藏层的设计方法,帮助人们从他们的网中获得他们想要的行为。例如,这样的启发式可以用来帮助确定如何在培训网络所需的时间内权衡隐藏层的数量。在这本书中,我们将会遇到一些这样的设计启发法。
到目前为止,我们一直在讨论神经网络,其中一个层的输出被用作下一层的输入。这种网络被称为前馈神经网络。这意味着网络中没有循环——信息总是被灌输的,从来没有反馈过。如果我们有循环,我们就会得到函数的输入取决于输出的情况。这是很难理解的,所以我们不允许这样的循环。
前馈神经网络:Feed forward neural networks (FF or FFNN) and perceptrons(P)
然而,还有其他的人工神经网络模型,在这些模型中,反馈回路是可能的。这些模型被称为周期性神经网络。在这些模型中,我们的想法是让神经元在一定的时间内燃烧,然后变得静止。这种放电可以刺激其他神经元,这可能会在一段时间