学习算法评估

一. 评估预测函数

  • 获取更多的训练集Getting more training examples
  • 尝试使用少量的特征Trying smaller sets of features
  • 尝试额外的特征Trying additional features
  • 尝试多项式特征Trying polynomial features
  • 增减Increasing or decreasing λ

在完成上述解决误差的方法尝试之后,继续评估新的预测函数。
预测函数可能会对训练集表现为低误差但实际预测却不精准(过拟合)。因此,可以把训练集分成两组:一个训练组,一个测试组。一般情况下,训练组占总数据集的70%,测试组是剩下的30%。

之后:

  • 使用训练组学习 Θ, 最小化 Jtrain(Θ)
  • 计算测试组误差Jtest(Θ)
测试组误差The test set error
  • 线性回归: Jtest(Θ)=12mtest∑mtesti=1(hΘ(x(i)test)−y(i)test)2
  • 对于分类算法~错误分类误差(也叫0/1错误分类误差):


这会基于错误分类得到一个0/1误差结果。测试组的平均测试误差:

这会计算出错误分类的比例.

二. 模型选择和训练/验证/测试组Model Selection and Train/Validation/Test Sets

仅因为学习算法非常好的拟合训练组,并不意味着它就是一个好的算法。可能只是过拟合。预测函数的误差在训练参数的这组数据上比其他数据组低。

我们可以对不同阶数的多项式模型使用系统化的方法来鉴别‘最好的’函数。测试每种阶数的多项式然后查看误差解雇来选择模型。

新的划分训练集方法:

  • 训练组: 60%
  • 交叉验证组: 20%
  • 测试组: 20%

之后就可以针对三组不同的数据计算三个独立的误差值。

使用训练组的数据来最优化不同阶的多项书Θ参数。
使用交叉验证组的数据找到最小误差的多项式阶数 d 。
使用测试组的数据评估泛化,Jtest(Θ(d)), (d = 最低误差的多项式参数theta);
这样子,多项式的阶数d就不是用测试组的数据来训练的了。

核心思想

用测试组计算theta参数,然后用这个参数计算Jtest和JCV

三. 诊断偏差vs.方差 Diagnosing Bias vs. Variance

接下来检验关系多项式d和我们预测函数的欠拟合或者过拟合的关系。

  • 我们需要分辨是偏差还是方差问题导致的低质量预测。
  • 高偏差是欠拟合和高方差是过拟合。 理想化地,我需要找到这两点的黄金分割。

训练误差将随着多项式阶数d趋向减少。
同时,交叉验证误差随着d增长到某个点趋于下降,之后随着d增加又将继续增加,形成一个二次抛物线形。

高偏差(欠拟合): Jtrain(Θ) 和 JCV(Θ) 都很高。并且, JCV(Θ)≈Jtrain(Θ).

高方差(过拟合): Jtrain(Θ) 将会很低 JCV(Θ) 将比 Jtrain(Θ)高很多。

下图总结:

四、正规化和偏差/方差Regularization and Bias/Variance

在上图中,我们可以看到,随着λ增长,我们的拟合曲线越陡峭。另一方面,随着λ接近0,拟合趋于过拟合。所以,如何选择我们的λ参数来恰好拟合?为了选择模型并正则化λ项,我们需要:

  1. 创建λ的列表 (i.e. λ∈{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24});
  2. 创建一系列不同阶多项式的模型或者不同的变量。Create a set of models with different degrees or any other variants.
  3. 迭代遍历所有λs, 对每个λ ,遍历所有模型来学习 Θ参数.
  4. 学习选中的模型的参数 Θ , 然后用选中的λ参数的Jtrain(Θ) .
  5. 用学习得出 Θ参数(对应的选中的λ)计算训练误差Jtrain(Θ)不包含正则项或者 λ = 0.
  6. 用学习得出 Θ参数(对应的选中的λ)计算交叉验证误差JCV(Θ)不包含正则项或者 λ = 0.
  7. 选择产生最小交叉验证误差的组合.
  8. 用该组合的 Θ 和 λ, 应用到Jtest(Θ) 来看看是否在需要处理的问题中有良好的泛化。
Matlab 代码
for i = 1:length(lambda_vec)
    lambda = lambda_vec(i)
    theta = trainLinearReg(X,y,lambda);
    error_train(i) = linearRegCostFunction(X, y, theta, 0);
    error_val(i) = linearRegCostFunction(Xval, yval, theta, 0);
end

五. 学习曲线 Learning Curves

如果算法的训练集很小(只有两三个点),那很容可能误差会为0。因为我们的总是可以找到二次曲线完美拟合数据。因此:

  • 随着训练集变得越来越大,二次函数的误差会越来越大.
  • 误差值在到了某个特定训练集数量m后会趋于稳定.
1. 高偏差

小训练集:
Jtrain(Θ) 低,JCV(Θ) 高
大训练集:
Jtrain(Θ) 和 JCV(Θ) 都高
并且 Jtrain(Θ)≈JJCV(Θ).
如果是高偏差学习算法,更多的训练数据对于这个算法本身也没有帮助。

2. 高方差

训练集小:
Jtrain(Θ)低,JCV(Θ)高.
训练集大:
Jtrain(Θ)随着训练集变大而变大
JCV(Θ)持续降低然后趋于稳定,无限接近某个值。并且 Jtrain(Θ) < JCV(Θ) 但他们之间的差别还是显著的.
如果是高方差算法,增加训练集数量可能会有帮助.

六. 后记

我们的决策过程如下:

  1. 获取更多的训练集数据: 修正高方差
  2. 尝试更小的特征集Trying smaller sets of features: 修正高方差
  3. 增加特征: 修正高方差
  4. 增加多项式特征: 修正高偏差
  5. 降低λ: 修正高偏差
  6. 增加λ: 修正高方差.
  7. 诊断神经网络

参数少的神经网络更容易欠拟合A。计算代价也较低。
参数越多的神经网络越容易过拟合。计算代价也较高。这种情况下,用正则化(增加lambda)来处理过拟合。
一开始用单隐藏层作为默认出事是很不错的。然后用交叉验证组的数据来训练它。最后在选择误差小的。

模型复杂度影响 Model Complexity Effects:

低阶多项式(低模型复杂度)会表现为高偏差和低方差。这时模型拟合都很差。
高阶多项式(高模型复杂度)会表现为低偏差,高方差。这时会极其好的拟合训练集,非常差的拟合验证集。
在实际操作中,我们会选这两者之间的一个可以很好泛化又能合理地拟合的度。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容