目录
一、机器学习框架&实践攻略
1. 总览
2. 训练误差较大时:
1.模型偏差
模型偏差可能会影响模型训练。举个例子,假设模型过于简单,一个有未知参数的函数代θ1 得到一个函数 fθ1(x),同理可得到另一个函数 fθ2(x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模型可以描述的范围内。在这种情况下,就算找出了一个 θ∗,虽然它是这些蓝色的函数里面最好的一个,但损失还是不够低。这种情况就是想要在大海里面捞针(一个损失低的函数),结果针根本就不在海里。
可以通过给模型更大的灵活性来克服模型偏差。例如引入更多的参数来使模型更好地学习。一个建议判断模型灵活性的方法,通过比较不同的模型来判断模型现在到底够不够大。
2. 优化问题
一般只会用到梯度下降进行优化,这种优化的方法很多的问题。比如可能会卡在局部最小值的地方,无法找到一个真的可以让损失很低的参数。这就需要去优化损失函数。
3.训练误差较小时:
1.测试误差较小:
找到了较好的模型,任务已经结束。
2.测试误差较大:
1.过拟合
为什么会有过拟合这样的情况呢?举一个极端的例子,这是训练集。假设根据这些训练集,某一个很废的机器学习的方法找出了一个一无是处的函数。这个一无是处的函数,只要输入 x 有出现在训练集里面,就把它对应的 y 当做输出。如果 x 没有出现在训练集里面,就输出一个随机的值。这个函数啥事也没有干,其是一个一无是处的函数,但它在训练数据上的损失是 0。把训练数据通通丢进这个函数里面,它的输出跟训练集的标签是一模一样的,所以在训练数据上面,这个函数的损失可是 0 呢,可是在测试数据上面,它的损失会变得很大,因为它其实什么都没有预测,这是一个比较极端的例子,在一般的情况下,也有可能发生类似的事情。
如果模型灵活性很大,则模型可以变成各式各样的函数,没有给它数据做为训练,可以产生各式各样奇怪的结果。因此可以通过对模型加一些限制来避免过拟合问题。
限制的一些方法:
给模型比较少的参数,用比较少的特征,早停(early stopping)、正则化(regularization)和丢弃法(dropoutmethod)。
但也不要给太多的限制,当限制太多时可能使模型性能下降,使其在训练集上的误差就快速增大。
合理选择模型的方法:
把训练的数据分成两半,一部分称为训练集(training set),一部分是验证集(validation set)
如果随机分验证集,可能会分得不好,分到很奇怪的验证集,会导致结果很差,如果有这个担心的话,可以用 k 折交叉验证(k-foldcross validation),如图所示。k 折交叉验证就是先把训练集切成 k 等份。在这个例子,训练集被切成 3 等份,切完以后,拿其中一份当作验证集,另外两份当训练集,这件事情要重复 3 次。即第一份第 2 份当训练,第 3 份当验证;第一份第 3 份当训练,第 2 份当验证;第一份当验证,第 2 份第 3 份当训练。
2.不匹配
模型预测的与实际结果截然相反,这就叫做不匹配。不匹配与过拟合不同,过拟合可以通过搜集更多数据来解决,但是不匹配是指训练集与测试集的分布不同,增加数据也不能让模型做得更好,所以这种问题要怎么解决,匹不匹配要看对数据本身的理解了,我们可能要对训练集跟测试集的产生方式有一些理解,才能判断它是不是遇到了不匹配的情况。
下图中2月26这个点就属于不匹配问题。
标签:误差,Task3,函数,训练,验证,AI,李宏毅,模型,拟合 From: https://blog.csdn.net/Hh2767474144/article/details/141789263