第八章:深度学习归纳

这次的笔记我们主要介绍一些Deep Learning训练方面的一些技巧,以便于提高模型的扩展性,避免overfitting等问题,以及可以提高训练的收敛速度。

Part One.正则化方法概述

➢一、数据集

➢1.数据集分类

数据集一般会分为以下三个类别:

训练集(Training set)用于模型训练拟合的数据样本

验证集(Validation set):是模型训练过程中单独留出的样本集,它可以用于帮助调整模型的超参数和用于对模型的能力进行初步评估

   • 例如:SVM中参数c和核函数的选择,或者选择网络结构

   • 注意:我们在一般的实践过程中,验证集可能有,也可能没有,我们一般会从训练集中分出来一部分作为验证集

测试集(Test set)用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据

第八章:深度学习归纳

➢2. 过拟合和欠拟合

大部分情况下我们喜欢在项目实践刚刚开始的时候就使用比较复杂的模型进行训练,所以,过拟合会比较常见。另外欠拟合现象比较少见的另一个原因是:因为在训练集上误差都很大的话,那我们就会认定这不是一个好的模型,所以欠拟合不常见;而训练样本上模型训练的很好,我们会习以为常的认为这就是一个很好的模型,所以过拟合较为常见

❑ 过拟合

– 是指模型能很好地拟合训练样本,而无法很好地拟合测试样本的现象,从而导致泛化性能下降

– 为防止“过拟合”,可以选择减少参数、降低模型复杂度、增加正则化项

❑ 欠拟合

是指模型还没有很好地训练出数据的一般规律,模型很简单,不足以拟合程度数据的规律

为防止“欠拟合”,可以选择调整参数、增加迭代深度(因为模型距离收敛还有一定的距离)、换用更加复杂的模型

下面我们用一个图来直观的说明一下:

第八章:深度学习归纳

➢3. 误差分析

误差分析当中常见的几个物理量:偏差、方差和泛化误差

 ❑ 偏差(bias)   

– 反映了模型在样本上的期望输出与真实标记之间的差距,即模型本身的精准度,反映的是模型本身的拟合能力

– 在训练集上,训练好的一个模型,来一个新的样本,我们就会得到一个估计值,这个估计值和真实值之间的差异就是偏差

第八章:深度学习归纳

❑ 方差(variance)

– 反映了模型在不同训练数据集下学得的函数的输出与期望输出之间的误差,即模型的稳定性,反应的是模型的波动情况

– n个不同的训练集,对应我们得到n个不同的模型,现在来一个新的样本,在每一个模型都走一遍,我们就会得到n个估计值,对于这个新的样本估计值之间的方差比较大的话,则表明模型不是很稳定

第八章:深度学习归纳

❑ 泛化误差(Generalization Error)    

度量训练所得模型在总体数据上得到的预估值和标签值偏离程度的期望

– 总体数据在实际中我们是无法得到的,如果我们能够得到总体的数据的话,那么我们直接使用整体数据训练就可以了,因为可列举的数据也就没有必要分析模型的泛化能力了,所以我们通常会有一个测试集,来了一个新的样本,我们预估和标签之间的误差,取期望值,就是泛化误差。我们的期望就是泛化误差越小越好,我们实际在训练的时候是不使用测试集的,所以我们在训练的时候尽量的让训练集的误差小,但是训练集的误差越来越小的话,还会出现过拟合的问题。

第八章:深度学习归纳

我们对上述的情况做举例说明(训练集和验证集上的模型的分类的性能):

❑ ①、④两种情况模型在训练集误差都很小,这种就称为low bias,说明训练的很到位了,我们会认为模型比较好

❑ ②、③两种情况模型在训练集误差都很大,这就称为high bias,我们会认为这个模型不是很好

第八章:深度学习归纳

 ❑ ①情况下,验证集相比训练集误差上升了很多,这就是high variance  

刚才我们在介绍方差的时候,实际上要在不同的训练集上训练多个模型,然后计算方差。训练集的误差这么小,验证集的误差这么大,那么他们两个之间的差异就反映了方差,就说明了在不同的数据集上的波动是很大的

❑ ②情况下,虽然它的验证集误差更大,但是相比它的训练集误差,基本没太大变化

两种误差都很大,既是high bias,又是high variance,这样的模型我们一看就知道不是好的模型

情况下,训练集误差大,验证集误差相比训练集误差更大

这是Low bias,又是high variance,这是最差的一种情况

❑ ④情况下,验证集误差相比训练集误差上升很小,我们说是Low variance   

两种误差都很小,既是Low bias,又是Low variance,这样的模型我们一看就知道是好的模型
第八章:深度学习归纳

通过下面这个图我们直观的看一下什么是过拟合,什么是欠拟合,我们通过两个数据集:训练集和验证集说明,这样我们就会比较容易的准确的判断出什么是过拟合什么是欠拟合

我们假设人类的判别的误差为0,性能最强。那么偏离人类判别的程度我们看做是bias,在验证集上偏离训练集的程度的差异我们认为是variance。

第八章:深度学习归纳

➢4.深度学习的一般步骤

基于以上的分析,我们在深度学习的过程中,就可以按照以下的过程来做:

先判断一下在训练集上训练的是否准确?训练误差是不是减小到很小的