Coursera课程地址

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

神经网络 Neural Networks

1. 非线性假设 Non-linear Classification

使用具有许多特征的复杂数据集执行线性回归非常笨拙。假设您想从包含所有二次项的三 (3) 个特征中创建一个假设

这给了我们 6 个特征。计算所有多项式项有多少特征的确切方法是具有重复的组合函数:http://www.mathsisfun.com/combinatorics/combinations-permutations.html

在这种情况下,我们采用三个特征的所有二元素组合:

(注意:您不必知道这些公式,我只是发现它有助于理解)。

对于 100 个特征,结果约等于二次方的一半,我们会得到

我们可以用所有的二次项来近似我们得到的新特征数量的增长O(n^2/2). 如果你想在你的假设中包含所有三次项,特征将在O(n^3).
这些是非常陡峭的增长,因此随着我们特征数量的增加,二次或三次特征的数量增加得非常快并且很快变得不切实际。

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

现在假设我们需要做一个二次假设函数。使用二次特征,我们的增长是O(n^2/2). 所以我们的总特征将是2500^2 / 2 = 3125000,这是非常不切实际的。

当我们有具有许多特征的复杂假设时,神经网络提供了一种执行机器学习的替代方法。
计算机视觉,判断是否是汽车。

提取车的特征图片,进行分析

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

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

有证据表明,大脑的所有不同功能仅使用一种“学习算法”。科学家们尝试切断(在动物大脑中)耳朵和听觉皮层之间的连接,并用听觉皮层重新连接视神经,以发现听觉皮层确实学会了看东西。

这个原理叫做“神经可塑性”,有很多例子和实验证据。
触觉皮层连接到视觉信息输入,触觉皮层学会了去看。

神经可塑性的显示例子:

  1. 摄像头采集信息,然后通过舌头触觉传递,通过触觉能学会看到信息;
  2. 没有眼球的人通过声呐能判断物体的远近;
  3. 触觉腰带,能够传递方向信息,就有了鸟辨别方向的能力;
  4. 青蛙装上了第三只眼,它能学习运用第三只眼。

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

让我们来看看我们将如何使用神经网络来表示假设函数。

Dendrite: 神经树突
Axon: 神经轴突
Cell Body: 细胞体
Nucleus: 细胞核
Myelin sheath: 髓磷脂鞘
Schwann cell: 施旺细胞
Node of Ranvier: 兰氏结
Axon terminal: 轴突终末

在一个非常简单的层面上,神经元基本上是将输入(树突)作为电输入(称为“尖峰”)的计算单元,这些电输入被引导到输出(轴突)。

在我们的模型中,我们的树突就像输入特征 X1 ⋯X n ,输出是我们假设函数的结果:

在这个模型中,我们的 x0 输入节点有时被称为“偏置单元”。它总是等于 1。
在神经网络中,我们使用与分类相同的逻辑函数:

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

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

在视觉上,一个简单的表示看起来像:

我们的输入节点(第 1 层)进入另一个节点(第 2 层),并作为假设函数输出。

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

我们可以在输入层和输出层之间有中间节点层,称为“隐藏层”。
我们标记这些中间或“隐藏”层节点 ,

并称它们为“激活单元”。

如果我们有一个隐藏层,它在视觉上看起来像:

每个“激活”节点的值按如下方式获得:

这就是说我们通过使用 3×4 参数矩阵来计算我们的激活节点。我们将每一行参数应用于我们的输入以获得一个激活节点的值。我们的假设输出是应用于激活节点值总和的逻辑函数,这些值已乘以另一个参数矩阵Θ(2)包含我们第二层节点的权重。

每层都有自己的权重矩阵,Θ(j) 这些权重矩阵的维度确定如下:

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

在本节中,我们将对上述函数进行矢量化实现。我们将定义一个新变量


包含我们 g 函数中的参数。在我们之前的示例中,如果我们将变量 z 替换为所有参数,我们将得到:

换句话说,对于层 j=2 和节点 k,变量 z 将是:

x 和的向量表示 z^(j)是:


现在我们可以获得层 j 的激活节点向量,如下所示:

我们的函数 g 可以按元素应用于我们的向量 z^(j)然后我们可以在计算后向第 j 层添加一个偏置单元(等于 1) a(j).这将是元素a_0(j)一种 并且将等于 1。

为了计算我们的最终假设,让我们首先计算另一个 z 向量:

我们通过乘以下一个 theta 矩阵之后得到这个最终的 z 向量 Θ(j-1) 使用我们刚刚获得的所有激活节点的值。

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

然后我们得到我们的最终结果:

请注意,在最后一步中,在第 j 层和第 j+1 层之间,我们正在做与逻辑回归中完全相同的事情。

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

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

应用神经网络的一个简单示例是通过预测 X1 和 X2,这是逻辑“与”运算符,并且仅当两者都成立时才为真 X1 和 X2。

我们的函数图将如下所示:

请记住X0 是我们的偏差变量,始终为 1。让我们将第一个 theta 矩阵设置为:

这将导致我们假设的输出只有在两者都为正时 X1 和 X2 是 1. 换句话说:

神经网络或OR函数
因此,我们通过使用小型神经网络而不是使用实际的与门构建了计算机中的基本运算之一。神经网络也可用于模拟所有其他逻辑门。

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

Nor 逆运算的神经网络实现

Θ^(1) AND、NOR 和 OR 的矩阵是:

我们可以将这些组合起来得到 XNOR 逻辑运算符(如果 X1 和 X2都是 0 或都是 1)。

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

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

对于第二层和第三层之间的过渡,我们将使用 Θ^(2)使用 OR 值的矩阵:

