干货!吴恩达亲自为这份深度学习专项课程精炼图笔记点了赞!( 二 )


3. 浅层网络的特点
左上: 浅层网络即隐藏层数较少,如图所示,这里仅有一个隐藏层 。
左下: 这里介绍了不同激活函数的特点:
右上 :为什么要使用激活函数呢?更准确地说是,为什么要使用非线性激活函数呢?
上图中的实例可以看出,没有激活函数的神经网络经过两层的传播,最终得到的结果和单层的线性运算是一样的,也就是说,没有使用非线性激活函数的话,无论多少层的神经网络都等价于单层神经网络(不包含输入层) 。
右下 :如何初始化参数 w、b 的值?
当将所有参数初始化为零的时候,会使所有的节点变得相同,在训练过程中只能学到相同的特征,而无法学到多层级、多样化的特征 。解决办法是随机初始化所有参数,但仅需少量的方差就行,因此使用 Rand(0.01)进行初始化,其中 0.01 也是超参数之一 。
4. 深度神经网络的特点
左上: 神经网络的参数化容量随层数增加而指数式地增长,即某些深度神经网络能解决的问题,浅层神经网络需要相对的指数量级的计算才能解决 。
左下: CNN 的深度网络可以将底层的简单特征逐层组合成越来越复杂的特征,深度越大,其能分类的图像的复杂度和多样性就越大 。RNN 的深度网络也是同样的道理,可以将语音分解为音素,再逐渐组合成字母、单词、句子,执行复杂的语音到文本任务 。
右边: 深度网络的特点是需要大量的训练数据和计算资源,其中涉及大量的矩阵运算,可以在 GPU 上并行执行,还包含了大量的超参数,例如学习率、迭代次数、隐藏层数、激活函数选择、学习率调整方案、批尺寸大小、正则化方法等 。
5. 偏差与方差
那么部署你的机器学习模型需要注意些什么?下图展示了构建 ML 应用所需要的数据集分割、偏差与方差等问题 。
如上所示,经典机器学习和深度学习模型所需要的样本数有非常大的差别,深度学习的样本数是经典 ML 的成千上万倍 。因此训练集、开发集和测试集的分配也有很大的区别,当然我们假设这些不同的数据集都服从同分布 。
偏差与方差问题同样是机器学习模型中常见的挑战,上图依次展示了由高偏差带来的欠拟合和由高方差带来的过拟合 。一般而言,解决高偏差的问题是选择更复杂的网络或不同的神经网络架构,而解决高方差的问题可以添加正则化、减少模型冗余或使用更多的数据进行训练 。
当然,机器学习模型需要注意的问题远不止这些,但在配置我们的 ML 应用中,它们是最基础和最重要的部分 。其它如数据预处理、数据归一化、超参数的选择等都在后面的信息图中有所体现 。
6. 正则化
正则化是解决高方差或模型过拟合的主要手段,过去数年,研究者提出和开发了多种适合机器学习算法的正则化方法,如数据增强、L2 正则化(权重衰减)、L1 正则化、、Drop 、随机池化和提前终止等 。
如上图左列所示,L1 和 L2 正则化也是是机器学习中使用最广泛的正则化方法 。L1 正则化向目标函数添加正则化项,以减少参数的绝对值总和;而 L2 正则化中,添加正则化项的目的在于减少参数平方的总和 。根据之前的研究,L1 正则化中的很多参数向量是稀疏向量,因为很多模型导致参数趋近于 0,因此它常用于特征选择设置中 。此外,参数范数惩罚 L2 正则化能让深度学习算法「感知」到具有较高方差的输入 x,因此与输出目标的协方差较小(相对增加方差)的特征权重将会收缩 。
在中间列中,上图展示了技术,即暂时丢弃一部分神经元及其连接的方法 。随机丢弃神经元可以防止过拟合,同时指数级、高效地连接不同网络架构 。一般使用了技术的神经网络会设定一个保留率 p,然后每一个神经元在一个批量的训练中以概率 1-p 随机选择是否去掉 。在最后进行推断时所有神经元都需要保留,因而有更高的准确度 。