目录
一过拟合、欠拟合及其解决方案
1.1 欠拟合与过拟合
我们一般把数据集划分为训练集(计算训练误差)、验证集(用于近似泛化误差)、测试集
欠拟合:训练误差无法到达一个较低的水平
过拟合:训练集上的损失不断下降,验证集上的损失却不断变大。
1.2 过拟合解决方案
曾看到过一个很形象的关于过拟合的比喻,现默写如下:
机器学习好比是开车,过拟合好比是发生车祸,下面来看一下导致过拟合的原因:
发生车祸(过拟合) = 车速太快(模型复杂度太高,拟合能力太强) + 路不平坦,有障碍物(数据中有noise) + 司机对路况所知有限(样本量太少)
那知道了车祸原因,哦不对,是过拟合原因,自然对症下药就能解决过拟合了,方法如下:
- 从简单的模型开始(老哥,慢点开车~)
如何计算一个模型的复杂度?用(VC维)。详细的就不推导啦,一般情况下,约等于自由的参数的数量,所谓的自由的参数数量,举个例子,如果参数1和参数2的和为1,那么这两个参数中就只有1个参数是自由的,一旦一个参数确定了,另外一个参数的值也就确定了。
如果有足够多的数据的话,模型太复杂也不是一个大问题,经验表明,数据量N约为的10倍时就足够了。
- Validation(相当于车的仪表盘)
Validation指的是验证集,我们常用验证集来决定哪个模型好,验证集的选取可是有很多技巧的,一个基本的原则就是“match test scenario as much as possible”. 也就是说让训练环境和测试环境尽可能的一样,具体操作就是让验证集和测试集尽可能是同分布的。
- 正则化(目的:防止过拟合)
① L2正则/L1正则/weight-elimination(scaled L2)
待更新
② Dropout
待更新……
③ early stopping(任意基于梯度下降的方法都可以用)
待更新
④ 加约束条件
待更新
1.3 欠拟合解决方案
非常好解决,使用更复杂的模型就好了~
二 影响模型效果的因素
2.1 梯度消失&梯度爆炸
-
概念
当神经网络的层数较多时,模型的数值稳定性容易变差。原因就是一个小于1的数的连乘会变的很小,大于1的数的连乘会变得很大。
-
梯度消失解决方法
梯度消失的危害是导致模型训练困难,对参数的优化步长过小,收效甚微,模型收敛十分缓慢。
- relu、leakrelu、elu等激活函数
避免使用sigmoid、tanh作为激活函数。
要使用Relu等激活函数。
- batchnorm
- 残差网络
待更新
-
梯度爆炸解决方法
梯度爆炸的危害是导致模型训练困难,对参数的优化步长过大,难以收敛。
梯度爆炸的实验表现是出现nan。常用的方法如下:
- 梯度裁剪(gradient clip)
- 权重正则化(weithts regularization)比较常见的是L1正则和L2正则
- relu、leakrelu、elu等激活函数。
- batchnorm
待更新
2.2 环境因素
在统计学中,变量分为因变量,自变量,协变量,因变量被称为被解释变量,自变量和协变量都是解释变量,都会对因变量产生影响,这时候我们想要研究一个或几个变量对因变量的影响,那这些被研究的变量就被称为自变量,剩余的不在研究范围内但会对因变量产生影响的变量称为协变量,一般会采取一些技术加以控制。
要想解决环境因素的影响,就是想方设法使得训练环境与测试环境尽量匹配,这样才能满足机器学习的一个假设“数据要独立同分布”。
-
协变量偏移
在ML中,研究的是条件概率P(y|x),y是因变量,x是自变量,这里有个隐含的条件就是x来自某一分布p(x),如果p(x)变化了,P(y|x)也可能变的不同,所以协变量就是p(x)。
协变量偏移指的是训练集和测试集的p(x)不是同分布的,
比如训练集用自然界的猫做图像识别,测试集中却是卡通猫;
再比如训练集是10月10日之前用户对电影评分,测试集是10月10之后用户对电影的评分,随着时间的变化,其实用户对电影的喜好(协变量)是发生变化,比如1月份喜欢恐怖片,10月份就开始看偶像剧了(身边真实例子=-=),这就是协变量偏移。
-
标签偏移
标签偏移可以简单理解为测试时出现了训练时没有的标签。
协变量偏移和标签偏移可能同时发生。
-
概念偏移
标签本身的定义发生变化,比如软饮料,在美国的不同地域可能会有coke、pop、soda等不同表达,如果要构建一个翻译系统,P(y|x)会因地理位置不同而异。
好消息是概念偏移有缓慢变化的特点,可以根据此特点缓解概念偏移问题。
三 循环神经网络进阶
3.1 循环神经网络的主要结构
- GRU
- LSTM
- 多层RNN(又名深度循环神经网络)
- 双向RNN
RNN结构解读一文中有以上结构的核心源码解读,看一遍源码就会对各个结构更加了解了~
3.2 问答时间
1 LSTM是如何缓解普通RNN中的梯度消失和梯度爆炸问题的?