一、Course Introduction
1、机器学习就是自动找函式
Regression: output is a scalar.
Classification:yes or no
Binary classification:RNN作业
Multi-class Classification:CNN作业
Generation: 产生有结构的复杂东西(文字 图片等)
Seq2Seq、GAN作业
2、Supervised Learning: Labeled Data
unsuperived learning
3、前沿研究
Explainable AI
Adversarial Attack:对抗攻击
Network Compression
Anomaly Detection:异常检测(能够知道自己不知道)
Transfer Learning(Domain Adversarial Learning)
Meta Learning:learn to learn
Life-long learning:终身学习
二、Regression
1、应用
2、基本步骤
3、过拟合
换了复杂的model,在training data上结果更好了,在testing data上结果反而更差。
4、正则化
loss function既考虑error,再加上一项额外的smooth(不考虑bias,对平滑没影响),λ是自定的参数(λ越大,表示smooth项的影响越大)。
5、error来自哪里
理想状态是没有bias,variance很小。
相同模型在100组不同的训练集下,越复杂的模型散布越开(方差越大);
越复杂的model,有越小的bias;因为复杂的model的function set更大,更容易包含target function;
训练集:bias大,欠拟合:增加特征、设计更复杂的模型。
测试集:variance大,过拟合:更多数据、正则化(loss增加smooth,但是只包含平滑的曲线,会影响bias)
6、交叉验证
bias与variance的平衡。
不建议这么做。
7、梯度下降
8、学习率调整
可视化调整学习率。
自动调整学习率:随着参数的update,学习率也要相应的变小,一开始采用大学习率,再逐渐减小学习率。图中公式中的t代表第t次更新参数。
每个参数有不同的学习率;σt是过去所有微分值的平方根;
adagrad是比较简单的一种adaptive学习率方法,但使用adagrad方法速度会越来越慢
这一项的作用是衡量过去gradient和现在的反差有多大。
对于一个参数来说,是符合梯度越大,step越大的(|2ax+b|和|x+b/2a|成正比)
对多个参数来说,step不仅和一阶偏导有关(成正比),还与二阶偏导有关(成反比)。
8、随机梯度下降法(stochastic gradient descent,SGD)
可以使训练更快。
在一般的梯度下降中,计算所有data的loss,然后才更新参数;但在SGD中,只对第n个example来update参数;
9、特征标准化
使得不同的w对loss有相同的影响力,在参数update时更加有效率。方法如下:
每一行是一个维度,每个维度求平均值和标准差,对这行每一个减去平均值除以标准差。
所有维度平均值是0,方差是1。
10、梯度下降为什么会work
怎样在红圈范围中找到最小点?
学习率要足够小才能保证圈足够小,才能保证式子成立,才能保证梯度下降时loss越来越小。
11、梯度下降的限制