步遥情感网
您的当前位置:首页李宏毅机器学习笔记第6周_机器学习任务攻略

李宏毅机器学习笔记第6周_机器学习任务攻略

来源:步遥情感网


一、Framework of ML

1) 给你一堆训练的资料,这些训练资料里面中包含n个x和跟它对应的ŷ,测试集是你只有x,没有ŷ。

二、General Guide

如下图所示,如果你对Kaggle上得到的结果不满意,你需要做的第一件事是检查training data的loss。我们需要先去观察model有没有在training data上学起来,再去观察testing data的结果。

三、Model bias

1)Model bias的意思是你的model太过简单。我们现在写下一个有未知参数的function,而对于这个未知参数,我们可以代入不同的数值,代入θ1得到一个function,我们把这个function用一个点表示,代入θ2得到另一个function,我们把所有的function集合起来,得到一个function的set。但是这个function的set太小了,以至于这个function的set里面没有包含任何一个function,可以让我们的loss变低。所以说可以让loss变低的function,不在你的model可以描述的范围内。
在这种情况下,就算我们找到了一个θ*,也就是说找到了function当中最好的一个,但也无济于事。相当捞针,针都不在大海里面,我们永远都捞不到针。

四、Optimization Issue

1)Gradient Descent没办法帮我们找出loss低的function,因为Gradient Descent是解一个optimization的problem,找到θ就结束了。问题是θ给我们的loss不够低,但在这一个model里面存在着某一个function,它的loss是够低的,Gradient Descent没有给我们这一个function。

五、Overfitting

1)使用一个极端的例子来说明Overfitting的情况。

2)举例说明,model弹性太大的情况。

3)那现在怎么解决Overfitting的问题呢?有以下两个方向。
第一个方向是增加你的训练集(more training data),这个是最有效的方法。
通过收集更多的资料来添加数据。
Data augmentation(根据自己的理解创造出新的资料,比如做图像识别的时候,你可以将图片左右反转、放大等操作,但一定要合理处理)

第二个方向是给你的模型一些,不要让它有那么大的弹性(比如限定为二次函数)。

4)可以通过以下几种方法给model制造。
第一个是给它比较少的参数,第二个是用比较少的features,第三个是Early stopping,第四个是Dropout,这是在Deep Learning里面用来模型的方法。

5)但是不要给过多的,否则就变成了model bias的问题。

六、Cross Validation

1) 我们要把Training的资料分成两部分,一部分叫做Training Set,一部分叫做Validation Set。现在我们把90%的资料放在Training Set里面,10%的资料放在Validation Set里面。我们在Training Set上训练出来的模型,在Validation Set上面去衡量它们的分数,根据Validation Set上面的分数去挑选结果,再把这个结果上传到Kaggle上面,再去看看我们得到的public的分数。

因为在挑选分数的时候,是用Validation Set来挑选的model,所以public的Testing Set的分数,就可以反应private Testing Set的分数,就比较不容易出现在public上面结果很好,但是在private上面结果很差的情况。
2) 最好的做法就是直接挑Validation loss最小的model,就是你不要去管你的public Testing Set的结果。

七、N-fold Cross Validation

N-fold Cross Validation就是把训练集切成N等份,现在我们把训练集切成三等份,其中一份当作Validation Set,另外两份当Training Set,然后把这件事情重复三次,这样就会得到三个模型。现在不知道哪一个是好的,于是就把这三个模型放在这三个Training跟Validation的data set上面,通通跑一遍,然后把这三个模型在这三种状况的结果都平均起来,再看看谁的结果最好。

八、Mismatch

Mismatch是训练资料和测试资料的分布不一样的时候,就算增加训练资料,也没有任何帮助。


因篇幅问题不能全部显示,请点此查看更多更全内容