Coursera机器学习笔记 第5周 第九章 神经网络:学习

时间:2022-12-25 16:35:59

第九章 神经网络:学习

第1节 代价函数和反向传播(Cost Function and Backpropagation)

9.1 代价函数

参考视频 : 9 - 1 - Cost Function (7 min).mkv

首先引入一些便于讨论的标记。假设神经网络的训练样本有 m 个,每个样本包含输入 x 和类标签 y 。用 L 表示神经网络层数, S l 表示第 l 层的神经元个数,所以 S L 就是最后一层输出层的神经元个数。

将基于神经网络的分类分为两种情况:二分类和多分类。在二分类中,输出层只有一个神经元。在多分类中,输出层有 K 个神经元(K为分类的个数)。如下图,
Coursera机器学习笔记 第5周 第九章 神经网络:学习

回顾一下逻辑回归的代价函数(第二项是正则化项):

J ( θ ) = 1 m i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 y ( i ) ) l o g ( 1 h θ ( x ( i ) ) ) ] + λ 2 m j = 1 n θ j 2

在逻辑回归中,我们的输出结果 h θ ( x ) 是一个标量值,类标签y也是标量值。在神经网络中,二分类也是如此。但对于多(K)分类来说,输出结果 h θ ( x ) 是K维向量,所以我们训练集中的类标签也得转化为K维向量。神经网络的代价函数比逻辑回归更复杂一些(第二项是正则化项):

J ( Θ ) = 1 m i = 1 m k = 1 K [ y k ( i ) log ( ( h Θ ( x ( i ) ) ) k ) + ( 1 y k ( i ) ) log ( 1 ( h Θ ( x ( i ) ) ) k ) ] + λ 2 m l = 1 L 1 i = 1 s l j = 1 s l + 1 ( Θ j , i ( l ) ) 2

虽然神经网络的代价函数看起来非常复杂,但其背后的思想还是一样的:我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大。不同点在于,对于每一条数据,我们都会给出K个预测,可以利用循环找出可能性最高的一个,将其于实际标签进行对比。

注意,正则化项排除了每一层的 θ 0 ,计算每一层权重矩阵的元素之和。里层的循环j循环所有的行,循环i循环所有的列,外层的求和循环每一层的权重矩阵。

9.2 反向传播算法

参考视频 : 9 - 2 - Backpropagation Algorithm (12 min).mkv

9.3 反向传播算法直观理解

参考视频 : 9 - 3 - Backpropagation Intuition (13 min).mkv

第2节 反向传播练习(Backpropagation in Practice)

9.4 实现注意:展开参数

参考视频 : 9 - 4 - Implementation Note_ Unrolling Parameters (8 min).mkv

9.5 梯度检查

参考视频 : 9 - 5 - Gradient Checking (12 min).mkv

9.6 随机初始化

参考视频 : 9 - 6 - Random Initialization (7 min).mkv

9.7 综合起来

参考视频 : 9 - 7 - Putting It Together (14 min).mkv