Regression:Output a scalar。
Regression可以用于预测股票市场、无人驾驶、推荐系统,这里的例子是可以预测宝可梦的CP值
Step 1:Model
所谓的Model就是a set of function。在这个例子中,我们可以把function写成
y=b+w⋅xcp,因为b跟w可以带入各种值,所以function有无穷多个。这个model我们称之为Linear model:y=b+∑wi⋅xi (wi:weight,b:bias).
Step 2:Goodness of Function
首先准备好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越小
一个比较复杂的model并不一定总是在testing data上给我们比较好的performance。
Overfitting就是model在training data上表现很好,在testing data上表现不好。
应对Overfitting的方法:
-
收集更多的数据。
-
以前的模型有一些隐藏的因素没有考虑进去。所以我们需要重新设计一番
根据宝可梦种类采用不同的function
Regularization(正则化)
我们使用新的Loss Function:
使用这个Loss Function找到的最好的function不止可以让L最小,同时还要是w很小的function。w很小的Function意味着Function是smooth(平滑)的。我们相信在多数的状况下,smoother function更像是正确的function。λ设置的大一些,找到的function就会越smooth。
从上图中可以发现,λ越大,Training Error越大。
我们希望选到smooth function,但是不要too smooth。
选择λ,获得最好的model。