机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

Coursera课程地址

因为Coursera的课程还有考试和论坛,后续的笔记是基于Coursera
https://www.coursera.org/learn/machine-learning/home/welcome

神经网络 Neural Networks

1. 非线性假设 Non-linear Classification

使用具有许多特征的复杂数据集执行线性回归非常笨拙。假设您想从包含所有二次项的三 (3) 个特征中创建一个假设
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

这给了我们 6 个特征。计算所有多项式项有多少特征的确切方法是具有重复的组合函数:http://www.mathsisfun.com/combinatorics/combinations-permutations.html
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
在这种情况下,我们采用三个特征的所有二元素组合:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
(注意:您不必知道这些公式,我只是发现它有助于理解)。

对于 100 个特征,结果约等于二次方的一半,我们会得到
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
我们可以用所有的二次项来近似我们得到的新特征数量的增长O(n^2/2). 如果你想在你的假设中包含所有三次项,特征将在O(n^3).
这些是非常陡峭的增长,因此随着我们特征数量的增加,二次或三次特征的数量增加得非常快并且很快变得不切实际。

示例:让我们的训练集是一组 50 x 50 像素的黑白照片,我们的目标是对哪些是汽车照片进行分类。如果我们比较每对像素,那么我们的特征集大小为 n = 2500。

现在假设我们需要做一个二次假设函数。使用二次特征,我们的增长是O(n^2/2). 所以我们的总特征将是2500^2 / 2 = 3125000,这是非常不切实际的。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
当我们有具有许多特征的复杂假设时,神经网络提供了一种执行机器学习的替代方法。
计算机视觉,判断是否是汽车。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
提取车的特征图片,进行分析
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

2. 神经元和大脑 Neurons and the brain

神经网络是对我们自己大脑工作方式的有限模仿。由于计算机硬件的进步,它们最近有了很大的复苏。

有证据表明,大脑的所有不同功能仅使用一种“学习算法”。科学家们尝试切断(在动物大脑中)耳朵和听觉皮层之间的连接,并用听觉皮层重新连接视神经,以发现听觉皮层确实学会了看东西。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

这个原理叫做“神经可塑性”,有很多例子和实验证据。
触觉皮层连接到视觉信息输入,触觉皮层学会了去看。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
神经可塑性的显示例子:

  1. 摄像头采集信息,然后通过舌头触觉传递,通过触觉能学会看到信息;
  2. 没有眼球的人通过声呐能判断物体的远近;
  3. 触觉腰带,能够传递方向信息,就有了鸟辨别方向的能力;
  4. 青蛙装上了第三只眼,它能学习运用第三只眼。
    机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

3. 模型表示 I Model representation I - Neural Networks Representation

让我们来看看我们将如何使用神经网络来表示假设函数。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
Dendrite: 神经树突
Axon: 神经轴突
Cell Body: 细胞体
Nucleus: 细胞核
Myelin sheath: 髓磷脂鞘
Schwann cell: 施旺细胞
Node of Ranvier: 兰氏结
Axon terminal: 轴突终末

在一个非常简单的层面上,神经元基本上是将输入(树突)作为电输入(称为“尖峰”)的计算单元,这些电输入被引导到输出(轴突)。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

在我们的模型中,我们的树突就像输入特征 X1 ⋯X n ,输出是我们假设函数的结果:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

在这个模型中,我们的 x0 输入节点有时被称为“偏置单元”。它总是等于 1。
在神经网络中,我们使用与分类相同的逻辑函数:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

然而,在神经网络中,我们有时将其称为 sigmoid(逻辑)激活函数。

我们的“theta”参数有时在神经网络模型中被称为“权重”。

在视觉上,一个简单的表示看起来像:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
我们的输入节点(第 1 层)进入另一个节点(第 2 层),并作为假设函数输出。

第一层称为“输入层”,最后一层称为“输出层”,它给出根据假设计算的最终值。

我们可以在输入层和输出层之间有中间节点层,称为“隐藏层”。
我们标记这些中间或“隐藏”层节点 ,
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

并称它们为“激活单元”。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
如果我们有一个隐藏层,它在视觉上看起来像:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

