神经网络学习 Neural Network

  • 非线性假设 Non-linear hypotheses
  • 神经元与大脑 Neurons and the brain
  • 模型展示1 Model representation 1
  • 模型展示2 Model representation 2
  • 例子与直觉理解1 Examples and intuition 1
  • 例子与直觉理解2 Examples and intuition 2
  • 多元分类 Multi-class classification

非线性假设 Non-linear hypotheses

以计算房屋被卖出去概率为例,假设相关特征变量n有100个。则假设方程二次项最多有5000个( n 2 2 \frac {n^2}2 2n2​ ),再考虑三次项、四次项……,假设方程项数特别大。
因此当初始特征项n特别大时,如果把这些高阶多项式项数都包括到特征里,会使得特征空间急剧膨胀。所以当特征项特别大时,增加特征,来建立非线性分类器,并不是一个好做法。
而机器学习的很多问题中,特征项n都特别大。

下面以计算机视觉的一个问题为例介绍。对于现实生活中的汽车,计算机看到的是一个数据矩阵,或者说表示像素强度值的网络

对于计算机视觉中的汽车识别问题,我们要做的即:给出一系列汽车、以及非汽车的图像,分别为其设置标签,从而构成一个样本数据集。然后将这个样本集输入给学习算法,以训练出一个分类器。然后进行输出新样本进行测试。

假设取汽车的两个像素点强度pixel1、pixel2,从而识别图像是否为汽车。不同样本既可以形成如下坐标集所示图形。

因此识别是否为汽车,只需要建立一个非线性假设来尽量分开这两类样本。
那么这里特征空间的维度是多少呢?假设使用50*50像素的图像(长宽各50个像素),特征项n=2500。在考虑两个像素,则大概有3亿个特征。
对于这类问题,非线性假设不太适用。

神经元与大脑 Neurons and the brain

引入:神经网络算法(neural network algorithms)最初目的为制造能模拟大脑的机器。后来人们发现,神经网络算法能解决不同机器学习问题,这不只因为受到生物学的启发。
目标

  • 介绍神经网络背景
  • 明白神经网络能做什么,包括应用到现代机器学习问题上,以及神经网络与制造真正的智能机器问题关系

近来神经网络才再度兴起,原因之一在于:神经网络计算量较大,近年来计算机运行速度变快,才足以运行大规模的神经网络。

模拟大脑,并不意味着需要写上千个不同的程序去实现。相反,大脑的处理方法,只需要用一个学习算法
证据

  • 神经重接实验。它引入的理念为:如果有一块脑组织可以处理光、声、或触觉信号,那么也许存在一种学习算法可以同时处理视觉、听觉、触觉。也许我们需要的就是找出一些近似的或实际的大脑学习算法,然后实现它,让大脑学习如何处理这些不同类型的数据。

  • 3.1、舌头学会 看
  • 3.2、人体回声定位(人体声呐),定位
  • 3.3、方向感知腰带
  • 3.4、第四只眼睛

模型展示1 Model representation 1

目标:了解如何表示神经网络。或者说,在使用神经网络算法是,该如何表示我们的假设或模型。
神经网络模仿了大脑中的神经元或神经网络,因此解释如何表示解释模型,可以从了解神经元在大脑中的作用入手。

