深度学习-备课
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• ——Dietterich
模型平均如何奏效:不同模型不会在测试集上产生完全相同的误差。
•
BAGGING(装袋)方法
• Bagging是一种允许重复多次使用同一种模型、训练算法和 目标函数的方法。 • ① 根据均匀概率分布从数据中重复抽样(有放回)每个抽样 生成的自助样本集上,训练一个基分类器;对训练过的分类 器进行投票,将测试样本指派到得票最高的类中。 • ② 每个自助样本集都和原数据一样大 • ③ 有放回抽样,一些样本可能在同一训练集中出现多次,一 些可能被忽略。(每个数据集包含原始数据2/3的实例)
10.稀疏表示
• 稀疏表示也是卷积网络常用到的正则化的方法。 • 前文所述的权重衰减直接惩罚模型参数,如L^1正则化会诱导稀疏参 数,使得许多参数为0,而稀疏表示是惩罚神经网络中的激活单元, 稀疏化激活单元。 • 换言之,稀疏表示的是得神经元的输入单元变得稀疏,很多输入是0.
Hale Waihona Puke Baidu
第一个表达式是参数稀疏 的线性回归模型的例子。 第二个表达式是数据 X 具 有稀疏表示 H 的线性回归。
• Dropout与Bagging对比
• Bagging和Dropout的目的是一样的,都是为了防止模 型过拟合。 • Bagging是每次训练的时候从原训练集中随机抽取样本, 然后对该样本进行训练。多次反复后,对最后的结果取 均值。
12.DROPOUT
• 模型训练时,在一次循环中我们先随机选择神经层中的一些单元并将其临时隐藏, 然后再进行该次循环中神经网络的训练和优化过程。在下一次循环中,我们又将隐 藏另外一些神经元,如此直至训练结束。 • Dropout训练的集成包括所有从基础网络除去神经元(非输出单元)后形成的子网 络。只需要将一些单元的输出乘零就能有效的删除(暂时地)一个单元。假如基本 网络有n个非输出神经元,那么就有2^n个子网络。
• Left: A unit at training time that is present with probability p and is connected to units in the next layer with weights w. • Right: At test time, the unit is always present and the weights are multiplied by p. The output at test time is same as the expected output at training time.
MODEL DESCRIPTION
没有Dropout的神经网络
有Dropout的神经网络
上面公式中Bernoulli函数,是为了以概率p,随机生成一个0、1的向量。
DROPOUT如何具有正则化效果:
• ImageNet Classification with Deep Convolutional Neural Networks, by Alex Krizhevsky, Ilya Sutskever, and Geoffrey Hinton (2012).的解释是:这种技术减 少了神经元之间复杂的共适性。因为一个神经元不能依赖其他特定的神经元。因此, 不得不去学习随机子集神经元间的鲁棒性的有用连接。换句话说。想象我们的神经 元作为要给预测的模型,dropout是一种方式可以确保我们的模型在丢失一个个体 线索的情况下保持健壮的模型。在这种情况下,可以说他的作用和L1和L2范式正 则化是相同的。都是来减少权重连接,然后增加网络模型在缺失个体连接信息情况 下的鲁棒性。
匹配追踪(MATCHING PURSUIT)
•
如何建立这个词典D
• efficient sparsecoding algorithm NIPS 06; • K-SVD tsp 06;
• Online dictionary learning for sparse coding,ICML 09 & JMLR 10
算法步骤:
• 1.从数据集S中取样(放回选样),总共执行t次 • 2.针对每一次取样训练得到得到t个模型H1…Ht • 3.如果是分类算法,则t个模型投出最多票数的类别或者类别之一为 最终类别;
如果是回归算法,t个模型得到的回归结果进行算术平均得到的值为 最终的模型输出。
• 模型平均是减少泛化误差非常强大可靠的方法,可以适用于任何机器学习算法中, 但是以增加计算和储存为代价。
由于提前终止需要验证集,这意味着某些训练数据不能被馈送到 模型,因此为了更好的利用数据,有两种解决策略。
• 第一种策略是再次初始化模型,利用第一轮提前终止训练的最佳步数i*,重新使用 全部数据再次训练i*步。
• 第二种策略是将第一轮提前终止时的损失函数作为参考目标值,用全部数据进行第 二轮提前终止,直到验证集的平均损失函数低于参考目标值。(不能保证终止)
8.提前终止
• 什么是提前终止? • 怎么实现提前终止? • 提前终止有什么好处? • 为什么提前终止会有用?
提前终止的目的是 为了防止过拟合,从右 侧学习曲线中可以看出, 测试误差在前几个 EPOCH中逐渐减小, 但是训练到某个 EPOCH后,测试误差 又有了小幅度的增大。 这说明此时发生了过拟 合。 如果我们只要返回 使验证误差最低的参数, 就可以获得验证集误差 更低的模型。
• 参数共享:强迫模型某些参数相等 • 主要应用:卷积神经网络(CNN)(9章会详细介绍) • 举例:猫的照片向右边移动了一个像素仍然能探测出猫。 • 优点:显著降低了卷积神经网络CNN的参数个数(CNN模型的参数 通常是千万量级以上),减少模型占用的内存,并且显著的增加了网 络的大小而不需要增加训练数据。
• 通常为了提高测试的性能(减少测试时的运算时间),可以将缩放的工作转移到训练阶 段,而测试阶段与不使用dropout时相同,称为 inverted dropout :将前向传播 dropout时保留下来的神经元的权重乘上1/p
• 在架构中添加inverted Dropout这一改动仅会影响训练过程,而并不影响测试过 程。
• Bagging可以视为比较传统的集成学习思路。 现在常用的Random Forest, GBDT(迭代决策树),GBRank其实都是更加精细化,效果更好的方法。
12.DROPOUT
• 深度学习领域大神Hinton,在2012年文献:《Improving neural networks by preventing co-adaptation of feature detectors》提 出了,在每次训练的时候,让一部分的特征检测器停止工作,这样可 以提高网络的泛化能力,Hinton又把它称之为dropout。 • Hinton认为过拟合,可以通过阻止某些特征的协同作用来缓解。在 每次训练的时候,每个神经元有一定的概率被移除,这样可以让一个 神经元的出现不应该依赖于另外一个神经元。
提前终止:在测试误差开始上升之前,就停止训练,即使此时 训练尚未收敛(即训练误差未达到最小值)。
•
首先我们要保存好现在的模型(网络结构和权值),训练num_batch 次(即一个epoch),得到新的模型。将测试集作为新模型的输入,进行 测试。如果我们发现测试误差比上次得到的测试误差大,我们并不会 马上终止测试,而是再继续进行几个epoch的训练与测试,如果测试 误差依旧没有减小,那么我们就认为该试验在上一次达到最低测试误 差时停下来。
DROPOUT说的简单一点就是我们让在前向传导的时候,让某个神经 元的激活值以一定的概率P,让其停止工作,示意图如下:
• 在训练时,每个神经单元以概率p被保留(dropout丢弃率为1-p); • 在测试阶段,每个神经单元都是存在的,权重参数w要乘以p,成为:pw。
测试时需要乘上p的原因:考虑第一隐藏层的一个神经元在dropout之前的输出是x, 那么dropout之后的期望值是E=px+(1−p)0=px,在测试时该神经元总是激活,为了保 持同样的输出期望值并使下一层也得到同样的结果,需要调整x→px. 其中p是 Bernoulli分布(0-1分布)中值为1的概率。
也就是说,H 是 X 的一个 函数,在某种意义上表示 存在于 X 中的信息,但只 是用一个稀疏向量表示。
字典学习:
• 假设我们用一个m*n的矩阵表示数据集X,每一行代表一个样本,每 一列代表样本的一个特征,一般而言,该矩阵是稠密的,即大多数元 素不为0。 稀疏表示的含义是,寻找一个系数矩阵A(k*n)以及一 个字典矩阵B(m*k),使得B*A尽可能的还原X,且A尽可能的稀疏。 A便是X的稀疏表示。
• 字典学习的好处 它实质上是对于庞大数据集的一种降维表示;
第二,字典学习总是尝试学习蕴藏在样本背后最质朴的特征。
• 稀疏表示的本质: 用尽可能少的资源表示尽可能多的知识,这种表示还能带来一个附加的好处, 即计算速度快。
11.BAGGING算法
• Bagging是通过结合几个模型降低泛化误差的技术。 • 基本思想:对于一个复杂的学习任务,我们首先构造多个简单的学习模型,然后再 把这些简单模型组合成一个高效的学习模型。(“三个臭皮匠顶个诸葛亮”) • 采用该策略的技术被称为集成方法,广泛用于分类和回归任务。 • 不同集成方法以不同方式构建集成模型。例如每个成员可以使用不同算法和目标函 数训练成完全不同的模型。
提前终止相当于L^2正则化
提前终止的优点:
• 由于限制了训练迭代次数,减少训练时的计算成本。 • 具有正则化效果而不需要添加惩罚项或计算其梯度。
9.参数绑定与参数共享
• 目前讨论对参数添加约束或惩罚的时候,一直是相对于固定的区域或 点。例如L^2正则化对参数偏离零的固定值进行惩罚。 • 根据相关领域和模型结构方面的知识,得知模型参数之间应该存在一 些相关性,需要对模型参数之间的相关性进行惩罚,使模型参数尽量 接近或者强迫某些参数相等。 • 举例:
“为普通稠密表达的样本找到合适的字典,将样本转化为合适 的稀疏表达形式,从而使学习任务得以简化,模型复杂度得以降 低,通常称为‘字典学习’”
• 字典学习的最简单形式为:
• 其中xi为第i个样本,B为字典矩阵,alphai为xi的稀疏表示,lambda为大于0参 数。
• 上式中第一个累加项说明了字典学习的第一个目标是字典矩阵与稀疏表示的线性组 合尽可能的还原样本;第二个累加项说明了alphai应该尽可能的稀疏。之所以用L1 范式是因为L1范式正则化更容易获得稀疏解。
为什么集合优于单个
• 第一个原因是,训练数据可能无法提供足够的信息来选择单一的最佳学习器。例如,可 能有许多学习器在训练数据集上的表现同样出色。因此,结合这些学习器可能是更好的 选择。 • 第二个原因是,学习算法的搜索过程可能不完善。例如,即使存在唯一的最佳假设,也 可能难以实现,因为运行算法会导致次优假设。因此,集合可以弥补这种不完善的搜索 过程。 • 第三个原因是,被搜索的假设空间可能不包含真正的目标函数,而集合可以给出一些很 好的近似值。例如,众所周知,决策树的分类边界是与坐标轴平行的线段。如果目标分 类边界是一条光滑的对角线,则使用单个决策树不能产生良好的结果,但通过组合一组 决策树可以实现良好的近似。
如何获得表示稀疏
• 从任意一个字典中为原始信号寻找最稀疏的表示常用的方法分类两类: ①贪婪算法,比如匹配追踪(MP)、正交匹配追踪(OMP)、弱匹配追踪 (WMP)、阈值方法等;(速度快,精度相对较低) ②松弛算法,比如迭代加权最小二乘(Iterative-Reweighed-Least-Squares, IRLS)、基追踪(BP)等。(松弛算法是精度高,但速度慢)
• 大多数集成方法使用单一的基本学习算法来生成均匀基础学习器,但 也有一些方法使用多种学习算法来生成异构学习器。 • 通常情况下,集合是分两步构建的。 首先,生成许多基础学习器, 这些基础学习器可以以并行样式或序列样式生成,序列样式即基础学 习器的生成影响后续学习器的生成。 然后,将基础学习器结合使用, 其中最流行的组合方案是用于分类的多数投票和用于回归的加权平均。