机器学习(Machine Learning)- 吴恩达(Andrew Ng)视频笔记 第八章

第八章

目录

8 - 1 - Non-linear Hypotheses
8 - 2 - Neurons and the Brain
8 - 3 - Model Representation I
8 - 4 - Model Representation II
8 - 5 - Examples and Intuitions I
8 - 6 - Examples and Intuitions II
8 - 7 - Multiclass Classification


8 - 1 - Non-linear Hypotheses

总结之前学习的线性回归和逻辑回归都存在当特征太多时,就会存在计算负荷十分大的问题。
比如说我们在使用交叉特征时就会出现特征过多的问题,而且在做图像处理的时候也容易出现特征过多的问题。所以逻辑回归和线性回归往往都不能和好的处理,这时候我们就引入了神经网络。


8 - 2 - Neurons and the Brain

神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。
它能很好地解决不同的机器学习问题。我们将介绍一些神经网络的背景知识,由此能知道可以用它们来做什么。不管是将其应用到现代的机器学习问题上,还是应用到其他问题中。神经网络产生的原因是人们想尝试设计出模仿大脑的算法,从某种意义上说如果我们想要建立学习系统,那为什么不去模仿我们所认识的最神奇的学习机器——人类的大脑呢?
神经网络逐渐兴起于二十世纪八九十年代,应用得非常广泛。但由于各种原因,在90年代的后期应用减少了。但是自2006年后,神经网络又东山再起了。其中一个原因是:神经网络是计算量有些偏大的算法。然而大概由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络,且数据集不断增大,神经网络的优势就慢慢开始体现。如今的神经网络对于许多应用来说是最先进的技术。
假设大脑做所有这些,不同事情的方法,不需要用上千个不同的程序去实现。相反的,大脑处理的方法,只需要一个单一的学习算法就可以了?尽管这只是一个假设,接下来我们将分享,一些这方面的证据。
神经系统科学家做了下面这个有趣的实验,把耳朵到听觉皮层的神经切断。在这种情况下,将其重新接到一个动物的大脑上,这样从眼睛到视神经的信号最终将传到听觉皮层。如果这样做了。那么结果表明听觉皮层将会学会“看”。这里的“看”代表了我们所知道的每层含义。所以,如果你对动物这样做,那么动物就可以完成视觉辨别任务,它们可以看图像,并根据图像做出适当的决定。它们正是通过脑组织中的这个部分完成的。

下面再举几个例子:
在这里插入图片描述

这张图是用舌头学会“看”的一个例子。它的原理是:这实际上是一个名为BrainPort 的系统,它现在正在FDA (美国食品和药物管理局)的临床试验阶段,它能帮助失明人士看见事物。它的原理是,你在前额上带一个灰度摄像头,面朝前,它就能获取你面前事物的低分辨率的灰度图像。你连一根线到舌头上安装的电极阵列上,那么每个像素都被映射到你舌头的某个位置上,可能电压值高的点对应一个暗像素电压值低的点。对应于亮像素,即使依靠它现在的功能,使用这种系统就能让你我在几十分钟里就学会用我们的舌头“看”东西。

这是第二个例子,关于人体回声定位或者说人体声纳。你有两种方法可以实现:你可以弹响指,或者咂舌头。不过现在有失明人士,确实在学校里接受这样的培训,并学会解读从环境反弹回来的声波模式—这就是声纳。如果你搜索YouTube 之后,就会发现有些视频讲述了一个令人称奇的孩子,他因为癌症眼球惨遭移除,虽然失去了眼球,但是通过打响指,他可以四处走动而不撞到任何东西,他能滑滑板,他可以将篮球投入篮框中。注意这是一个没有眼球的孩子。
在这里插入图片描述
第三个例子是触觉皮带,如果你把它戴在腰上,蜂鸣器会响,而且总是朝向北时发出嗡嗡声。它可以使人拥有方向感,用类似于鸟类感知方向的方式。
在这里插入图片描述
还有一些离奇的例子:
如果你在青蛙身上插入第三只眼,青蛙也能学会使用那只眼睛。因此,这将会非常令人惊奇。如果你能把几乎任何传感器接入到大脑中,大脑的学习算法就能找出学习数据的方法,并处理这些数据。从某种意义上来说,如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将是我们向人工智能迈进做出的最好的尝试。人工智能的梦想就是:有一天能制造出真正的智能机器。
在这里插入图片描述

