本章课程PDF,视频(油管B站)。

Regression:Output a scalar。

Regression可以用于预测股票市场、无人驾驶、推荐系统,最重要的是可以预测宝可梦(我更习惯于叫神奇宝贝)的CP值,宝可梦将会在李老师课程中出现多次,当然,本节课就是用这个例子讲解。

Step 1:Model

所谓的Model就是a set of function。在这个例子中,我们可以把function写成$ y = b + w \cdot x_{cp} $,因为$b$跟$w$可以带入各种值,所以function有无穷多个。这个model我们称之为Linear model:$ y = b +\sum w_i \cdot x_i $ ($w_i$:weight,$b$:bias)。

Step 2:Goodness of Function

首先准备好training data

Training Data

我们需要使用Loss Function衡量function的效果好坏。

Loss Function $L$: Input:a function,output:how bad it is

此时,可以如下定义Loss Function:

将Loss Function可视化绘图,图上每个点就是一个function,图上蓝色代表loss value很小,红色代表loss value很大。

Step 3:Best Function

可以用线性代数迅速求得解。还可以使用更general的方法,能够用在各种不同的task上,这个方法就是Gradient Descent

Gradient Descent首先随机选取初始值,然后计算此处切线的斜率,斜率如果小于0,如图上小猴子位置,显然切线左边高右边低,此时应该把参数向右边移以减少Loss的值。如果斜率大于0,说明切线左边低右边高,应该把参数向左边移以减少Loss的值。

learning rate控制学习速度的快慢。

有时候经过多次迭代会停在local minima,不是我们想要的global minima,所以不同的随机会得到不同的结果,很看人品。

当有两个参数的时候,Gradient Descent的过程如上图所示。

Gradient Descent可视化过程如上图所示。颜色代表Loss的值,越深代表值越小。

参数如果走到一个saddle point(鞍点),Gradient Descent也会停下来。

公式推导

How’s the results?

可以看出,在Testing Data的error略大于Training Data的error。

Selecting another Model

越复杂的model在训练集上的error越小。

Overfitting

一个比较复杂的model并不一定总是在testing data上给我们比较好的performance。

Overfitting就是model在training data上表现很好,在testing data上表现不好。

应对Overfitting的方法:

  1. 收集更多的数据。

  2. 以前的模型有一些隐藏的因素没有考虑进去。所以我们需要重新设计一番。

    根据宝可梦种类采用不同的function

    Regularization

    我们使用新的Loss Function:

    使用这个Loss Function找到的最好的function不止可以让$L$最小,同时还要是$w$很小的function。$w$很小的Function意味着Function是smooth(平滑)的。

    我们相信在多数的状况下,smoother function更像是正确的function。

    $\lambda$设置的大一些,找到的function就会越smooth。

    从上图中可以发现,$\lambda$越大,Training Error越大。

    我们希望选到smooth function,但是不要too smooth。

    选择$\lambda$,获得最好的model。

如果本博文对您有帮助,可以赞助支持一波博主~