神经元

  • 构成:细胞体(Cell body)、树突(Dendrite, 输入通道,从其他神经元获取信息)、轴突(Axon, 信息输出,将信息传递到其他神经元)。
  • 作用:神经元是一个计算单元,它可以从输入通道接受一定数目的信息,并做出一些计算,然后将结果通过它的轴突传送到其他节点

    神经元之间通过微弱的电流进行沟通(动作电位)。

    下面展示一个只有一个神经元构成的,简单的神经网络模型
  • 一般只画 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1​、x2​、x3​,而不画出 x 0 x_0 x0​(偏置单元bias unit、偏置神经元bias neuron,总是等于1)
  • 术语:这是一个带有sigmoid 或者logistic激活函数的人工神经元,激活函数指代非线性函数的 g ( z ) g(z) g(z)。 θ \theta θ称为参数或者模型的权重。

    神经网络其实为一系列神经元连接在一起的集合。下面展示一个具有三个神经元的神经网络模型,激活函数还是使用sigmoid函数。
  • x 0 、 a 0 x_0、a_0 x0​、a0​为偏置神经元,可画可不画。
  • 第一层layer 1:输入层,输入特征 x 1 、 x 2 、 x 3 等 x_1、x_2、x_3等 x1​、x2​、x3​等;
  • 中间第二层layer 2:隐藏层,训练中能看到输入输出,一般看不到隐藏层的内容;
  • 最后一层layer 3:输出层,输出假设的最终计算结果。

    下面介绍这个神经网络的具体计算步骤
  • 基本术语: a i ( j ) a_i^{(j)} ai(j)​表示第j层的第i个激活项。激活项指的是由一个具体神经元计算并输出的值。此外,神经网络被 θ ( j ) \theta^ {(j)} θ(j)构成的矩阵参数化, θ ( j ) \theta^ {(j)} θ(j)就是权重矩阵。它控制第j层到第j+1层的映射。
  • 计算步骤如下。其中 θ ( 1 ) \theta^{(1)} θ(1)指的是从三个输入单元到三个隐藏单元的映射的参数矩阵。一般的,如果一个网络在第j层有 s j s_j sj​个单元,在第j+1层有 s j + 1 s_{j+1} sj+1​个单元,那么矩阵 θ ( j ) \theta^{(j)} θ(j)即为控制第1j层到第j+1层映射的矩阵,它的维度为 s ( j + 1 ) ∗ ( s j + 1 ) s_{(j+1)}*(s_j+1) s(j+1)​∗(sj​+1)

神经网络定义 人工神经网络(Artificial Neural Networks,ANNs)也简称为神经网络或称作连接模型,它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

模型展示2 Model representation 2

目标

  • 学习如何高效进行计算神经网络,学习其中的一个向量化的实现方法。
  • 明白为什么上述是表示神经网络的好方法,并且明白它是如何帮助我们学习复杂的非线性假设函数。

以下述神经网络为例

