三、深度学习
7、过拟合与欠拟合
过拟合和欠拟合是所有机器学习算法都要考虑的问题。
(1)基本定义
a、欠拟合
欠拟合是指机器学习模型无法完全捕获数据集中的复杂模式,导致模型在新数据上的表现不佳,这通常是由于模型过于简单或不够复杂,无法充分利用数据集中的特征进行训练。
欠拟合的原因可能有:
- 模型复杂度不足
- 特征选择不当
- 数据预处理不当
- 数据量不足
- 训练不足
b、过拟合
过拟合是机器学习中的一个常见问题,它发生在模型过于复杂,以至于在训练数据上表现的非常好,但在新的、未见过的数据上表现不佳时,过拟合的模型对训练数据中的细节和噪声非常敏感,并可能将这些细节和噪声作为一般规则来学习,导致在测试数据上的泛化能力下降。
过拟合的原因可能包括:
1.模型复杂度过高
2.训练数据不足
3.数据分布不均或存在噪声
4.训练时间过长
c、平衡
在机器学习中,平衡是指找到一个合适的模型复杂度,既能避免欠拟合,又能防止过拟合,从而实现模型在训练数据和测试数据上的良好表现。
为了平衡模型的性能,可以考虑以下几个方面:
1.选择合适的模型
2.调整模型复杂度
3.正则化
4.早停法
5.数据增强与选择
6.交叉验证
7.集成学习
8.监控性能指标
(2)处理方法
a、欠拟合解决办法
1.增加特征数量
2.增加模型复杂度
3.减少正则化参数
4.增加训练数据
5.改进特征工程
6.使用更复杂的算法
7.使用集成学习
b、过拟合解决办法
1.权值衰减
2.提前停止训练
3.正则化
4.减少模型参数
5.Dropout
6.数据增强
7.决策树剪枝
8.交叉验证
8、卷积神经网络
卷积神经网络是一类包含卷积计算且具有深度结果的前馈神经网络,是深度学习的代表算法之一。卷积神经网络具有表征学习能力,能够按照其阶层结构对输入信息进行平移不变分类,因此也被成为平移不变人工神经网络。
卷积神经网络仿照生物的视知觉机制创建,可以进行监督学习与非监督学习,其卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化特征,如像素和音频进行学习,效果较好且没有额外的特征工程要求。
(1)卷积神经网络的结构
主要分为输入层、卷积层、池化层、全连接层、分类层等。
a、输入层
输入层是整个神经网络的输入,在处理图像的卷积神经网络中,它一般代表了一张图片的像素矩阵。其中三维矩阵的长和宽代表了图像的大小,深度代表了图像的色彩通道,从输入层开始,卷积神经网络通过不同的神经网络架构将上一层的三维矩阵转换为下一层的三维矩阵,直到最后的全连接层。
b、卷积层
卷积层是一个网络最重要的部分,卷积层试图将神经网络中的每小块进行更加深入的分析从而获得抽象度更高的特征。
c、池化层
池化层神经网络不会改变三维矩阵的深度,但是它可以缩小矩阵的大小,通过池化层可以进一步缩小最后全连接层中节点的个数,从而达到减小整个神经网络参数的目的。
d、全连接层
在经过多轮卷积和池化之后,在卷积神经网络的最后一班有1-2个全连接层给出最后的分类结果,经过几轮卷积和池化之后,可以认定图像中的信息已经被抽象成信息含量更高的特征。
e、Softmax层
Softmac层主要用于分类问题,通过Softmax层可以得到当前输出属于不同种类的概率分布情况。该层主要采用Softmax函数,又称归一化指数函数,是对数概率回归在C个不同值上的推广,公式如下:
其中,C表示神经网络输出层的输出数量,i表示输出层第i个输出,oi表示第i个输出值,e表示自然常数,∑c j=1 e-oj表示所有神经元输出值的对数概率函数之和。
Python实现代码如下:
def softmax(x):
exp_x = np.exp(x)
return exp_x/np.sum(exp_x)
(2)卷积的相关计算
a、重要参数介绍
卷积核大小
卷积核一班宽和高都比较小,如果输入是图片,宽高一般相同。
卷积核数量
卷积核数量即卷积产生的通道数,不同卷积核在输入数据中寻找不相同的特征,一般卷积核数量大于输入通道数,并且随着卷积的进行卷积核数量越来越多。
步长
在滑动卷积核时,必须制定步长,步长为1,是指卷积核每次移动1个像素,步长为2,是指每次移动2个像素。
零填充
有时候将输入数据用0在边缘处进行填充是很方便的。零填充的尺寸是一个超参数,零填充有一个良好性质,即可以控制输出数据的空间尺寸。
b、参数量及特征图计算
假设输入数据维度为WxHxCin,卷积核尺寸KxK,步长S,卷积核数量Cout,零填充数量为P,则特征图的宽W2,高H2,深D2,计算公式分别为:
W2=H2=(W-K+2P)/S+1
D2=Cout
c、池化层计算
池化层可以有效缩小矩阵尺寸,从而减小全连接层的参数数量,加快计算速度的同事有效防止过拟合问题。
最常用的池化方式是最大池化和平均池化,池化操作只减小矩阵的宽和高,不减少矩阵的深度。
d、全连接层计算
全连接层不保存分类信息,在整个卷积神经网络中起到分类器的作用。
下面为全连接层的计算过程,设x1,x2,x3为全连接层的输入,a1,a2,a3为输出,则有:
假设全连接层的输入维度是800,输出维度是500,则:
1、Loss对全连接的输入求导,如下:
2、Loss对权重系数求导:
3、对偏置系数b求导: