第1章 神经网络如何工作

1.1 尺有所短,寸有所长

  • 有些任务,对传统的计算机而言很简单,对人类而言却很难。例如,对数百万个数进行乘法运算。
  • 另一方面,有些任务对传统的计算机而言很难,对人类而言却很容易。例如,从一群人的照片中识别出面孔。

1.2 一台简单的预测机

1.3 分类器与预测器并无太大差别

1.4 训练简单的分类器

  • 我们使用简单的数学,理解了线性分类器输出误差值和可调节斜率参数之间的关系。也就是说,我们知道了在何种程度上调整斜率,可以消除输出误差值。
  • 使用朴素的调整方法会出现一个问题,即改进后的模型只会与最后一次训练样本最匹配,“有效地”忽略了所有以前的训练样本。解决这个问题的一种好方法是使用学习率,调节改进速率,这样单一的训练样本就不能主导整个学习过程。
  • 来自真实世界的训练样本可能充满噪声或包含错误。适度更新有助于限制这些错误样本的影响。

1.5 有时候一个分类器不足以求解问题

  • 如果数据本身不是由单一线性过程支配,那么一个简单的线性分类器不能对数据进行分类。例如,由逻辑XOR运算符支配的数据说明了这一点。
  • 但是解决方案很容易,你只需要使用多个线性分类器来划分由单一直线无法分离的数据。参考NG视频第九章。

1.6 神经元——大自然的计算机器

  • 虽然比起现代计算机,生物大脑看起来存储空间少得多,运行速度比较慢,但是生物大脑却可以执行复杂的任务,如飞行、寻找食物、学习语言和逃避天地。
  • 相比于传统的计算机系统,生物大脑对损坏和不完善信息具有难以置信的弹性。
  • 由互相连接的神经元组成的生物大脑是人工神经网络的灵感来源。

1.7 在神经网络中追踪信号

1.8 凭心而论,矩阵乘法大有用途

  • 通过神经网络向前馈送信号所需的大量运算可以表示为矩阵乘法。
  • 不管神经网络的规模如何,将输入输出表达为矩阵乘法,使得我们可以更简洁地进行书写。
  • 更重要的是,一些计算机编程语言理解矩阵计算,并认识到潜在的计算方法的相似性。这允许计算机高速高效地进行这些计算。

1.9 使用矩阵乘法的三层神经网络示例

1.10 学习来自多个节点的权重

1.11 多个输出节点反向传播误差

1.12 反向传播误差到更多层中

  • 神经网络通过调整链接权重进行学习。这种方法由误差引导,误差就是训练数据所给出正确答案和实际输出之间的差值。
  • 简单地说,在输出节点的误差等于所需值与实际值之间的差值。
  • 然而,与内部节点相关联的误差并不显而易见。一种方法是按照链接权重的比例来分割输出层的误差,然后在每个内部节点处重组这些误差。

1.13 使用矩阵乘法进行反向传播误差

  • 反向传播误差可以表示为矩阵乘法。
  • 无论网络规模大小,这使我们能够简洁地表达反向传播误差,同时也允许理解矩阵计算的计算机语言更高效、更快地完成工作。
  • 这意味着前向馈送信号和反向传播误差都可以使用矩阵计算而变得高效。

1.14 我们实际上如何更新权重

  • 梯度下降法是求解函数最小值的一种很好的方法,当函数非常复杂困难,并且不能轻易使用数学代数求解函数时,这种方法却发挥了很好的作用。

  • 更重要的是,当函数有很多参数,一些其他方法不切实际,或者会得出错误答案,这种方法依然可以适用。

  • 这种方法也具有弹性,可以容忍不完善的数据,如果我们不能完美地描述函数,或我们偶尔意外地走错了一步,也不会错得离谱。

  • 神经网络的误差是内部链接权重的函数。

  • 改进神经网络,意味着通过改变权重减少这种误差。

  • 直接选择合适的权重太难了。另一种方法是,通过误差函数的梯度下降,采取小步长,迭代地改进权重。所迈出的每一步的方向都是在当前位置向下斜率最大的方向,这就是所谓的梯度下降。

  • 使用微积分可以很容易地计算出误差斜率。

1.15 权重更新成功范例

1.16 准备数据

  • 如果输入、输出和初始权重数据的准备与网络设计和实际求解的问题不匹配,那么神经网络并不能很好地工作。
  • 一个常见的问题是饱和。在这个时候,大信号(这有时候是由大权重带来的)导致了应用在信号上的激活函数的斜率变得非常平缓。这降低了神经网络学习到更好权重的能力。
  • 另一个问题是零值信号或零值权重。这也可以使网络丧失学习更好权重的能力。
  • 内部链接的权重应该是随机的,值较小,但要避免零值。如果节点的传入链接较多,有一些人会使用相对复杂的规则,如减小这些权重的大小。
  • 输入应该调整到较小值,但不能为零。一个常见的范围为0.010.99,或-1.01.0,使用哪个范围,取决于是否匹配了问题。
  • 输出应该在激活函数能够生成的值得范围内。逻辑S函数是不可能生成小于等于0或大于等于1的值。将训练目标值设置在有效的范围之外,将会驱使产生越来越大的权重,导致网络饱和。一个合适的范围为0.01~0.99。

P035:权重是神经网络进行学习的内容,这些权重持续进行优化,得到越来越好的结果。

P048:需要记住的事情是,不管有多少层神经网络,我们都“一视同仁”,即组合输入信号,应用链接权重调节这些输入信号,应用激活函数,生成这些层的输出信号。

P061:重要的是,由于链接权重的强度给出了共享误差的最好指示,因此反馈的误差应该遵循链接权重的强度。

P067:为了避免终止于错误的山谷或错误的函数最小值,我们从山上的不同点开始,多次训练神经网络,并确保并不总是终止于错误的山谷。不同的起始点意味着选择不同的起始参数,在神经网络的情况下,这意味着选择不同的起始链接权重。

P069:要使用梯度下降的方法,现在我们需要计算出误差函数相对于权重的斜率。询问这个问题的另一种方式是——“误差对链接权重的改变有多敏感?”

P070:我们希望最小化的是神经网络的误差函数。我们试图优化的参数是网络链接权重。

P071:𝛛E/𝛛w,这个表达式表示了当权重w改变时,误差E是如何改变的。这是误差函数的斜率,也就是我们希望使用梯度下降的方法到达最小值的方向。

P167:微积分探讨的是,建立关系以表示一种事物如何随着其他事物的变化而变化。

原文地址:http://www.cnblogs.com/oyld/p/16885562.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性