[翻译4.6]Multi-layer neural networks(多层神经网络)

P.S.:  说三个比较重要的事情:

i.  我突然的发现自己忘了把代码上传,于是决定在这周末上传到github中。如果这个section中包含了实例代码,我会更新文章并把github上的链接放在文章的开头。

ii. 刚才看了看之前写的,发现有部分文章没有上传。待我回去找找上传上去。没关系,第4章讲的都是基础概念,第5,6章才是重点。

iii. 翻译了这么久,似乎只在第一篇上粘贴了翻译的书籍 。这是我的失误,现在给出翻译来源:

http://shop.oreilly.com/product/9781939902351.do

目前,我们已经使用过了简单的神经网络。无论是线性的还是逻辑回归的模型都是这样的单个神经元:

1.将一个输入特征按照权重求和。偏置(bias)可以被认为是输入的特征值为1的权重。我们称之为线性组合的功能。

2.然后使用激活或者是传递函数来计算输出。(Then apply an activation or transfer function to calculate the

output)。如果是线性回归,转换函数是恒等的(the identity),然而逻辑回归用的是sigmoid函数作为转换器。

下图绘制出了每个神经元的输出、处理和输出:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

如果是softmax classification的话,我们使用C个神经元对应每一种可能的输出类别:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

现在,为了解决更多复杂(difficult)的问题,我们需要更加优秀的模型(a more developed model.)例如:读取手写体数字或者是在图像中识别猫和狗。

来让我们从一个简单的例子说起。假设,我们想要构建一个神经网络来适合XOR(eXclusive OR异或)的boolean操作:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

当任一输入等于1时,它应返回1,但两者都相同的时候不会返回1。

这似乎是我们迄今为止所尝试的一个更简单的问题,但是我们提出的模型却都没有解决。

原因是S型神经元需要我们的数据线性分离才能使其工作更好。这意味着必须在二维数据(或更高维度数据中的超平面)中存在一条直线,它将属于同一侧的类的所有数据样本分开,如下所示:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

从这个图标中我们可以看出点作为数据样本,相同的类别是相同的颜色。只要我们可以找出一条黄线可以完全分离图表中的红色和蓝色点,则S型的神经元对于该数据集将工作正常。

来让我们看看XOR门(异或门)函数绘制的图表:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

我们找不到一条分割图表的直线,留下一边的所有1(红点),另一边留下0(蓝点)。所XOR函数输出不是线性可分离的。

这个问题实际上导致了神经网络研究在1970年代左右大约十年左右的失去其重要性。那么他们如何解决缺乏线性可分性来继续使用网络?他们通过在网络的输入和输出之间插入更多的神经元来完成,如图所示:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

你看,我们在输入层和输出层之间添加了隐含层。你可以认为它允许我们的网络向输入数据询问多个问题,隐藏层每个神经元对应一个问题,最后根据这些问题的答案决定输出结果。

从图上来看,我们允许网络绘制多个单独的分隔线:

《[翻译4.6]Multi-layer neural networks(多层神经网络)》

正如你再图中看到的一样,每行将平面的第一个问题划分给输入数据。然后,你可以将所有相等的输出在一个区域中组合在一起。

在本书的后面,我们介绍不同类型的深层神经网络,用于不同的使用场景。

下一期:梯度下降和反向传播

    原文作者:斐波那契的数字
    原文地址: https://www.jianshu.com/p/632a1d9fc4a2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