美文网首页
还记得这是个“网络”吗

还记得这是个“网络”吗

作者: 大龙10 | 来源:发表于2022-08-30 18:03 被阅读0次

书名:代码本色:用编程模拟自然系统
作者:Daniel Shiffman
译者:周晗彬
ISBN:978-7-115-36947-5
第10章目录

10.6 还记得这是个“网络”吗

1、感知器只能解决线性可分的问题

  • 感知器可以处理多个输入,但它只是个孤独的神经元。
    神经网络的威力来自网络结构,而感知器的能力非常有限。

  • 如果你去读一些有关人工智能的教学书籍,这些书一般会说明:感知器只能解决线性可分的问题。

  • 什么是线性可分的问题?让我们回顾第一个例子:感知器能判断某个点位于直线的哪一边。


  • 图10-11(左)表示线性可分类的数据,图形化所有数据之后,如果数据能被直线划分,那它们就是线性可分的;

  • 图10-11(右)表示非线性可分的数据,你无法用一条直线分隔黑色和灰色的点。

2、非线性可分问题

  • 最简单的非线性可分问题就是XOR,也就是逻辑算符“异或”。

  • 我们都知道AND运算:为了让A且B为真,A和B必须都为真。
    对于OR,只要A和B中有一个为真,A或B的结果就为真。
    AND和OR运算都是线性可分的问题。
    下面给出了AND和OR的真值表:


  • 在图10-12中,你可以用一条直线分隔真和假的结果。

  • XOR相当于OR和NOT AND。
    换句话说,只有在A和B有且仅有一个为真时,A XOR B才为真,否则就为假。XOR的真值表如下:


  • 这不是线性可分的。你无法用一条直线分隔真和假的结果。

3、感知器组成网络

  • 感知器无法解决XOR这么简单的问题。但我们可以把两个感知器组成网络:用一个感知器解决OR,用另一个感知器解决NOT AND。这两个感知器合起来就能解决XOR运算。


  • 上面这幅图称为多层感知器,即由许多神经元组成的网络。其中某些神经元用于接收输入,某些神经元称为“隐藏”层(因为它们既不和输入相连,也不是输出),还有一些神经元是输出神经元。

4、训练

  • 训练这类神经网络是一件复杂的事。对单个感知器而言,我们可以轻易地根据误差调整权重,但神经网络有多个连接,而且每个连接都位于不同层次。如何确定每个神经网络对整体误差的贡献是多少?
  • 多层神经网络的权重优化方案称为反向传播。
    神经网络产生输出的方式和感知器相同:都要将输入加权求和,再向前传递。两者之间的差别在于:产生最终输出之前是否通过其他层次。
    网络的训练(即权重调整)也涉及误差计算(正确结果-猜测结果),但是它的误差必须从后向前传播。神经网络会将误差平摊给每个连接的权重。
  • 反向传播超出了本书的讨论范围,它需要用到一个更复杂的激励函数(称为Sigmoid()函数)和一些基本的微积分知识。

后面我们将讨论神经网络可视化结构的构建。我们会用神经元对象和连接对象创建神经网络,并用动画的方法展示前馈过程。

相关文章

网友评论

      本文标题:还记得这是个“网络”吗

      本文链接:https://www.haomeiwen.com/subject/bufknrtx.html