- model bias : 模型太过简单,不存在合适的参数来应该拟合所有数据
- 判断是不是 model bias : 先使用一个比较小的网络,甚至是线性模型或者svm,来看看会得到什么样的loss。如果model的loss大于这些简单model的loss,这就是优化问题,不是model的问题。
局部极小值和鞍部
梯度为0 可以称为 critical point, 可能是局部极小值(local minma),也可能是鞍部(saddle point)
跳出鞍部:
- 利用Hessian矩阵,判断是否为鞍点,因为,Hessian在鞍点具有正负特征值,而在局部最小值点正定。
- 随机梯度,相当于给正确的梯度加了一点noise
- 增加偶尔的随机扰动
优化方法
Momentum
是梯度,是参数优化变化的值, 和 是超参数。
进行参数优化时,不止使用梯度下降的值,一次迭代采用的值为当前点梯度下降的值加上参数优化变化的值。
另外有资料也下面式子表示,本质上是一样的
Adaptive Learning Rete
优化函数:
是模型中第 i 个参数在 t 时刻的值
是学习率
是第 i 个参数在 t 时刻梯度的值
训练时,不同参数的梯度值是不一样的,如果给定同样的学习率可能会发生震荡,会在梯度小的地方变化慢,梯度大的地方变化快,这样就会在梯度变化快的方向上来回震荡,但在梯度下降慢的方向上变化很慢,如同上图中国你的蓝色线条
Root mean square
优化函数:
这样每个参数的学习率就跟每个参数的梯度相关了,其中梯度越小学习率就越大,就会变成绿色线条了
RMS Prop
RMS Prop 是上面方法的优化,
也是个超参数,像学习率一样,表示当前计算出来的 的重要程度 ,也是说是当前计算出来的梯度更重要,还是之前计算出来的梯度更重要。
Adam
Adam 就是 RMS Prop 加上 Momentum
learning rate scheduling
就是不要把学习率当作一个常数,让它随着时间(训练次数)的改变而改变
Learning Rate Decay
让学习率随着训练的前进而变小
Warm Up
让学习率先变大,然后再变小
Batch Normalization
简单来说就是对不同维度的参数进行标准化操作,使之变成均值为 0 方差为 1 的参数。Normalization是以一个batch为单位进行的所以叫Batch Normalization
Classification
Mean square error 在Loss很大的地方,它是非常平坦的,它的gradient是非常小,有非常大的可能性会t训练不出来。
所以经常选用 Cross-Entropy 作为损失函数。
multi-label classification & multi-class classification
multi-label classification :对于某一个输入,可能会被打上多个标签
multi-class classification:一个输入对应一个class,但总的class有多个。是相对于 binary-class 总的class 只有两个
卷积
conv2d RGB图片虽然是3维(w,h,c)的,卷积仍是按照2d卷积来算的,只在w,h 方向上卷积前进,只是将多个 channels 的2d卷积结果加起来,和3d的卷积还是有区别的。filter的参数矩阵大小为。