定义 a 1 ( 2 ) = g ( z 1 ( 2 ) a_1^{(2)}=g(z_1^{(2)} a1(2)​=g(z1(2)​,其中 z 1 ( 2 ) = θ 1 0 ( 1 ) + θ 1 1 ( 1 ) + θ 1 2 ( 1 ) + θ 1 3 ( 1 ) z_1^{(2)}=\theta_10^{(1)}+\theta_11^{(1)}+\theta_12^{(1)}+\theta_13^{(1)} z1(2)​=θ1​0(1)+θ1​1(1)+θ1​2(1)+θ1​3(1)。其他 a 2 ( 2 ) 、 a 3 ( 2 ) a_2^{(2)}、a_3^{(2)} a2(2)​、a3(2)​同理。此时 θ i j ( 1 ) \theta_ij^{(1)} θi​j(1)构成一个矩阵,因此可以将神经网络的计算向量化, θ i j ( 1 ) \theta_ij^{(1)} θi​j(1)与 x j x_j xj​的计算可以用向量表示。

因此有如下公式:

  • z ( 2 ) = Θ ( 1 ) x = Θ ( 1 ) a ( 1 ) z^{(2)}=\Theta^{(1)}x=\Theta^{(1)}a^{(1)} z(2)=Θ(1)x=Θ(1)a(1) (将x用 a ( 1 ) a^{(1)} a(1)表示
  • a ( 2 ) = g ( z ( 2 ) ) a^{(2)}=g(z^{(2)}) a(2)=g(z(2))
  • Add a 0 ( 2 ) = 1 a_0^{(2)}=1 a0(2)​=1
  • z ( 3 ) = Θ ( 2 ) a ( 2 ) z^{(3)}=\Theta^{(2)}a^{(2)} z(3)=Θ(2)a(2)
  • a ( 2 ) = a ( 3 ) = g ( z ( 3 ) ) a^{(2)}=a^{(3)}=g(z^{(3)}) a(2)=a(3)=g(z(3))

前向传播:依次计算激活项,从输入层到隐藏层再到输出层的过程称作前向传播。


遮住下述神经网络的输入层部分。从隐藏层到输出层部分很像logistic回归函数,不同的是原本的特征项 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1​、x2​、x3​,在这里变成了 a 1 、 a 2 、 a 3 a_1、a_2、a_3 a1​、a2​、a3​,它们通过隐藏层计算得到。
结合输入层进行综合考虑。在该神经网络中,最终输出结果没有直接利用到输入变量 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1​、x2​、x3​来训练逻辑回归,而是通过 θ i j ( 1 ) \theta_ij^{(1)} θi​j(1)将输入变量变成了新特征项 a 1 、 a 2 、 a 3 a_1、a_2、a_3 a1​、a2​、a3​,再利用自己获得的新特征项训练逻辑回归。可以想象,根据 θ i j ( 1 ) \theta_ij^{(1)} θi​j(1)选择不同参数,有时可以学习得到一些很有趣和复杂的特征项,从而得到更好的假设函数。

下面展示神经网络的另一种形式。
神经网络中神经元的连接方式称作神经网络的架构。架构即不同神经元的连接方式。

例子与直觉理解1 Examples and intuition 1

目标:通过一个更加详细的例子说明神经网络是如何计算复杂非线性函数的输入的。从而帮助理解为什么神经网络可以帮助学习复杂的非线性假设模型。

假设有两个二进制的输入特征 x 1 、 x 2 x_1、x_2 x1​、x2​,我们用左图的四个点(包括两个正样本、两个负样本)简单指代右图,我们的目标为找到一个非线性判断边界来区分正负样本。

为了解决这个问题,以一个能够拟合AND运算函数的网络入手。

下图神经网络可以实现OR运算函数的功能。

例子与直觉理解2 Examples and intuition 2

目标:通过例子展示神经网络如何计算复杂的非线性假设模型。

上一部分介绍了用神经网络如何拟合AND、OR运算函数。下图神经网络可以实现NOT运算函数的功能。那么如何计算 ( N O T x 1 ) A D N ( N O T x 2 ) (NOT x_1) ADN (NOT x_2) (NOTx1​)ADN(NOTx2​)呢?

下图结合 x 1 A N D x 2 、 ( N O T x 1 ) A D N ( N O T x 2 ) 、 x 1 O R x 2 x_1 AND x_2、(NOT x_1) ADN (NOT x_2)、x_1 OR x_2 x1​ANDx2​、(NOTx1​)ADN(NOTx2​)、x1​ORx2​,来计算 x 1 X N O R x 2 x_1 XNOR x_2 x1​XNORx2​。扩展:XNOR同或运算,相同取1,不同取0;XOR 异或,不同取1,同则取0。
我们将输入放在输入层,然后在中间放一个隐藏层来计算一些关于输入的略微复杂的功能,然后再加入一个输出层用于计算一个更加复杂的非线性函数。这就是为什么神经网络可以计算这种复杂的函数。

随着层数的增加,计算的函数越来越复杂。

下面展示一个关于神经网络不断用更深的层来计算更复杂的函数的例子。

神经网络复兴最开始应用与识别邮政编号问题中

多元分类 Multi-class classification

目标:如何使用神经网络解决多元分类问题。

神经网络实现多元分类问题,采用的方法本质上是一对多法的扩展。
因此需要做的即为建立一个拥有四个输出单元的神经网络。

神经网络的不同输出分别代表不同类别。

参考资料
网易版 吴恩达机器学习
吴恩达机器学习 网易
2021机器学习(西瓜书+李航统计学习方法)实践部分 + Python

吴恩达机器学习[9]-神经网络学习相关推荐

  1. 吴恩达机器学习 6.神经网络学习

    一.非线性假设 学习了线性回归和逻辑回归,二者都有的缺点有:当特征太多时,计算的负荷会非常大. 假如: 当使用x1,x2x_1,x_2x1​,x2​的多项式进行预测时,我们可以应用的很好. 之前有了解 ...

  2. 吴恩达机器学习:神经网络学习和作业

    神经网络 (一)神经网络模型理解 1.1 模型 1.2 神经网络模型(前馈) 1.3 建立神经网络模型 1.4 多元分类 1.5 循环神经网络与对称连接网络 (二)神经网络模型实现 2.1 代价函数 ...

  3. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

  4. 吴恩达机器学习4——神经网络

    吴恩达机器学习4--神经网络 1. 非线性假设 2. 神经网络算法 2.1 神经元 2.2 神经网络 3. 神经网络算法实例 3.1 例子1:单层神经网络表示逻辑运算 3.2 例子2 4. 多分类 1 ...

  5. 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>.CS229数学基础等,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成 ...

  6. 新建网站了!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现,可以在线阅读了!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成了网页版,可以在线阅读 ...

  7. 吴恩达深度学习笔记_Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现,可以在线阅读了!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成了网页版,可以在线阅读 ...

  8. 吴恩达机器学习与深度学习作业目录 [图片已修复]

    python3.6 (一) 吴恩达机器学习作业目录 1 吴恩达机器学习作业Python实现(一):线性回归 2 吴恩达机器学习作业Python实现(二):logistic回归 3 吴恩达机器学习作业P ...

  9. 吴恩达机器学习ex1-matlab版学习总结笔记-(1)单变量线性回归

    作业任务项一:5*5矩阵A 代码如下: A=eye(5); eye()是单位矩阵,除了对角线为1,其余项都为0.5为矩阵维度,即生成5*5矩阵. 作业任务项二:单变量线性回归预测 代码如下: data ...

最新文章

  1. Java多态性Polymorphic
  2. ASP.NET-GridView数据绑定的几种方法
  3. OGNL与Struts2标签展示页面(一)
  4. 【VRP】基于matlab遗传算法求解出租车网约车接送客车辆路径规划问题【含Matlab源码 YC003期】
  5. 英语不好,也能让你看懂man手册
  6. JAVAweb开发中Ajax教程
  7. win10做文件服务器怎么精简,win10精简系统怎么做到
  8. 移动端人脸识别活体检测,高效集成
  9. 【NOI2015】小园丁与老司机
  10. defined在c语言中的作用,c语言defined的用法
  11. 小白某东商品评论爬虫+词云 python
  12. windows安装深度linux,最漂亮的国产Linux,windows下安装深度操作系统步骤
  13. 中医药暑假训练赛三 c题 题解 (多重背包问题)
  14. phpExcel单元格内换行
  15. Ubuntu20.04ssh服务器和客户端配置
  16. 人机交互-6-评估之用户测试
  17. JSP之JSTL标签
  18. 分享实录 | 阿里巴巴代码缺陷检测探索与实践
  19. webstorm实用技巧
  20. java applet 淘汰_java – 替代applet的替代技术?

热门文章

  1. 关于登录时验证码无法显示
  2. Charles 限制网络速度(Throttle设置)
  3. inetd和xinetd的区别 (ZT)
  4. TCP/ip 协议端口范围 详解
  5. Spring源码构建项目,导入eclipse后,缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar的解决办法
  6. 云计算与大数据课程学习笔记
  7. 十二、构建一个基本的组合导航系统
  8. STM32三个ADC同步规则采样
  9. linux路由器 性能测试工具,使用iperf测试路由器性能
  10. 圆角矩形 shader