吴恩达《机器学习》课程笔记——第九章:神经网络学习

上一篇  ※※※※※※※※  【回到目录】  ※※※※※※※※  下一篇


9.1 非线性假设

在以前的内容中,咱们采起非线性的多项式是来创建更好的分类模型。html

但其实不管是线性回归仍是逻辑回归,都存在一个缺点:即当特征很是多时,计算量过大。举个例子,当咱们须要识别一张灰度图片(单通道,非RGB)上是否存在汽车时,假设这张图片为50x50像素的小图片,咱们若是把每个像素点都视为特征,那么就有2500个特征。咱们采用逻辑回归的方法来进行判断:若是将两两特征组合构成一个多项式模型,那么也将会有25002/2(接近300万)个特征,这样计算量就太大了,普通的逻辑回归模型没法处理这么多的特征,这时候咱们须要神经网络。算法

9.2 神经元与大脑

神经网络是一个有悠久历史的算法,它最初产生的目的是制造能模拟大脑的机器。 其兴起于二十世纪八九十年代,但因为各类缘由,在90年代的后期应用减小。微信

可是最近,神经网络又东山再起了。其中的主要缘由在于:(1)CPU计算、GPU计算等计算力的提高;(2)与日俱增的数据量。网络

 


9.3 模型展现 Ⅰ

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

 

神经网络模型创建在不少神经元之上,每个神经元又是一个个学习模型。这些神经元(也叫激活单元,activation unit)采纳一些特征做为输出,而且根据自己的模型提供一个输出。下图是一个以逻辑回归模型做为自身学习模型的神经元示例,在神经网络中,参数又可被称为权重(weight)。学习

咱们设计出了相似于神经元的神经网络,效果以下:spa

其中𝑥1, 𝑥2, 𝑥3是输入单元(input units),咱们将原始数据输入给它们。 𝑎1, 𝑎2, 𝑎3是中间单元,它们负责将数据进行处理,而后呈递到下一层。 最后是输出单元,它负责计算ℎ𝜃(𝑥)。设计

神经网络模型是许多逻辑单元按照不一样层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。咱们为每一层都增长一个误差单位(bias unit):3d

下面引入一些标记法来帮助描述模型:htm

𝑎𝑖(𝑗)表明第 𝑗 层的第 𝑖 个激活单元。𝜃(𝑗)表明从第 𝑗 层映射到第𝑗 + 1层时的权重的矩阵,例如𝜃(1)表明从第一层映射到第二层的权重的矩阵。其尺寸为:以第𝑗 + 1层的激活单元数量为行数,以第 𝑗 层的激活单元数量加一为列数的矩阵。例如:上图所示的神经网络中𝜃(1)的尺寸为3*4。

总结来讲:上标表示与第几层相关,下标与该层的第几个激活单元相关。权重矩阵尺寸为:(后一层激活单元数,前一层激活单元数+1)

对于上图所示的模型,激活单元和输出分别表达为:

以上仅仅是将特征矩阵的一行(一个训练实例)喂给了神经网络,咱们须要将整个训练集都喂给咱们的神经网络算法来学习模型。 

以上从左到右的算法被称为前向传播算法。咱们能够向量化表示:𝜃·X = a。


9.4 模型展现 Ⅱ

在前向传播的计算中,利用向量化的实现方法使得计算更加便捷、高效。

前向传播的计算过程:

(1) z(2) =  𝜃(1) · X(即A(1)) 

(2) a(2) = g( z(2) )

(3) Add a0(2) = 1 

(4) z(3) =  𝜃(2) · a(2)

(5) h𝜃(x) =a(3) = g( z(3) )


9.5 例子和直观理解 Ⅰ

从本质上讲,神经网络可以经过学习得出其自身的一系列特征。在普通的逻辑回归中,咱们被限制为使用数据中的原始特征𝑥1, 𝑥2, . . . , 𝑥𝑛,咱们虽然可使用一些二项式项来组合这些特征,可是咱们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在咱们上面三层的神经网络例子中,第三层也就是输出层作出的预测利用的是第二层的特征,而非输入层中的原始特征,咱们能够认为第二层中的特征是神经网络经过学习后本身得出的一系列用于预测输出变量的新特征。

无隐含层的单层神经元能够进行逻辑运算,好比逻辑与、逻辑或、取反:

逻辑与:

逻辑或:

取反:


9.6 例子和直观理解 Ⅱ

咱们能够利用神经元来组合成更为复杂的神经网络以实现更复杂的运算,即加入隐含层后的神经网络,能够实现同或和异或。

异或:相同得0,相异得1

同或:相同得1,相异得0


9.7 多元分类

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

在多元分类的状况下,咱们的输出层将不止有一个输出,而是有多个输出。

举个例子,当要分辨一张图片上是不是行人、卡车、汽车、摩托车,则输出能够为:

有四种分类标签,从而进行多元分类。


 

若是这篇文章帮助到了你,或者你有任何问题,欢迎扫码关注微信公众号:一刻AI  在后台留言便可,让咱们一块儿学习一块儿进步!

 

 

 

 以上,就是吴恩达机器学习课程第九章的主要内容。

 

 

 

【重要提示】:本人机器学习课程的主要学习资料包括:吴恩达教授的机器学习课程和黄广海博士的中文学习笔记。感谢吴恩达教授和黄广海博士的知识分享和无私奉献。做为机器学习小白,计划每周末记录一周以来的学习内容,总结回顾。但愿你们多多挑错,也愿个人学习笔记能帮助到有须要的人。

相关文章
相关标签/搜索