《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)
一、总结
一句话总结:
减小网络大小
添加权重正则化
添加 dropout 正则化
1、机器学习的根本问题?
优化和泛化之间的对立:机器学习的根本问题是优化和泛化之间的对立。
2、机器学习的根本问题是优化和泛化之间的对立:优化和泛化分别指什么?
训练数据最佳性能:优化(optimization)是指调节模型以在训 练数据上得到最佳性能(即机器学习中的学习)
测试数据性能好坏:泛化(generalization)是指训练好的模型在 前所未见的数据上的性能好坏。
3、训练开始时,优化和泛化是相关的?
训练和测试数据损失都小:训练数据上的损失越小,测试数据上的损失也越小。 这时的模型是欠拟合(underfit)的,即仍有改进的空间,网络还没有对训练数据中所有相关模式建模。
4、解决过拟合的最好方法?
获取更多数据:为了防止模型从训练数据中学到错误或无关紧要的模式,最优解决方法是获取更多的训练 数据。模型的训练数据越多,泛化能力自然也越好。
【调节模型允许存储的信息量、对模型允许存储的信息加以约束】:如果无法获取更多数据,次优解决方法是 调节模型允许存储的信息量,或对模型允许存储的信息加以约束。
迫使模型学习最重要的模式:如果一个网络只能记住几个 模式,那么优化过程会迫使模型集中学习最重要的模式,这样更可能得到良好的泛化。 这种降低过拟合的方法叫作正则化(regularization)
5、防止过拟合的最简单的方法就是减小模型大小?
减少模型中可学习参数的个数:防止过拟合的最简单的方法就是减小模型大小,即减少模型中可学习参数的个数(这由层 数和每层的单元个数决定)。
6、网络模型的容量 ?
模型中可学习参数的个数:在深度学习中,模型中可学习参数的个数通常被称为模型的容量 (capacity)。
7、深度学习模型真正的挑战在于泛化?
泛化就是你和测试数据:深度学习模型通常都很擅长拟合训练数据,但真正的挑战在于泛化,而不是拟合。
8、欠拟合和过拟合的资源解释?
欠拟合:容量不足
过拟合:容量过大
9、越大的网络是不是越好(不是,要选择合适的网络)?
【小网络过拟合慢,过拟合增长慢】:更小的网络开始过拟合的时间要晚于参考网络,而且开始过拟合之后,它的性能变差的速度也更慢。
【大网络过拟合快,过拟合更严重】:更大的网络只过了一轮就开始过拟合,过拟合也更严重。其验证损失的波动也更大。 ,更大网络的训练损失很快就接近于零。 网络的容量越大,它拟合训练数据(即得到很小的训练损失)的速度就越快,但也更容易过拟合 (导致训练损失和验证损失有很大差异)。
10、奥卡姆剃刀(Occam’s razor)原理?
简单即好:如果一件事情有两种解释,那么最可能正 确的解释就是最简单的那个,即假设更少的那个。
【简单模型比复杂模型更不容易过拟合】:这个原理也适用于神经网络学到的模型:给定一些训练数据和一种网络架构,很多组权重值(即很多模型)都可以解释这些数据。简单模 型比复杂模型更不容易过拟合。
11、权重正则化(降低过拟合)?
熵或参数更少:这里的简单模型(simple model)是指参数值分布的熵更小的模型(或参数更少的模型,比 如上一节的例子)
【强制让模型权重只能取较小的值】:因此,一种常见的降低过拟合的方法就是强制让模型权重只能取较小的值, 从而限制模型的复杂度,这使得权重值的分布更加规则(regular)。这种方法叫作权重正则化 (weight regularization),
l1或l2正则化:这种方法叫作权重正则化 (weight regularization),其实现方法是向网络损失函数中添加与较大权重值相关的成本(cost)。
12、L1 和 L2 正则化 实例?
L1正则化:regularizers.l1(0.001)
同时做L1 和 L2 正则化:regularizers.l1_l2(l1=0.001, l2=0.001)
13、由于这个惩罚项只在训练时添加,所以这个网络的训练损失会 比测试损失大很多?
【惩罚项只在训练时添加】:l2(0.001) 的意思是该层权重矩阵的每个系数都会使网络总损失增加 0.001 * weight_ coefficient_value。注意,由于这个惩罚项只在训练时添加,所以这个网络的训练损失会 比测试损失大很多。
14、Hinton dropout灵感之一来自于银行的防欺诈机制?
成功欺诈银行需要相互合作:我去银行办理业务。柜员不停地换人,于是我 问其中一人这是为什么。他说他不知道,但他们经常换来换去。我猜想,银行工作人员要想成 功欺诈银行,他们之间要互相合作才行。这让我意识到,在每个样本中随机删除不同的部分神 经元,可以阻止它们的阴谋,因此可以降低过拟合。
15、dropout核心思想?
【在层的输出值中引入噪声】:其核心思想是在层的输出值中引入噪声, 打破不显著的偶然模式(Hinton 称之为阴谋)。
【记住偶然模式】:如果没有噪声的话,网络将会记住这些偶然模式。
二、内容在总结中
博客对应课程的视频位置: