Backto DeepCV
regularization 本意就是调整对象(函数等)使其更合乎常态(regular)或平滑,翻译成 正则化
不明所以。我喜欢叫他 抛光
。不够雅,但是表意更准确。
regularization 的目的是控制网络的 capacity
,以防止 over-fitting
.
L2-regularization
最常用的.
为Loss函数引入惩罚项
1
2
λ
ω
2
\frac 1 2 \lambda \omega^2
21λω2,前面加入
1
2
\frac 1 2
21 的目的是为了让导数是
λ
ω
\lambda \omega
λω, 而不是
2
λ
ω
2\lambda \omega
2λω.
L2-reg 的作用是错峰平谷,不要太突出的刺头权重,保证整体均匀。
Dropout
最常用的。 随机 drop 掉 α \alpha α 个点的网络神经元节点。Drop 来 Drop 去,效果还挺好。很可能是内部相当于多个模型集成了。
L1-regularization
为 Loss 函数引入惩罚项 λ ∣ ω ∣ \lambda \vert \omega \vert λ∣ω∣. 稀疏选择,不重要的权重就push成 0 了。
Max-norm constraints
这个是直接在训练中限定 ∥ ω ∥ ≤ c \Vert \omega\Vert \leq c ∥ω∥≤c