误差分析理论_误差修正模型结果怎么看

误差分析理论_误差修正模型结果怎么看当我们找到一个算法去计算某些东西的时候,我们通常要对这个算法进行一定的分析,比如时间复杂度,空间复杂度(前者更加重要),来进行比较,判断一个算法的优劣性.对于一个训练的模型来说,同样需要某种模型来进行分析,例如代价函数

1.目的是什么

当我们找到一个算法去计算某些东西的时候,我们通常要对这个算法进行一定的分析,比如时间复杂度,空间复杂度(前者更加重要),来进行比较,判断一个算法的优劣性.

对于一个训练的模型来说,同样需要某种模型来进行分析,例如代价函数等等,通过比较拟合程度,正确精度等信息来判断出这个模型的好坏,从而选择更好的模型

2.对于模型的评价

(1)测试集,训练集

对于一个数据集合来说,我们最长做的一件事就是把集合划分,一部分集合用来训练数据,而另一部分集合用来测试我们拟合的结果(其实就是让训练好的集合去预测没见过的数据,就能检测出我们模型的拟合效果)这是肥肠常用的一种方法

误差分析理论_误差修正模型结果怎么看

如上图所示,我们把前面70%的数据单独取出来.作为训练模型和用到的数据.而剩下的30%,则称之为验证集合.

和前面一样,我们通过最小化训练集合的代价函数,来让这个模型处于”最佳状态”

误差分析理论_误差修正模型结果怎么看达到最佳状态以后,我们可以分别计算对于测试集合和训练集合的拟合效果,使用不用惩罚参数的代价函数来进行衡量(最小二乘error)

误差分析理论_误差修正模型结果怎么看其中我们主要关注test error 的数值,这个一般反映了函数对于未曾见过的数据的预测效果

(2)交叉验证集合

有时候单独的一个测试集合效果可能不是很好,因为单一验证集合可能因为种种原因产生’过于乐观’的情况,即在验证集合上的效果可能会比实际应用会好很多.

为了避免这种情况,也为了验证能更加有效,在这两个集合的基础上,我们又划分出一些数据,称之为交叉验证集合(cross validation validation是验证的意思,这里也可以称之为cv)

误差分析理论_误差修正模型结果怎么看

使用交叉验证集合,让数据具有更多颗粒度和隔离性,尽量从多个角度去测试一个模型的效果 ,通俗点可以理解为:多测试几次

我们使用Jcv来实现对于交叉测试集合的状态评估

误差分析理论_误差修正模型结果怎么看

在下面我们会主要使用Jcv来统称所有的测试集合, 将训练集合和交叉验证集合进行配合,我们客体分析出一些情况.

误差分析理论_误差修正模型结果怎么看

 (3)偏差bias和方差variance

模型在有些时候效果不太理想,其原因可能是就是这两种

高偏差bias,指的是模型在训练数据上就表现得很差,相比于正常的表现(一般我们会存在某一个baseline performance,比如说真人去做的时候的代价函数,作为一个比较标准)Jtrain显得更高,这种时候一般是high bias 引起的情况

高方差variance, 指的是模型在训练数据上表现的太好了(这个太好了的意思指的是,模型在训练数据上完美契合,但是对于交叉验证的估计可能不是太好).常见的特征是Jcv > Jtrain

举个例子,在某个函数拟合时候效果可能是这样的

误差分析理论_误差修正模型结果怎么看

对于一个模型来说,不可能是二者兼顾的,我们需要在其中做出一些tradeOff(权衡) 一些因素可能会影响到bias和variance的变化,下面我会使用图片的形式作为展示内容.

模型函数的高次项阶数:degree of polynomial

其实从上面那张图就可以看出来,随着高次项阶数的增加,训练效果是一定会越变越好的

但是对于验证集合来说,初步的高次项拟合可以向着更好的拟合靠拢,但是一旦发生了过度拟合的情况,就会产生一些高方差,对于预测效果会更差

误差分析理论_误差修正模型结果怎么看

 也就是说,从这张曲线分析上,过低的多项式高次项可能导致高偏差

而过高的多项式高次项则会导致高方差

正规化参数 \lambda

正规化参数又叫惩罚参数penail parameter,具体的原理解释可以看前面的博客

惩罚参数起到的效果是让特定的某个权重分量wi在梯度下降的时候下降的更快,在一般的代价函数计算中,我们通常是对所有参数进行统一惩罚,让权重分布的更加均衡(全都接近0).

简而言之就是惩罚参数越大,w越均衡

但是惩罚参数过大的时候,产生的影响就是权重失效(全变成很接近0的数字了),最后你的模型只剩下bias了,这不就妥妥的high bias,并且与此同时,连喂给ai的训练数据都不怎么杨,更何况是测试数据,所以过高的惩罚参数同样会引发高方差问题

但是惩罚参数过小,对于权重的控制能力太多,高次项产生了高方差的影响.

误差分析理论_误差修正模型结果怎么看

所以随着惩罚参数的变化,我们可以有这个曲线

误差分析理论_误差修正模型结果怎么看

学习规模:

训练数据的规模同样是影响因素,这个可能和常规的认知有些偏差一哈

虽然大量的训练数据可以让模型更快地拿捏数据的走势,但是训练数据如果太多,在拟合方面肯定是无法好地照顾到所有的数据点

这就导致了,如果训练数据过多,会导致高偏差,但是会降低方差

(图片后续补充)

(4)处理方法

当我们通过曲线等等手段知道了问题出在高方差还是高偏差的时候,我们可以采用一些手段进行处理

高偏差的修正方法: high bias

1. 增加更多的特征值

2. 增加更高次项的特征值

3. 增加惩罚数值

高方差的处理方法: high variance

1. 增加更多训练数据

2. 减少多项式次数

3. 适当减少惩罚数值

此外,比较大型的神经网络系统也是一种降低方差的方法,只要在训练的时候用了比较合适的惩罚参数

2.对于训练误差的处理

对于一些特别的数据和情况,我们需要进行一个专门化的处理,在后面会提到强化学习这一特点

(1)专门化数据处理

对于一些特殊的情况,模型的识别可能不是那么理想,例如对于识别数字,发现对于数字9的识别效果不好,那么训练数据中就可以增加一些9有关的数字,来专门增强对于某个他特征学习效果不理想的情况

(2)数据添加

训练数据需要重新生成的时候,一般有两种方法,第一种是数据修改,通过对原有数据的一些修改,比如图像的旋转,失真操作(distort),生成新的数据

第二种方式是数据生成,使用人工生成的数据来组合成新的训练集合

(3)迁移学习

迁移学习的意思为将一个模型的计算结果作为另一个模型的输入

(关于这个板块主要是理解一下概念即可,后续有机会仍然会继续补充

3.precision,recall (精度和召回率)

cv代价函数是一种很常用的,衡量模型的方式,但是这种方式仍然只是其中的一种

比较算法的优劣性,我们可以使用另一种量化的评价方法,precision and recall

这种方法经常用于神经网络的识别操作中,我们举个例子,这其中1是我们想要监听的类的展示

误差分析理论_误差修正模型结果怎么看

其中精度就是所有检测值中的正确率

召回率是所有正确样本中检测到了多少

这两个东西需要一个平衡,所以存在F1 score衡量两个指标

F1score=\frac{1}{2}(\frac{1}{precision}+\frac{1}{recall})

今天的文章误差分析理论_误差修正模型结果怎么看分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/84139.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注