【机器学习笔记】看到就记下

1、数据归一化

在这里插入图片描述
对于这两个样本,若采用公式计算距离:
在这里插入图片描述
可以发现,20000-32000 这组数据会对距离大小产生很大的影响,而另外两组数组就显得很小儿科。但我们希望三种特征,对距离的影响不要这么大(除非故意的),就通过数据归一化,来使得三种特征同样重要。将数值化到【0,1】或者【-1,1】。
在这里插入图片描述
该公式把数组转化到【0,1】,min和max表示特征矩阵中最小特征值和最大特征值。

2、偏差和方差,与正则化的关系

高偏差(欠拟合):
此时多项式次数较低,且训练误差很大,验证集误差也很大。

高方差(过拟合):
此时多项式次数较高,训练误差很小,但是验证集误差很大,远大于训练集误差。

如何选择正则化参数:
1、可以 尝试多种正则化参数可能,如0.01、0.02、0.03…
2、在各个情况下,最小化 J ( Θ ) J(\Theta) J(Θ),得到 Θ \Theta Θ
3、把 Θ \Theta Θ代入计算得到交叉验证误差,并从中选择交叉验证误差最小的,所对应的 Θ \Theta Θ
4、用选出来的 Θ \Theta Θ就可以计算测试误差,来评估模型的拟合能力

当正则化参数变化的时候,偏差/方差的情况:
这里定义训练误差和交叉验证误差都没有加入正则化项,只有 J ( Θ ) J(\Theta) J(Θ)有正则化项。
在这里插入图片描述
对于不同取值的正则化参数,绘制出对应的训练误差和交叉验证误差的曲线:
在这里插入图片描述
λ \lambda λ较小时,近似于没有正则化,此时会出现过拟合(高方差),因此训练误差较小,交叉验证误差很大;
λ \lambda λ较大时,正则化太厉害,此时会出现欠拟合(高偏差),因此训练误差很大,交叉验证误差也很大。

3、学习曲线

绘制学习曲线用来帮助判断模型处于高偏差还是高方差的情况。

1)高偏差:
在这里插入图片描述
随着训练集样本数量逐渐增多,训练误差会逐渐增大趋平,交叉验证误差会逐渐减小趋平。
因此,当处于高偏差的时候,就算训练样本数量再多,交叉验证误差、测试误差等也不会减小,主要原因是模型本身就不好,所以再怎么拟合也拟合不好。

2)高方差:
在这里插入图片描述
随着训练集样本数量逐渐增多,训练误差会逐渐增大,交叉验证误差会逐渐减小。但是两者中间有差距。
在这里插入图片描述
发现如果增大m,两个曲线会慢慢靠近。
因此,在高方差的情况下,增大训练样本数量对训练是有用的。

4、偏斜类

偏斜类:一个类的样本数量比另一个类多出很多很多,此时你的机器学习算法可能还不如非机器学习算法准确率高。通常会把很稀少的类,定义为y=1。
比如100个人中,99人男性(y=0),1人女性(y=1)。机器学习算法得出准确率98%,似乎是很高了。但是我们可以设计一个算法,对于所有样本一直预测输出为男性(y=0),此时得到准确率99%,比机器学习算法更好。
此时,对于偏斜类,不能用准确度或分类精度,来判断算法是不是好的。

1)此时要采用的评估度量:查准率/召回率
在这里插入图片描述
预测为真,实际也为真:真阳性(TP)。
预测为真,实际为假:假阳性(FP)。
预测为假,实际为真:假阴性(FN)。
预测为假,实际为假:真阴性(TN)。

查准率(Precision):对于所有预测为真的样本,实际上有多少是真。
(注意和准确率的区别,准确率是指对于所有样本,有多少是预测正确的,其中包含了真阳性和真阴性)
查 准 率 = T P T P + T N 查准率 = \frac{TP}{TP+TN} =TP+TNTP
召回率(Recall):对于所有实际上为真的样本,我们预测了多少为真。(找全)
召 回 率 = T P T P + F N 召回率 = \frac{TP}{TP+FN} =TP+FNTP

此时对于非机器学习算法(一直预测为y=0),那么召回率=0,就可以认为这个分类算法不好,即使它准确率高。

2)权衡召回率和查准率:
通常查准率和召回率是一个高,一个低。
在这里插入图片描述
此时绘制出召回率和查准率关系的曲线。threshold就是预测为1的门槛。
在这里插入图片描述
查准率较高,意味着预测为y=1的门槛更高,此时召回率就低(找不全)。
召回率较高,意味着门槛比较低,此时虽然你预测很多为y=1,但是其中相当一部分不是y=1,因此查准率就比较低。

那么在什么样的情况下(召回率P和查准率R),算法才是比较好的呢?
此时需要另一个评估度量:F1得分。
F 1 S c o r e = 2 P R P + R F_1 Score = 2\frac{PR}{P+R} F1Score=2P+RPR
范围在【0,1】。
此时可以选择几个threshold,分别计算出交叉验证集的P和R,然后根据F1得分来判断哪个好。

5、感受野

在卷积神经网络中,感受野(Receptive Field) 的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。
在这里插入图片描述

6、训练策略

(1)Large Mini-batch Distributed Training
分布式训练,使用多GPU进行分布训练,扩大batch_size并增大学习率来加快网络。
(2)Label Smoothing 标签平滑
Lable Smoothing 是分类问题中错误标注的一种解决方法。
对于多分类问题,常常把向量转化为one-hot-vector(独热向量)。one-hot就是不用1,2,3,4,5来表示类别,而用[1,0,0,0,0]来表示1。
one-hot带来的问题:容易造成过拟合;全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难适应。会造成模型过于相信预测的类别。
(3)Auto Augmentation 自动数据增强
设计了一个搜索空间,该搜索空间中的一个策略包含了许多子策略,为每个小批量(mini-batch)中的每张图像随机选择一个子策略。每个子策略由两个操作组成,每个操作是图像处理函数,以及使用这个操作的概率和幅度。 使用搜索算法来寻找最佳策略,使得准确率最高。
(4)Regularization 正则化

7、BN

BN:批量归一化。
batch就是设定的图片数量batch_size。
归一化的过程:

  1. 求数据均值
  2. 求数据方差
  3. 进行标准化(正态)
  4. 训练参数y,b
  5. 把卷积输出,通过y,b的线性变换,得到新的值

BN解决的是梯度爆炸和梯度消失的问题。
对于梯度消失,假设第一层的梯度小于1,学习速率很慢,再回传的过程中,梯度越来越小,学习速率越来越慢,到最初几层就基本不学习。

特征图作为BN的输入,通过BN计算保存了y和b,使得输入与输出不变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值