当前课程知识点:大数据机器学习 > 第十九章 深度学习正则化方法 > 4.深度学习的正则化方法(二) > 4.深度学习的正则化方法(二)
下面我们介绍半监督学习的正则化方法
在半监督学习的框架下
Px 产生的未标记样本
和P xy 中的标记样本
都可以用于估计P yx条件概率
或者根据x 预测y的推断函数
在深度学习的背景下
半监督学习通常指的是
学习一个表示h = f x
学习表示的目的
是使相同类中的样本有类似的表示
无监督学习可以为如何
在表示空间聚集样本提供有用的线索
在输入空间紧密聚集的样本
就应该被映射到类似的表示上
在许多情况下
新空间上的线性分类器可以达到较好的泛化性
2003年提出的这种方法的一个经典变种
是使用主成分分析作为分类前的预处理步骤
下面我们介绍多任务学习的正则化方法
多任务学习是1993年提出的
简单的说
就是一个模型可以完成多个学习任务
它可以通过合并几个任务中的样例
来提高泛化性能
也可以视为对参数施加的软性的约束
如图所示
多任务学习中非常普遍的一种形式
在这个形式当中
有不同的监督任务也就是给定x预测y
共享相同的输入x
以及一些中间层表示h share
它能学习出共同的因素池
该模型通常呢可以分为两类的相关参数
第一类就是针对不同的具体的任务的参数
也就是说这些参数
只能从各自任务的样本中实现良好的泛化
也就是图中的上一层的参数
第二类参数呢是所有任务共享的通用参数
也就是说
从所有任务的汇集数据中获益的参数
如图中的下一层
因为可以共享参数
所以它的统计强度可以大大提高
下面我们介绍提前终止
这可能是深度学习当中最常用的正则化方法了
它的广为流行主要是因为它的有效性和简单性
当训练有足够的表示能力
甚至会过拟合的大模型的时候
我们经常观察的到
训练误差会随着时间的推移逐渐降低
但是验证集的误差却会再次上升
如该图所示
就是这种现象的一个例子
而且这种现象几乎一定会出现
这就意味着如果我们能及时发现问
并返回使验证集误差最低的参数设置
就可以获得更好的模型
也就是说
有希望获得更好的预测误差
也就是说在每次验证集误差有所改善以后呢
我们都会先存储模型参数的副本
也就是说为了以后可以拿出来再用
当训练算法终止的时候
我们返回这些参数而不是最新的参数
当验证集上的误差
在事先指定的循环次数内
没有进一步改善的时候呢
算法就会自动终止
我们可以认为提前终止
是一种非常高效的超参数选择算法
按照这种观点的话
训练步数也是一个超参数
我们从图可以看到
这个超参数在验证集上具有U 型性能曲线
很多控制模型容量的超参数
在验证集上都是这样的U型性能曲线
也就是如图所示
在提前终止的情况下
我们通过拟合训练集的步骤
来控制模型的有效容量
那么提前终止
为什么会具有正则化的效果呢
我们来看这个示意图
左图它的实线轮廓线表示负对数似然的轮廓
虚线呢 表示从原点开始的
随机梯度下降法所经过的轨迹
提前终止的轨迹在较早一点的时候
在点~w这个点就停止了
而不是停止在最小化代价的点W的地方
右图呢是为了对比
使用L2正则化化效果的示意图
虚线的圆圈就表示L2惩罚的轮廓
L2惩罚使得总代价的最小值
比非正则化代价的最小值更靠近原点
刚才我们介绍了参数范数惩罚是正则化参数
并使其彼此接近
而更流行的方法呢
是使用约束就是强迫某些参数相等
由于我们将各种模型或模型组件
解释为共享唯一的一组参数
这种正则化的方法通常就被称为参数共享
和正则化参数
通过范数惩罚使其接近相比呢
参数共享的一个显著的优点就是
只有参数的子集需要被存储在内存中
对于某些特定的模型如卷积神经网络
这可以显著的减少模型所占用的内存
我们可以考虑以下的这样的情形
我们有两个模型去执行相同的分类任务
具有相同的类别
但输入的分布呢稍有不同
从形式上
我们有参数为wA 的模型A
和参数为wB 的模型B
这两种模型呢
将输入映射到两个不同
(见上图)
我们可以想象
这些任务会足够相似
或许呢 具有相似的输入或相似的输出
因此 我们认为模型参数应彼此靠近
(见上图)
我们可以通过正则化利用这种信息
具体来说
我们可以使用以下形式对参数范数进行惩罚
(见上图)
在这里呢 我们就使用L2 惩罚
也可以使用其他的惩罚
最流行和广泛使用的参数共享
出现在应用于计算机视觉的卷积神经网络当中
在自然图像当中
有许多统计属性是对转换不变的
我们举个例子
猫的照片即使向左边移一个像素
他仍保持猫的照片
CNN呢就通过在图像的多个位置共享参数
来考虑这个特性相同的特征
也就是具有相同权重的隐藏单元
在输入的不同位置上来进行计算获得
这就意味着
无论猫出现在图像当中的哪一行哪一列
我们都可以使用相同的猫的探测器来找到猫
参数共享显着的降低了CNN模型的参数数量
并显著提高了网络的大小
而不需要相应的增加训练数据
下面 我们介绍稀疏表示的正则化方法
深度神经网络有两种稀疏表示策略
一个呢就是我们前边介绍的权重衰减
去直接惩罚模型的参数
例如 用L1范数正则化进行参数的稀疏
而另一种策略呢
就是惩罚神经网络当中的激活函数
去稀疏化激活单元
这种策略间接的对模型参数施加了复杂惩罚
我们可以以线性回归来简单的说明这个区别
第一个表达式
是参数稀疏的线性回归模型的例子
第二个表达式
是数据X具有稀疏表示H的线性回归
也就是说
H是X的一个函数
在某种意义上表示存在于X中的信息
但只是用一个稀疏向量来进行表示
下面介绍Bagging
和其他集成方法的正则化方法
Bagging呢是通过结合几个模型
降低泛化误差的技术
是94年由Breiman提出的
他的主要想法是分别训练几个不同的模型
然后呢
让所有的模型表决测试样例的输出
这是机器学习中常用的一种策略
被称为是模型平均
采用这种策略的技术被称为集成方法
模型平均
它起作用的原因是不同的模型
通常不会在测试集上产生完全相同的误差
假设我们有K个回归模型
而且假设每个模型在每个粒子上的误差是εi
这个误差服从零均值方差
(见上图)
而且协方差为
(见上图)
通过所有集成模型的平均预测
(见上图)
集成预测器平方误差的期望是
(见上图)
在误差完全相关
也就是C等于V的情况下
均方误差减少到V所以模型平均没有任何帮助
在错误完全不相关
也就是C等于0的情况下
该集成平方误差的期望仅为K分之一V
这就意味着集成平方误差的期望
会随着集成规模增大而线性减小
换句话说
集成平均至少与它的任何成员表现的一样好
并且如果成员的误差是独立的
那么集成将显著的比其他的成员表现的更好
不同的集成方法
以不同的方式去构建集成模型
例如
集成的每个成员可以使用不同的算法
和目标函数训练成不同的模型
Bagging是一种允许重复多次使用
同一种模型的训练算法和目标函数的方法
我们下面给出一个例子
来具体描述bagging是如何工作的
假设我们在上述数据集包含一个8一个6
和一个9上训练数字8的检测器
假设我们制作了两个不同的重采样数据集
Bagging呢训练程序
通过替换采样构建这些数据集
第一个数据集忽略了9并重复8
在这个数据集上
检测器得知数据顶部有一个环就认为是一个8
第二个数据集当中呢
我们忽略了6并重复了9
在这种情况下
检测器得知数字底部有一个环
就对应于是一个8
这些单独的分类规则中每一个都是不可靠的
但是如果我们把他们的输出进行平均
就能得到鲁棒的检测器
只有当8的两个环都存在的时候
才能实现最大的置信度
模型平均是一个
减少泛化误差的非常强大可靠的方法
但是呢
在作为科学论文的算法的基准的时候
它通常是不被鼓励的
因为任何机器学习算法
都可以从模型平均中大幅获益
但是它的代价是增加计算和存储
下面 我们介绍Dropout
他是hinton在2012年提出的
刚才我们讲了bagging和集成学习的正则化方法
bagging方法使用的时候他涉及训练多个模型
并在每个测试样本上评估多个模型
可是如果我们想在
深度神经网络当中使用bagging的话
那么每一个网络
都是一个很大的神经网络的时候
这似乎就不切实际了
因为训练和评估这样的大的网络
需要花费很多的运行时间和很多的内存开销
通常呢
我们一般只能集成5到10个左右的神经网络
dropout提供了一种廉价的bagging的集成近似
他能够训练和评估指数级数量的神经网络
从图中可以看到
左图呢 是一个标准的神经网络
右图是一个dropout的结果
它只有少量的连接存在
dropout可以看成是对所有的子网络
进行训练然后进行集成
其中子网络是通过从基本网络中
删除非输出单元来构建的
我们先从最简单的网络左手
这个简单的网络有
两个可见的单元和两个隐藏的单元
这四个单元呢
就有16个可能的子网络
图中展示了从原始网络中丢弃不同的单元子集
而形成的所有16个子网络
在这个小例子当中
所得到的大部分网络没有输入单元
或没有从输入连接到输出的路径
当层很宽的时候
丢弃所有从输入到输出的可能路径的概率变小
所以呢
这个问题不太可能在出现层较宽的网络当中
具体而言
dropout的训练的集成包括所有从基础网络
除去非输出单元后形成了子网络
如图所示
神经网络的变化主要是基于
一系列的仿射变换和非线性变换
我们只需将一些单元的输出乘以零
就能有效的删除一个单元
这个过程需要对模型进行一些修改
比如 径向基函数网络单元的状态
和参考值之间就会存在一定的区别
为了简单起见呢
我们在这里提出
乘以零的简单的dropout算法
但是他被简单修改以后呢
可以与从网络中移除单元的其他操作结合使用
dropout的目标是在指数级别
数量级上的神经网络上近似这个过程
具体来说
在训练中使用dropout的时候
我们会使用基于小批量的学习算法和较小的步长
如 梯度下降等
我们每次在小批量当中加载一个样本
然后随机抽样应用于网络中
所有输入和隐藏单元的不同的二值掩码
对于每个单元呢掩码是独立采样的
掩码值为1 的采样概率
是训练开始前的一个固定的超参数
它不是模型当前参数值或输入样本的函数
通常在每一个小批量训练的神经网络当中
一个输入单元被包括的概率是0.8
一个隐藏单元被包括的概率为0.5
然后 我们运行和之前一样的
前向传播 反向传播以及学习更新
图中就说明了Dropout的方法下的前向传播
Dropout的另一个显著的优点是
不去限制适用的模型或训练过程
几乎在所有使用分布式表示
而且可以用随机梯度下降训练的模型上
都表现得很好
下面介绍Maxout的方法
该方法来源于2013年ICml会议上的
《Maxout Network》这篇文章
作者呢就是著名的goodfellow
Maxout是深度学习网络中的一层网络
就像是池化层卷积层一样
我们可以把maxout看成是网络的激活函数层
乘假设网络的输入向量为X=x1x2一直到xd
也就是有d个神经元的输入
maxout的隐藏层的每个神经元的计算公式如下
(见上图)
这里W为大小为dmk三维矩阵
b为mk的二维矩阵
如图所示
在这个图当中k=5
如果我们设定参数k=1
那么这个时候网络就类似于之前我们所学的
普通的多层感知机的模型
具体z的求取过程如下
其中out是由f函数获得
f函数呢就是激活函数
比如Sigmod Relu 双线性函数等
maxout是一个函数逼近器
对于一个标准的多层感知机网络来说
如果隐藏层的神经元足够多
那么 理论上它可以逼近任意函数
下面我们介绍对抗训练的正则化方法
我们用一个例子来进行解释
如图所示
在ImageNet上应用GoogLeNet
也就是Szegedy在2014年提出的方法
它的对抗样本生成的过程
通过添加一个不可察觉的小向量
其中元素呢就等于代价函数
相对于输入的梯度元素的符号
我们可以改变GoogLeNet对此图像的分类结果
假如输入图像为熊猫 标签为panda
我们加入了一个权值很小的
例如权值为0.007的噪声图像
这时候模型获得的输出为gibbon
也就是说在精度达到人类水平的神经网络上
我们通过优化过程去故意的构造这样的数据点
这个数据点上的误差率接近百分之一百
在这张图中就是构造了这样的点对
模型在这个输入点的输出
与附近的数据点X非常不同
在许多情况下
这个构造的点与普通点非常近似
人类观察者甚至不会察觉
原始样本和对抗样本之间的差异
但是网络呢 会做出非常不同的预测
goodfellow在2014年就表明
这些对抗网络的主要原因之一是过度线性
神经网络主要是基于线性块去构建的
因此呢 在一些实验中
他们实现的整体函数被证明是高度线性
这些线性函数很容易优化
然而另一方面呢
如果一个线性函数具有许多输入的话
那么它的值可以非常迅速的改变
如果我们用epsilong去改变每个输入的话
那么权重为W的线性函数
(见上图)
如果W是高维的话呢这会是一个非常大的数
对抗训练是通过鼓励网络
在训练数据附近的局部区域恒定
来限制这一高度敏感的局部线性行为
这可以被看作是一种明确的向监督神经网络
引入局部恒定先验的方法
对抗训练呢有助于体现
积极正则化与大型函数族结合的力量
对抗训练呢也提供了一种实现半监督学习的方法
好 这一讲就到这
-1.机器学习定义和典型应用
-2.机器学习和人工智能的关系
-3.深度学习方法和其它人工智能方法的共性和差异
-4.机器学习和数据挖掘的关系
-5.机器学习和统计学习的关系
-6.机器学习的发展历程
-7.大数据机器学习的主要特点
-第一章 概述--7.大数据机器学习的主要特点
-1机器学习的基本术语
-2.监督学习
--2.监督学习
-3.假设空间
--3.假设空间
-4.学习方法三要素
-第二章 机器学习基本概念--4.学习方法三要素
-5.奥卡姆剃刀定理
-6.没有免费的午餐定理
-7.训练误差和测试误差
-8.过拟合与模型选择
-第二章 机器学习基本概念--8.过拟合与模型选择
-9.泛化能力
--9.泛化能力
-10.生成模型和判别模型
-1.留出法
--1.留出法
-2.交叉验证法
--2.交叉验证法
-3.自助法
--3.自助法
-4.性能度量
--4.性能度量
-5.PR曲线
--5.PR曲线
-6.ROC和AUC曲线
-第三章 模型性能评估--6.ROC和AUC曲线
-7.代价敏感错误率
-8.假设检验
--8.假设检验
-9.T检验
--9.T检验
-10.偏差和方差
--10.偏差和方差
-1.感知机模型
--1.感知机模型
-第四章 感知机--1.感知机模型
-2.感知机学习策略
-3.感知机学习算法
-第四章 感知机--3.感知机学习算法
-1.原型聚类描述
--1.原型聚类描述
-第五章 聚类--1.原型聚类描述
-2.性能度量
--2.性能度量
-第五章 聚类--2.性能度量
-3.1原型聚类 k均值算法
-3.2 原型聚类 学习向量算法
-3.3 原型聚类 密度聚类
-第五章 聚类--3.3 原型聚类 密度聚类
-3.4原型聚类 层次聚类
-1.综述
--1.综述
-2.概率图模型
--2.概率图模型
-第六章 贝叶斯分类器及图模型--2.概率图模型
-3.贝叶斯网络
--3.贝叶斯网络
-第六章 贝叶斯分类器及图模型--3.贝叶斯网络
-4.朴素贝叶斯分类器
-第六章 贝叶斯分类器及图模型--4.朴素贝叶斯分类器
-5.半朴素贝叶斯分类器
-第六章 贝叶斯分类器及图模型--5.半朴素贝叶斯分类器
-6.贝叶斯网络结构学习推断
-7.吉布斯采样
--7.吉布斯采样
-第六章 贝叶斯分类器及图模型--7.吉布斯采样
-开头
--开头
-1.决策树模型与学习基本概念
-2.信息量和熵
--2.信息量和熵
-第七章 决策树和随机森林--2.信息量和熵
-3.决策树的生成
--3.决策树的生成
-4.决策树的减枝
--4.决策树的减枝
-5.CART算法
--5.CART算法
-6.随机森林
--6.随机森林
-简介
--简介
-1.逻辑斯谛回归模型
-第八章 逻辑斯谛回归与最大熵模型--1.逻辑斯谛回归模型
-2.最大熵模型
--2.最大熵模型
-3.模型学习的最优化方法
-第八章 逻辑斯谛回归与最大熵模型--3.模型学习的最优化方法
-1.开头
--1.开头
-2.SVM简介
--2.SVM简介
-3.线性可分支持向量机
-第九章 SVM--3.线性可分支持向量机
-4. 凸优化问题的基本概念
-第九章 SVM--4. 凸优化问题的基本概念
-5.支持向量的确切定义
-6.线性支持向量机
-第九章 SVM--6.线性支持向量机
-svm相关拓展资料
-开头
--开头
-第十章 核方法与非线性SVM--开头
-1.泛函基础知识
--1.泛函基础知识
-第十章 核方法与非线性SVM--1.泛函基础知识
-2. 核函数和非线性支持向量机
-第十章 核方法与非线性SVM--2. 核函数和非线性支持向量机
-3. 序列最小最优化算法
-第十章 核方法与非线性SVM--3. 序列最小最优化算法
-开头
--开头
-1. k近邻学习
--1. k近邻学习
-第十一章 降维与度量学习--1. k近邻学习
-2. 降维嵌入
--2.降维嵌入
-第十一章 降维与度量学习--2. 降维嵌入
-3. 主成分分析
--3.主要成分分析
-第十一章 降维与度量学习--3. 主成分分析
-4. 核化线性降维
--4.核化线性降维
-5. 流型学习和度量学习
-1. 提升方法Adaboost算法
-第十二章 提升方法--1. 提升方法Adaboost算法
-2. Adaboost算法的训练误差分析
-3. Adaboost算法的解释
-4. Adaboost的实现
-第十二章 提升方法--4. Adaboost的实现
-adaboost拓展资料
-开头
--开头
-1. 问题提出
--1. 问题提出
-2. EM算法的引入
-3. EM算法的收敛性
-4. EM算法在高斯混合模型学习中的应用
-5. EM算法的推广
-第十三章 EM算法及混合高斯模型--3. EM算法的收敛性
-开头
--开头
-1. 计算学习理论的基础知识
-第十四章 计算学习理论--1. 计算学习理论的基础知识
-2. 概率近似正确学习理论
-3. 有限假设空间
--3.有限假设空间
-4. VC维
--4. VC维
-第十四章 计算学习理论--4. VC维
-5. 学习稳定性
--5. 学习稳定性
-开头
--开头
-1. 隐马尔科夫模型的基本概念
-第十五章 隐马尔可夫模型--1. 隐马尔科夫模型的基本概念
-2. 概率计算算法
-3. 学习算法
--3.学习算法
-第十五章 隐马尔可夫模型--3. 学习算法
-4预测算法
--4. 预测算法
-第十五章 隐马尔可夫模型--4预测算法
-开头
--开头
-1.概率无向图模型
-第十六章 条件随机场--1.概率无向图模型
-2.条件随机场的定义与形式
-第十六章 条件随机场--2.条件随机场的定义与形式
-3.条件随机场的计算问题
-4.条件随机场的学习算法
-5.条件随机场的预测算法
-第十六章 条件随机场--5.条件随机场的预测算法
-开头
--开头
-1.精确推断法:变量消去法和信念传播法
-第十七章 概率图模型的学习与推断--1.精确推断法:变量消去法和信念传播法
-2.近似推断法:MCMC和变分推断
-第十七章 概率图模型的学习与推断--2.近似推断法:MCMC和变分推断
-1.神经网络的发展历程
-2.神经网络的基本概念以及常见的神经网络(一)
-第十八章 神经网络和深度学习--2.神经网络的基本概念以及常见的神经网络(一)
-3.神经网络的基本概念以及常见的神经网络(二)
-4.玻尔兹曼机
--4.玻尔兹曼机
-5.深度学习
--5.深度学习
-第十八章 神经网络和深度学习--5.深度学习
-1. 深度学习简介和架构设计
-2. 计算图形式的反向传播算法
-3.深度学习的正则化方法(一)
-4.深度学习的正则化方法(二)
-1.深度学习的优化问题
-第二十章 深度学习优化方法--1.深度学习的优化问题
-2.神经网络优化的挑战
-3.神经网络的优化算法
-第二十章 深度学习优化方法--3.神经网络的优化算法
-4.相关策略
--4.相关策略
-第二十章 深度学习优化方法--4.相关策略