一、笔记
第二节
lesson1-深度学习任务攻略
1.总思路
定义模型 --> 计算loss --> 优化参数
2.model bias or optimization?
逻辑判断模型够不够复杂,一般先训练个简单浅层的模型,加深模型后如果loss不将反升,那么就是优化没有做好。当复杂模型在test上的loss高于简单模型的loss,一个直接反应是overfitting了,但如果train上面也是高,就是优化没做好。
3.overfitting
1)解决overfitting的两种方式:增大样本,限制模型
2)限制模型有几种方法:
a.减少参数/参数共享
b.正则
c.drop out
d.early stop
e.减少feature
3)样本划分:
a.保留一个模型没看到的样本,避免overfitting,train中拆出个validation
b.N-fold法
4.问题
- loss的大小,什么程度算大?什么程度算小?貌似和rmse/auc这些指标联动起来会容易有个直观的理解
- 模型训练中,dev/val 样本上的loss对最终训练模型起到什么作用?貌似只有在early stop和人手调参的时候会用到
- N-fold法中,model1/2/3的区别是参数的差别,还是训练样本上的差别?评价的是model1在不同划分方式的val上打分?
lensson2-局部最小点与鞍点
由于高维度,local minima其实并不常见,更多是鞍点,而鞍点可以通过hessian矩阵有办法继续下降
lesson3-batch size与momentum
1.batch size:小的batch size通常效果更好,一个batch到达尖锐最小值,另一个batch的error surface 可能不这样,就可以继续走下去,收敛到平坦最小值。过小的batch size 训练完整个epoch耗时比较长。
2.momentum:gradient =0 不能继续下降时,参考物理中的惯性概念,同时添加上一个gradient的方向,从而可以继续降loss
二、资源
https://www.bilibili.com/video/BV1Wv411h7kN?p=10