二、AI教程学习笔记 | 神经网络优化(一)
目录
1、如何配置数据集
2、欠拟合和过拟合
3、如何解决欠拟合与过拟合
4、L2和L1正则化
5、dropout
6、数据增强
为什么需要数据增强 :
一般而言,比较成功的神经网络需要大量的参数,许许多多的神经网路的参数都是数以百万计,而使得这些参数可以正确工作则需要大量的数据进行训练,而实际情况中数据并没有我们想象中的那么多
数据增强的作用 :
增加训练的数据量,提高模型的泛化能力
增加噪声数据,提升模型的鲁棒性
如何获得大量的数据 :
一种方法是获得新的数据,这种方法比较麻烦,需要大量的成本,而第二种方法则是对数据进行增强,即利用已有的数据比如翻转、平移或旋转,创造出更多的数据,来使得神经网络具有更好的泛化效果。
数据增强的分类 :
数据增强可以分为两类,一类是离线增强,一类是在线增强。
离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候
在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。
常用的数据增强技术 :
首先定义增强因子 : 指的是数据做离线增强之后增长的倍数。
(1)翻转 :增强因子 2 或 3
数据翻转是一种常用的数据增强方法,这种方法不同于旋转 180 这种方法是做一种类似于镜面的翻折。从左到右 :原图 水平翻转 垂直翻转
(2)旋转 : 增强因子 2 到 4
旋转就是顺时针或者逆时针的旋转,注意在旋转的时候, 最好旋转 90 - 180 度否则会出现尺度的问题
(3)缩放 :增强因子任意
图像可以被放大或缩小。放大时,放大后的图像尺寸会大于原始尺寸。大多数图像处理架构会按照原始尺寸对放大后的图像 进行裁切。我们将在下一章节讨论图像缩小,因为图像缩小会减小图像尺寸,这使我们不得不对图像边界之外的东西做出假设。下面是图像缩放的例子。
(4)裁剪 :增强因子任意
这种方法更流行的叫法是随机裁剪,我们随机从图像中选择一部分,然后降这部分图像裁剪出来,然后调整为原图像的大小
(5)平移 : 增强因子任意
平移是将图像沿着 x 或者 y 方向 (或者两个方向) 移动。我们在平移的时候需对背景进行假设,比如说假设为黑色等等,因为平移的时候有一部分图像是空的,由于图片中的物体可能出现在任意的位置,所以说平移增强方法十分有用。
(6)添加噪声 :增强因子任意 看噪声的类型
过拟合通常发生在神经网络学习高频特征的时候 (因为低频特征神经网络很容易就可以学到,而高频特征只有在最后的时候才可以学到) 而这些特征对于神经网络所做的任务可能没有帮助,而且会对低频特征产生影响,为了消除高频特征我们随机加入噪声数据来消除这些特征。
7、将输入特征进行归一化处理
1.标准化:
数据标准化是指数据的各维度减均值除以标准差,这是最常用的标准化方法。
公式:(xi−μ)/σ 其中μ指的是样本的均值,σ指的是样本的标准差。
2.归一化:
数据归一化是指数据减去对应维度的最小值除以维度最大值减去维度最小值,这样做可以将数值压缩到[0,1]的区间。
公式:(xi−min(x))/(max(x)−min(x))
3.白化:
白化的目的是去除输入数据的冗余信息。
例如:训练数据是图像,由于图像中相邻像素之间具有很强的相关性,因此输入是冗余的。白化的目的就是降低输入的冗余性。
输入数据集,经过白化处理后,生成的新数据集满足两个条件:一是特征相关性较低;二是特征具有相同的方差。
白化算法的实现过程:第一步操作是PCA,求出新特征空间中的新坐标,第二步是对新的坐标进行方差归一化操作。
PCA预处理:
左图表示原始数据X,然后我们通过协方差矩阵可以求得特征向量u1、u2,然后把每个数据点,投影到这两个新的特征向量(这两个特征向量是不变且正交的),得到进行坐标如下:
这就是pca处理。
PCA白化
pca白化是指对上面的pca的新坐标X’,每一维的特征做一个标准差归一化处理。
从上面我们看到在新的坐标空间中,(x1,x2)两个坐标轴方向的数据明显标准差不同,因此我们接着要对新的每一维坐标做一个标注差归一化处理。
8、梯度消失和梯度爆炸
9、梯度检验