让我们写出所有节点的值:

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

神经网络直观认识:

神经网络算法识别手写数字

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

识别图片是行人Pedestrian,汽车,摩托车,货车中的一种。

为了将数据分类为多个类别,我们让假设函数返回一个值向量。假设我们想将我们的数据分类为四个最终结果类之一:

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

我们对一组输入的假设可能如下所示:

在这种情况下,我们的结果类是第三个,或者 HΘ(x)3 我们可以将结果类集定义为 y:

我们对一组输入的假设的最终值将是 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

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

  1. 【斯坦福公开课-机器学习】1.机器学习的动机和应用(吴恩达 Andrew Ng)

    文章目录 0三个目标 0先修课程要求 基本工具 1-网址 2-邮箱 3-本系列课程链接 1机器学习的定义 1-1非正式定义 1-2正式的定义 2监督学习(Supervised Learning) 2- ...

  2. 第06周:吴恩达 Andrew Ng 机器学习

    10 应用机器学习的建议 10.1 决定下一步做什么 依旧用房价预测的例子,假设我们使用已经正则化的线性回归的模型得到了参数,并将参数带入预测函数来预测一组新的房价,但是结果误差很大,那么为了解决问题 ...

  3. 第01周:吴恩达 Andrew Ng 机器学习

    学习内容: 1 机器学习 1.1 机器学习定义 ①Arthur Samuel:在没有明确设置的情况下,使计算机具有学习能力的研究领域. e.g.跳棋游戏,使计算机与自己对弈上万次,使计算机学习到什么是 ...

  4. 机器学习(Machine Learning) - 吴恩达(Andrew Ng) 视频笔记

    背景:写于20190408,大概一周前我已经看到了P47 8-4 - Model Representation II 视频链接:https://www.bilibili.com/video/av991 ...

  5. 第04周:吴恩达 Andrew Ng 机器学习

    学习内容: 8 神经网络 8.1 为什么用神经网络 当只有两个特征时(x1.x2),使用sigmoid函数得到的结果还可以,因为可以把x1.x2的所有组合都包含到多项式中.但当很多问题含有很多特征,不 ...

  6. 第05周:吴恩达 Andrew Ng 机器学习

    学习内容: 9 神经网络的运用 9.1 代价函数 其中: 假设训练集为m组的训练样本 用L表示神经网络的总层数,对于上图来说,L=4 用表示第L层的单元数,也就是神经元的数量(不包括这一层的偏差单元) ...

  7. 第07周:吴恩达 Andrew Ng 机器学习

    12 支持向量机(Support Vector Machines) 12.1 优化目标 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是, ...

  8. 第10周:吴恩达 Andrew Ng 机器学习

    15 异常检测(Anomaly Detection) 这种算法虽然主要用于非监督学习问题,但从某些角度看,它又类似于一些监督学习问题. 15.1 问题动机 例:假想一个飞机引擎制造商,当他生产的飞机引 ...

  9. 第02周:吴恩达 Andrew Ng 机器学习

    学习目标: 完成对机器学习逻辑回归部分 完成习题 整理理论与编程题笔记 学习内容: 六.逻辑回归 6.1 分类问题Classification 二分类问题:通常结果有两种可能(0:negative c ...

  10. 第09周:吴恩达 Andrew Ng 机器学习

    14 降维(Dimensionality Reduction) 第二种类型的无监督学习问题叫降维 14.1 目标Ⅰ:数据压缩 使用降维的原因之一是数据压缩,数据压缩可以使数据占用较小的内存或硬盘空间, ...

最新文章

  1. 人工智能产业发展深度报告:格局、潜力与展望
  2. 《从缺陷中学习C/C++》——6.18 小结
  3. 《More Effective C++》读书笔记
  4. 免费版的 IDEA 为啥不能使用 Tomcat ?
  5. Dist类系列(一):根据字典的key值、value值进行排序
  6. Git撤销修改场景及对应指令(checkout、reset、revert)详解
  7. 雨滴桌面时间插件_真香!这 3 款软件,让你的电脑桌面清爽又高效!
  8. 【Unity3d】【项目学习心得】从资源服务器下载资源(二)
  9. 原理图转换为电路图时管脚不匹配的可能情况
  10. Linux内核分析考试试题,linux内核分析第二周作业
  11. pycharm调试GreenOdoo
  12. html横向导航条代码动态伪类,伪类导航栏.html
  13. 计算机各个硬盘分区名称不见了,开机后电脑硬盘分区突然消失了,文件都不见了还能找回吗?...
  14. 华为交换机常见VLAN操作
  15. (三)Web模块:【5】Servlet3.0 与 SpringMVC 整合
  16. 编程求E1+E2+…+E100的值​
  17. 两向量叉乘的计算公式_高中数学知识背景下对向量叉乘运算的探讨(向东来)
  18. AttributeError: ‘charset_normalizer‘ has no attribute ‘md__mypyc‘
  19. 用java制作一个软件控制小车_Android手机控制智能小车的手机端程序(完整版)...
  20. 皇冠采集模板php,ptcms4.2.8自动采集配置教程

热门文章

  1. mysql 联合索引底层结构_MySQL联合索引底层数据结构
  2. mui的实例项目源码_Spring Boot 2.x 启动全过程源码分析
  3. linux 中文 bterm fbterm 内核,Fbterm (简体中文)
  4. showModalDialog的用法
  5. mongodb之副本集搭建
  6. 阿里的Atlas组件化框架
  7. 如何把滑动条变好看一点
  8. 指针数组 | 数组指针
  9. [健康]生病了绝对不能吃的东西
  10. mysql取第二大_mysql – SQL:从一行列中获取第二大值