Regression - Case Study

1.What's Regression?

file

2.A Example Application

已知宝可梦进化前的数值,进行一个Regression来预测它进化后的数值.

file

Step 1:Find a Model

选取 a set of function,f1,f2...fn,即一系列函式,构成一个Linear Model

file

Step 2:Goodness of Function

用 Training Data去评判Model中函式的好坏

每一个Training Data都有一个真实的Yn

file

file

定义Loss function L,来验证函式f1,f2...的好坏,L即为function的function

input: a function

output:how bad it is

file

得出原model中当取不同函式时(即w,b的值不同时),Loss function的值,并画出图像,颜色越深代表Loss越小,效果越好

file

选出Loss最小的函式,即最好的f

file

Step 3:Gradient Descent

通过Gradient Descent可以让我们求出Loss的最小值以及对应的参数的值

我们先假设如果Loss Function只具有一个参数:

file

我们肯定是需要求他的一个微分,为了让Loss减小,如果在某一点处(会找一个初始点)的导数大于0,肯定要让w减小往左走;反之导数小于0,肯定要让w向右走.

移动多少与微分值和它前面的系数有关.

file

于是,经过数步可以求到一个Local minima(局部最优,即函数的极小值),当然也有可能你运气好,刚好求得的就是global minima(全局最优,即函数的最小值)

file

有了以上知识的铺垫,我们来想一下今天的这个问题,它具有两个参数

当然通过求偏导数来解决问题.

file

补:偏导数的求法

file

经过数次移动后,我们可以到达一个Loss最小的地方,并得知此时参数w,b的值

file

思考:这个会不会有什么运气不好求得的参数值不是全局最优的问题么?

​ 显然是不会的。
因为它是一个凸面的函数,弯下去就不会再弯上来,区域内极小值即最小值。

联系用偏导求出来的多元函数极值即为最值.(高等数学中有提到)

我们通过上述计算得到参数的值了,那么这个function效果怎么样呢

file

当然效果好不好,还得用在Testing Data上

file

当我们选择其他的model时,重新计算参数的值,并观察效果

二次式:

file

三次式:

file

四次式:

file

五次式:

file

这么多model,我们就不可避免要进行选择

file

可以清晰看见,并不是选择的函式越复杂越好,复杂的函式反而会过拟合(后面会说),反正可以看见当次数为3时,在Testing Data上的效果最好

file

当我们选好模型之后,是不是就可以完事了呢,当然不是,因为可以存在着一些其他复杂的因素对我们的实验造成影响,当收集测试更多的数据时问题就越明显

file

例如在这个宝可梦种族值预测实验中,宝可梦的种类就是一个不可忽视的因素,因为不同种类的宝可梦,使用的肯定不是一个函式.

file

这种问题我们直接回归到函式设计那一步,直接弄一个类似电路0,1选择那种的超级函式就行,是这个物种的话它前面的系数就为1,其他的系数为0.

file

file

如果此时还考虑其他因素,就一并加上.

file

file

就像上面那样,考虑到了一大堆因素,结果可能会导致过拟合,所以还差一步正则化(使函式变得平滑)

在整个函式后面加一项关于w的式子,它拥有一个系数Lambda.

新添的式子不带b是因为b是个常数,只会上下移动函式图像,不会改变其平滑程度,对实验无意义.

file

系数越大,wi的影响就相对越小,function就越平滑

但系数并不是越大越好,太大依旧会使error变得很大,所以应该选择合适的系数

file

经过一番努力,最终确定系数为100

最终的Testing Error=11.1

小总结

file