每个“激活”节点的值按如下方式获得:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
这就是说我们通过使用 3×4 参数矩阵来计算我们的激活节点。我们将每一行参数应用于我们的输入以获得一个激活节点的值。我们的假设输出是应用于激活节点值总和的逻辑函数,这些值已乘以另一个参数矩阵Θ(2)包含我们第二层节点的权重。

每层都有自己的权重矩阵,Θ(j) 这些权重矩阵的维度确定如下:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

4. 模型表示二 Model representation II - Neural Networks Representation

机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

在本节中,我们将对上述函数进行矢量化实现。我们将定义一个新变量
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结


包含我们 g 函数中的参数。在我们之前的示例中,如果我们将变量 z 替换为所有参数,我们将得到:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
换句话说,对于层 j=2 和节点 k,变量 z 将是:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
x 和的向量表示 z^(j)是:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
现在我们可以获得层 j 的激活节点向量,如下所示:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
我们的函数 g 可以按元素应用于我们的向量 z^(j)然后我们可以在计算后向第 j 层添加一个偏置单元(等于 1) a(j).这将是元素a_0(j)一种 并且将等于 1。

为了计算我们的最终假设,让我们首先计算另一个 z 向量:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
我们通过乘以下一个 theta 矩阵之后得到这个最终的 z 向量 Θ(j-1) 使用我们刚刚获得的所有激活节点的值。

最后一个 theta 矩阵 Θ(j)将只有一行,因此我们的结果是一个数字。

然后我们得到我们的最终结果:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
请注意,在最后一步中,在第 j 层和第 j+1 层之间,我们正在做与逻辑回归中完全相同的事情。

在神经网络中添加所有这些中间层使我们能够更优雅地产生有趣且更复杂的非线性假设。

5. 例子和直觉 I Examples and intuitions I - Neural Networks: Representation

机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

应用神经网络的一个简单示例是通过预测 X1 和 X2,这是逻辑“与”运算符,并且仅当两者都成立时才为真 X1 和 X2。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

我们的函数图将如下所示:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

请记住X0 是我们的偏差变量,始终为 1。让我们将第一个 theta 矩阵设置为:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

这将导致我们假设的输出只有在两者都为正时 X1 和 X2 是 1. 换句话说:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
神经网络或OR函数
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结因此,我们通过使用小型神经网络而不是使用实际的与门构建了计算机中的基本运算之一。神经网络也可用于模拟所有其他逻辑门。

6. 例子和直觉 II Examples and intuitions II - Neural Networks: Representation

Nor 逆运算的神经网络实现
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

Θ^(1) AND、NOR 和 OR 的矩阵是:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

我们可以将这些组合起来得到 XNOR 逻辑运算符(如果 X1 和 X2都是 0 或都是 1)。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

对于第一层和第二层之间的过渡,我们将使用 Θ^(1)组合了 AND 和 NOR 的值的矩阵:

Θ(1) =[ −30  20   20
        10  −20  −20 ]

对于第二层和第三层之间的过渡,我们将使用 Θ^(2)使用 OR 值的矩阵:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

让我们写出所有节点的值:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

我们有使用两个隐藏层的 XNOR 运算符!

神经网络直观认识:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
神经网络算法识别手写数字
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

7. 多类分类 Multi-class classification - Neural Networks: Representation

识别图片是行人Pedestrian,汽车,摩托车,货车中的一种。
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

为了将数据分类为多个类别,我们让假设函数返回一个值向量。假设我们想将我们的数据分类为四个最终结果类之一:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

我们的最后一层节点,当乘以它的 theta 矩阵时,将产生另一个向量,我们将在其上应用 g() 逻辑函数来获得假设值向量。

我们对一组输入的假设可能如下所示:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

在这种情况下,我们的结果类是第三个,或者 HΘ(x)3 我们可以将结果类集定义为 y:
机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结

我们对一组输入的假设的最终值将是 y 中的一个元素。

参考

https://www.coursera.org/learn/machine-learning/resources/RmTEz

https://d3c33hcgiwev3.cloudfront.net/_48018e8190fedff87b572550690056d2_Lecture8.pdf

https://www.coursera.org/learn/machine-learning/supplement/jtFHI/lecture-slides

上一篇:跟我学docker:Docker-Compose介绍与安装配置(1)


下一篇:第六篇:Feedforward Networks 前向网络