机器学习“坑”你会遇到

数学预备

Universal approximation theorem ( universal approximation theorem ):

依据遍及逼近定理,经过添加神经元数量,我们可以扩展神经网络的容量,添加神经网络的复杂性。有两种方法可以复杂地添加隐藏的神经元数量:

添加网络的宽度,即添加隐藏层中包罗的神经元数量

添加网络的深度,即添加隐藏层的数量

目前,曾经证明添加模型的深度比宽度更有效。一方面,实际证明,复杂地添加宽度能够会使整个网络难以完成,而添加深度以完成异样的误差需求较少的神经元,换句话说,更深的模型会增加更宽模型所需的神经元数量。另一方面,该实际标明深度学习经过学习特征改良了模型,并用更复杂的表达式表达复杂的表达式。需求近似的函数是许多复杂函数的延续复合。添加深度对应于复杂表达式的屡次复合,添加宽度对应于复杂表达式的一次性提取。

依据Bagging Integration和Stacking Integration,我们从集成的角度看待神经网络,假定感知器只要一个隐藏层,隐藏层的数量代表基础学习者的数量,添加宽度就是添加基础学习者的数量,但是这种集成方法与Bagging不完全相反。在Bagging integration中,每个学习者都是独立的,但是在多层感知器中,基础学习者共享前一层的权重系数。假设深度添加,堆叠集成将被添加到装袋中。一方面,可以了解,层数的添加将添加共享权重系数的多样性,这将添加基于Bagging的学习者的多样性,最终的整合效果能够会更好。当然,这也可以了解为堆叠整合基础学习者的添加。

在物理学中,当我们从微不雅观到微不雅观跨越定律时,许多人会持简化主义态度(包罗爱因斯坦),以为世界必需由一条或多条深入的定律主宰。目前,粒子物理似乎是最基本的东西,化学只是多体物理,分子生物学只是化学。“更多就是差异”是物理学家安德森提出的不雅观念。即使你知道每一个粒子的复杂彼此作用,少量的粒子组合在一同,它们的行为远远超出了所谓的基本定律。与恢复论相对应,安德森的分层实际以为不同的层次应该有不同的规律,凝聚态物理的成功是分层的表示。

我们可以运用集成学习来给神经网络提供一些重要的直觉,但是在复杂的打包和堆叠之后,很难从集成原理来解释神经网络的任务逻辑。当我们末尾用表达学习的想法来了解神经网络时,我们实践上试图在一个新的层次上树立规则。与此同时,虽然添加深度是一种更有效的方法,但它会带来难以优化的效果。

从机器学习模型的角度,我们自然会讨论模型的损失函数,如何防止过度拟合,如何调试超级参数,以及如何确保训练效果和速度。但是,我想强调,除此之外,我们面临的更顺手的效果是神经网络自身的特殊性,我们在神经网络中遇到的一系列效果最终归结为神经网络的结构设计:

在微不雅观层面,网络应该包罗多少层,每个层应该有多少个神经元,以及这些层应该如何彼此衔接

从微不雅观层面来看,隐藏单元的类型是什么,应该如何确定输入单元

为了处置这些效果,我们必需依据神经网络自身的性质来回答它们,很少从综合学习的角度来处置它们。详细来说,它们可以归结为两大类:

如何做出更好的表示

如何做更好的优化

我们提到的重新出现学习与特征选择和降维之间的最大区别在于前者简直不需求人工干预,然后者需求人工设计。在统计学习中,我们曾经知道良好的特征空间将对我们的机器学习义务发生庞大影响。一个典型的例子是我们在前面课程中引见的核PCA降维方法,它直接将线性不成别离的特征空间转换成线性可别离的特征空间,这种转换是表示的完成。

在神经网络中,我们将运用一种结构更复杂的自动编码器技术。输入是原始数据,输入也是原始数据,编码从输入到隐藏层,解码从输入到隐藏层,所以隐藏层包罗原始数据的表示。简而言之,我们希望:

假设我们将L1正则化添加到自编码器中,我们将失掉稀疏表示。假设我们将隐藏层上隐藏层的尺寸限制为小于输入的尺寸,我们将到达降维的目的。假设噪声被添加到输入,并且输入没有噪声,那么我们将失掉一个具有去噪才干的表示。

该图是一个自编码器的例子,紧缩的re表示是我们想要的表示

一项出色的技术是卷积神经网络( CNN ),它思索了图像的局部相关性,运用卷积运算提取十分有用的特征,并进一步将这些特征与池相结合,在图像识别范围取得了庞大成功。在此基础上,人们进一步修正卷积核的大小、数量和外形,同时创新地停止分组卷积、信道加权卷积,并运用不同大小的卷积核,一切这些都是为了尽能够在隐藏层中取得更好的表示。

这幅图片是手写数字识别的神经网络可视化。卷积和池操作用于更好的表示。

同时,另一个遍及运用的技术是循环神经网络( RNN ),它思索了语音的时间相关性,并将隐藏层视为一个静态系统。衔接被添加到同一个隐藏层中的神经元,这样如今的形状会影响未来的形状。在此基础上,人们可以进一步添加双向活动途径,这样未来的形状也可以影响如今。

如图所示,这是RNN的基本方式之一。在隐藏层S中,我们添加了神经元之间的权重系数,希望神经网络可以应用时间相关信息取得良好的表示。

我们之前曾经引见了基于梯度的优化算法,如SGD、ADAM、RMS PROP,并强调损失函数在深度学习中不需求是凸的,由于优化的目的不再是寻觅全局最小值,而只是寻觅泛化误差在可接受范围内的参数。

但是,优化的困难局部来自梯度的估量。简而言之,Sigmoid函数的导数在摆布两侧趋于零。

乙状结肠函数的导数

为了防止这个效果,隐藏单元不能运用Sigmoid函数和Tanh函数。只要当网络的激活被保证很小时,它们才会表示良好。目前,Relu (线性整流器单元)通常用作激活函数:

Relu易于优化,但是在小于零的时分,Relu依然有零的导数,所以有很多扩展,比如Maxout unit,Lead Ly Relu。但是,无论如何纠正,隐藏元素的设计都是尽能够容易地优化。Relu盛行的一个主要缘由是它简直是线性的,易于优化,但它也契合通用逼近定理。

但是,即使我们运用Relu,优化在很大水平上依然是困难的,这是由于多重权重相乘的结果,例如RNN中十分罕见的临时依赖效果,这将缩小或增加每次的梯度结果。处置方案主要分为两类,一类是创新新的层对层衔接方法,如Resnet和densent,这样深层网络优化也能取得令人满意的结果。LSTM也可以添加到RNN中来处置临时依赖效果,另一个是层操作和批量规范化的创新。

阅读中心,翻开牛排

课堂提示

本文梳理了深层网络设计的两种特殊思想,一种是取得更好的表示,另一种是取得更好的优化。作为一种弱小的机器学习方法,它不成防止地会失掉模型的功用,如何防止过度拟合,如何调试超级参数等等。但是,在接上去的学习进程中,希望读者可以掌握以上两个主要不雅观念来了解深化学习的方法。

作者:唐僧不需求海飞丝绸

假设你需求重印,请在后台留言并遵守重印规则

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181014A07BAH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券