吴恩达机器学习笔记EP8

【构建完模型之后】吴恩达机器学习笔记EP8(P71-P80)

从今天开始我将学习吴恩达教授的机器学习视频,下面是课程的连接1.1 欢迎来到机器学习!_哔哩哔哩_bilibili。一共有142个视频,争取都学习完成吧。


学习的优化

在构建完一个模型之后,我们还可以做一些事情让模型的表现更好一点。以下是一些可以做的事情:

获取更多训练数据

用更少的特征

获取额外的特征

添加多项式特征

减少λ或者增加λ

模型评估

我们需要有一个专门的数据集去评估模型的性能。

所以在原有的数据集中按一定比例,划分成了训练集和测试集。

这里以回归为例:

为了评价模型的好坏,一般会想一般的代价函数一样计算测试集和训练集中的J,但是这里不用加正则化模块。

如下面的右图,如果在训练集中的J很低,但是在测试集中的J很高,那就说明模型不太能在没有见过的数据有有很好的泛化能力。这也就是过拟合。

分类问题中除了计算代价函数的公式不同以外,其它都相同。

模型选择和训练交叉验证测试集

以线性回归为例去选择模型:

一般会计算d阶多项式的Jtest,选择结果最低的作为模型。

但是只有一个测试集来验证,其本身只能验证模型的泛化能力,并不能很好地说明模型的性能。

所以这里再将数据集划分为三块。

分别是:训练集、交叉验证集(cross validation, cv)和测试集。

然后我们计算交叉验证的代价J,用cv的J来选择模型。

一般在cv中计算得到的J来选择模型。

用test的J来测试模型的泛化能力。

用cv的J选择模型让模型有更好的性能。

诊断偏差和方差

如下图,多项式次数d选择比较小时,之前所说的train中的J很高,cv的J也很高,这就是欠拟合。

d选择比较大时,在train中的J很低,cv中的J很高,这就是过拟合。

所以选择合适的多项式次数才不容易发生过拟合或者欠拟合。(也就是多项式次数不能过多或过少)

下图是cv和train中的J随多项式次数变化的曲线。

多项式次数在中间的时候模型的性能最好。

正则化和偏差或方差

下图只正则化中的λ与模型拟合度之间的关系。

λ过大会欠拟合,称之为高偏差;λ过小会过拟合,称之为高方差。

所以我们需要找到一个合适的λ。

做法就是尝试不同的λ,找到cv的J最小的一个λ值。

然后我们选择其对应的参数,并且在test中验证。

下图就是λ和J还有多项式系数与J的关系。可以看出在中间的模型性能比较好。

建立表现基准

因为期望得到一个零误差的模型是不现实的。

所以我们要建立一个基线去衡量比较模型的性能。

一般baseline可以是:人类表现水平、竞争算法表现和根据经验的猜想。

学习曲线

下面是训练集大小和J的关系。

随着训练集扩大,训练误差增加,因为其很难拟合所有的训练示例。

随着训练集参数变多,模型能更好地拟合数据,但到数据很多之后,模型的变化就不再明显。

有很高方差时,增大数据集对模型性能的提升还是有不错效果的。(可以有效降低cv的J)

高方差和高偏差的应对方式

下面罗列了修复高方差和高偏差的一些应对方式,就是一开始说的那六种方法。

方差、偏差与神经网络

当训练集不是太大的时候,一个神经网络通常是一个低偏差的模型,往里面加资料是好的

拥有一个更大的神经网络几乎没有坏处,其可以让模型的性能变好,不过会增加计算量。

机器学习算法迭代发展

最后是机器学习算法的迭代发展过程:

先训练一个模型,然后检查偏差和方差,再选择修改模型或者数据让模型变得更好。

然后不断重复以上步骤,直到模型有好的效果。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