Regression
Case Study ->Pokemon
Gradient的定义:
将对参数的偏微分,排列成一个向量.
Gradient Descent 的不足:
对于存在Local optimal的模型的处理不佳.
但是Linear Regression的模型是convex的,所以不存在local optimal的情况.
##关于模型训练结果的分析
How’s the result?
因为我们更想得到的是generalization的结果,所以我们最关心的是error on new data(testing data) instead of training data itself.
Training data上看起来更准一点就说明model更准了吗?
过拟合与交叉验证.
How can we do better?
Selecting another Model
重新设计模型:
原model:
y=b+wxcp;
现在的model:
y=b+w1xcp+w2x2cp;
How can we do more better?
y=b+w1xcp+w2x2cp+w3x3cp
对于三次和二次在pokemon例子上的比较
Slightly better.
什么是“好的”model?
对于宝可梦模型,我们先后使用了1次2次…4次进行拟合,我们发现,随着模型的复杂度上升,我们的error on training data确实在下降,但是我们的error on testing da ta 却反而上升了.
显然,当w4=0时,三次模型所涵盖的表达都可以用4次模型的model表达出来.
Overfitting
为什么复杂model在training data上得到这么好的结果,而在testing上的error这么可怕呢?
比如不是选择复杂的model,而是选择一个合适的model.
Let’s collect more data
What are the hidden factors?
进化后物种的影响仍是很大的.
所以刚才的model本身就不好.
Back to Step1.
Redesign the Model
不同的物种,不同的linear func
可以用一种更奇妙的函数表示形式,将之前有if的式子表示成带信号处理(i.e.“是”即1,“不是”即0);
当我们的输入xs=Pidgey时,其即y=b1.1+w1xcp
Are there any other hidden factors?
把我们想到的factor 以后 都back to step 1.
如何处理overfitting?
Regularization
重新定义我们的loss function,把knowledge放进去进行Redesign.
Loss:y=b+∑wixi;
这里面这个求和是把种类不同考虑进去了。
L=∑n(ˆyn−(b+∑wixi))2+λ∑(wi)2
对于正则项:我们期待一个越小的wi这个function越好.
参数接近0时:
平滑
平滑是什么意思?
输入有变化时,整体的变化对输入的变化是 不敏感的.
y=b+∑wixi;
如果我们的输入变化Δx,那么相应的,我们的输出变化,wiΔxi.
wi越接近0,function越平滑
为什么我们喜欢平滑的function?
因为当我们的输入被噪声所干扰时,一个平滑的function会被噪声有很小的影响.
λ越大,代表考虑regularization的smooth正则项的影响力越大.
我们喜欢平滑的function,但我们不喜欢太平滑的function.
最平滑的function是一条水平线.
为什么在正则项中没有加上b?
在做regularization是不需要考虑bias一项的.
bias是作为常数项只是函数的上下移动而已.
Conclusion
对于我们没有得到的data,即在testing data中没有包含的测试数据.
我们的最终建模系统是”Underestimate?””Overestimate”?
Following lectures :validation