注:用神奇宝贝案例来研究regression
参考:link
问题引入:预测宝可梦升级之后的CP值
- input——进化前的宝可梦的一些属性值
- output——进化后的宝可梦的CP值
图中f():表示我们要找的function
regression的具体过程
STEP1:Model(function set)
STEP2:Goodness of Function
损失函数Loss function
为了衡量function set中的某个function的好坏,我们需要一个评估函数,即Loss function,损失函数,简称L;loss function是一个function的function
L(f)=L(w,b)
input:a function;
output:how bad/good it is
Step3:Best Function
我们已经确定了loss function,他可以衡量我们的model里面每一个function的好坏,接下来我们要做的事情就是,从这个function set里面,挑选一个最好的function。
那么怎样找到这个最小的参数呢? ——Gradient Descent(梯度下降)
梯度下降(Gradient Descent)
单个参数
两个参数
Gradient Descent的缺点
gradient descent有一个令人担心的地方,也就是我之前一直提到的,它每次迭代完毕,寻找到的梯度为0的点必然是极小值点,local minima;却不一定是最小值点,global minima
但是在linear regression里,loss function实际上是convex的,是一个凸函数,是没有local optimal局部最优解的,他只有一个global minima,visualize出来的图像就是从里到外一圈一圈包围起来的椭圆形的等高线(就像前面的等高线图),因此随便选一个起始点,根据gradient descent最终找出来的,都会是同一组参数
How’s the results?
training data:
testing data:
How can we do better?
二次:
三次:
四次:
五次:
五次模型选择对比:
在training data上,model越复杂,error就会越低;但是在testing data上,model复杂到一定程度之后,error非但不会减小,反而会暴增,在该例中,从含有项的model开始往后的model,testing data上的error出现了大幅增长的现象,通常被称为overfitting过拟合
讨论其他参数
也就是说,我们期待参数Wi越小甚至接近于0的function,为什么呢?
因为参数值接近0的function,是比较平滑的;所谓的平滑的意思是,当今天的输入有变化的时候,output对输入的变化是比较不敏感的