深度学习与神经网络入门必读3!

来源:互联网 发布:风速打印软件下载 编辑:程序博客网 时间:2024/06/05 17:23

神经网络的艺术:

下一节中我将介绍一个能很好的用于识别手写数字的神经网络,在那之前,我们先做一些准备工作,比如讲解神经网络中不同部分的专业术语。假设我们有如下神经网络:

这里写图片描述

如前所述,这个网络中最左边的层称为输入层,层中的神经元称为输入神经元。最右边或输出层包含输出神经元,或者像本例中一样,是一个输出神经元。中间层被称为隐藏层,因为这个层中的神经元既不是输入,也不是输出。“隐藏”这个词也许听起来有点神秘——我第一次听到这个词的时候,我想它一定有一些深奥的哲学或数学意义——但它真正的意思其实就是“不是输入或输出”的内部层。上面的网络只有一个隐藏层,但是有些网络有多个隐藏层。例如,以下四层网络有两个隐藏层:

这里写图片描述

有些令人困惑的是,由于历史原因,这种多层网络有时被称为多层感知机或者MLPs,尽管它们是由sigmoid神经元组成,而不是感知机。但我不打算在这本书中使用MLP术语,因为我认为它很混乱,但是我想要警告你它的存在。


网络中设计的输入和输出层通常非常简洁明了。举例而言,假设我们尝试去确定一个图像的描述是否是9,一个自然的方式就是设计网络将图像的像素强度编码到输入神经元中。如果这个图像是64*64的灰度级图像,那么我们就会有4096 =64×64×输入神经元,与恰当的强度比例在0到1之间。输出层仅包含一个神经元,输出值小于0.5,表示“输入图像不是9”,值大于0.5,则表示“输入图像为9”。


虽然神经网络的输入和输出层的设计通常都很简单,但隐藏层的设计却可以称得上是一门艺术。特别是,用一些简单的经验法则来总结隐藏层的设计过程是不可能的。相反,神经网络研究人员开发了许多隐藏层的设计启发法,帮助人们从网络中获得他们想要的行为。例如,这种启发式可以用来帮助确定如何在训练网络所需的时间内权衡隐藏的层数。我们将在本书后面介绍几个这样的设计启发式。


到目前为止,我们一直在讨论神经网络,其中一个层的输出作为下一层的输入。这种网络被称为前馈神经网络。这意味着网络中没有循环——信息总是被传递,从不反馈。如果我们做的有循环,我们最终得到的情况输入σ函数依赖于输出。这很难理解,所以我们不允许这样的循环。


然而,还有其他的人工神经网络模型,其中反馈回路是可能的。这些模型被称为递归神经网络。这些模型的想法是,在变得静止之前,让神经元在有限的时间内激活。这种激活会刺激其他神经元,而这些神经元可能会在不久的将来被激发起来,而且持续时间也很有限。这导致更多的神经元激活,随着时间的推移,我们会产生一连串的神经元激活。循环不会在这样的模型中产生问题,因为神经元的输出只会在以后的时间内影响它的输入,而不是瞬时的。


与前馈网络相比,递归神经网络的影响更小,部分原因是递归神经网络的学习算法(至少到目前为止)没有那么强大。但递归网络仍然非常有趣。与前馈网络相比,他们更接近于我们的大脑工作方式。递归神经网络可以解决一些重要的问题,而这些问题要通过前馈网络来解决的话困难很大。但是,为了限制我们的范围,在这本书中,我们将集中于更广泛使用的前馈网络。