神经网络可能为我们打开一扇进入遥远的人工智能梦的窗户,但我在这节课中讲授神经网络的原因,主要是对于现代机器学习应用。它是最有效的技术方法。因此在接下来的一些课程中,我们将开始深入到神经网络的技术细节。


8 - 3 - Model Representation I

为了构建神经网络模型,我们需要首先思考大脑中的神经网络是怎样的?每一个神经元都可以被认为是一个处理单元/神经核(processing unit/Nucleus),它含有许多输入/树突(input/Dendrite),并且有一个输出/轴突(output/Axon)。神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络。

在这里插入图片描述
神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)。

在这里插入图片描述
设计出了类似于神经元的神经网络,效果如下:

在这里插入图片描述
其中 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3是输入单元(input units),我们将原始数据输入给它们。 a 1 , a 2 a 3 a_1,a_2a_3 a1,a2a3是中间单元,它们负责将数据进行处理,然后呈递到下一层。最后是输出单元,它负责计算 h θ ( x ) ℎ_\theta(x) hθ(x)

神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3 层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit):
在这里插入图片描述下面引入一些标记法来帮助描述模型:

a i ( j ) a_i^{(j)} ai(j)代表第? 层的第 ? 个激活单元。 θ ( j ) \theta^{(j)} θ(j)代表从第 ? 层映射到第? + 1 层时的权重的矩阵,例如 θ ( 1 ) \theta^{(1)} θ(1)代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第 ? + 1层的激活单元数量为行数,以第 ? 层的激活单元数加一为列数的矩阵。例如:上图所示的神经网络中 θ ( 1 ) \theta^{(1)} θ(1)的尺寸为 3*4。
对于上图所示的模型,激活单元和输出分别表达为:
在这里插入图片描述

上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。
我们可以知道:每一个?都是由上一层所有的?和每一个?所对应的决定的。(我们把这样从左到右的算法称为前向传播算法( FORWARD PROPAGATION ))把?, ?, ? 分别用矩阵表示,我们可以得到? ⋅ ? = ? :


8 - 4 - Model Representation II

相对于使用循环来编码,利用向量化的方法会使得计算更为简便。以上面的神经网络为例,试着计算第二层的值。
在这里插入图片描述
我们可以把 a 1 , a 2 a 3 a_1,a_2a_3 a1,a2a3看成更为高级的特征值,也就是 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3的进化体,并且它们是由 ?与决定的,因为是梯度下降的,所以?是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将 ?次方厉害,也能更好的预测新数据。
这就是神经网络相比于逻辑回归和线性回归的优势。


8 - 5 - Examples and Intuitions I

从本质上讲,神经网络能够通过学习得出其自身的一系列特征。在普通的逻辑回归中,我们被限制为使用数据中的原始特征 x 1 , x 2 , x 3 … … , x n x_1,x_2,x_3……,x_n x1,x2,x3,xn,我们虽然可以使用一些二项式项来组合
这些特征,但是我们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。
在这里插入图片描述


8 - 6 - Examples and Intuitions II

在这里插入图片描述
在这里插入图片描述
按上图构造就得到了一个能实现 XNOR 运算符功能的神经网络。
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加厉害的特征值。这就是神经网络的厉害之处。


8 - 7 - Multiclass Classificatio

当我们有不止两种分类时(也就是? = 1,2,3 ….),比如以下这种情况,该怎么办?如果要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4 个值。例如,第一个值为1 或0 用于预测是否是行人,第二个值用于判断是否为汽车。
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值