李宏毅机器学习特训营*PaddlePaddle小白初探课节二-2
在智能车竞赛卓晴老师的公众号中了解到 paddlepaddle,因自己的竞赛组别也涉及到机器学习故前来取经,也算是想对自己点亮个技能点,努力奋斗吧~
在此记录,以共同学习并以此监督自己的探索之旅~
课程链接: 百度AI Studio李宏毅课程-机器学习
课节二-2—1 回归-演示
这一课为实践课,老师向我们展示了一个“简单的”用gradient descent 找系数的regression模型(确实看起来挺简单虽然我也看不太懂,,具体我遇到的小白问题会再开一篇文章的),其中应对几个问题老师也在实操中给出了解释
一共不到二十行的代码,具体的名词解释上两课都有说到
Q1:最终参数w,h离目标远?
A: Learning rate 不够大
Q2:增大learning rate后参数图像飞走?
A:“放个大绝”给b和w客制化的learning rate : AdaGrad
Ir_b = lr_b + b_grad ** 2
lr_w = Ir_w + w_grad ** 2
#Update parameters.
b = b - lr/np.sqrt(lr_b) * b_grad
w = w - lr/np.sqrt(lr_w) * w_grad
课节二-2—2 误差从何处来
2.1 为什么要分析error来源?
通过对error来源的分析有方向性的improve model
error的两种来源:bias 和variance
2.2 用机率例子说明一下
(首先我是没学过机率的,,
这一段看了几遍最后我的理解就是:
-
说如果想要求mean(算数中项?)的话,随机取几个点求平均数的方式并不会exactly得到mean,这时候如果说我们对各个平均数(即图中的m)求一下期望E[m] , 可得出μ
-
m 这个estimator (方差)因为期望正好等于μ 所以说是unbiased (不偏不倚的), 对于mx 散布的范围取决于m 的variance (Var[m]) , 其值取决于取了多少的sample, 那个公式用就完了, 从课本上来的
2.3 打靶形象再诉
bias : 瞄准位置
f
‾
\overline{f}
f与
f
^
\widehat{f}
f
距离
variance : 散布范围
f* 期望值与
f
‾
\overline{\text{f}}
f的距离
最期待的情况 : 没有bias的同时 variance又小
因为没有平行宇宙(误) , 我们要做的就是做好多好多次实验, 每次实验都用不同的几组数据都去找f*
2.4 来细说
从式子来看
关系式越复杂散布越开variance越大但bias越小
两种定义
如果error来自variance太大,称为Overfitting
如果error来自bias太大,成为Underfitting
判断方法
如果model无法fit (拟合) training data则说明bias大
如果在training data上可以拟合但无法拟合testing data则说明variance大
解决发放
bias大则重写model,可以加更多的feature或者让model更复杂
variance大则增加data,或者使用regularization(在loss function 后面再加一个term以限制参数大小)
针对增加data
不会影响bias
如果没有更多的data可以自行创造性增加
2.5 other descriptions
主要就是需要自己衡量一下bias和variance的大小平衡
2.6 other skills
让自己的private set结果变得靠谱:把training set 分成两组,一组用来train model 一组用来选model
如果担心training data变少则可以用选定最好的model在全部的data再train一次,这样得到的error比较准确
而且最好不要把public testing set 的结果拿回来再调