> For the complete documentation index, see [llms.txt](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baozoulin.gitbook.io/neural-networks-and-deep-learning/di-er-men-ke-gai-shan-shen-ceng-shen-jing-wang-luo-chao-can-shu-tiao-shi-zheng-ze-hua-yi-ji-you-hua/improving-deep-neural-networks/practical-aspects-of-deep-learning/18-qi-ta-zheng-ze-hua-fang-fa-ff08-other-regularization-methods.md).

# 1.8 其他正则化方法（Other regularization methods）

除了L2 regularization和dropout regularization之外，其它减少过拟合的方法：

* 增加训练样本数量。但是通常成本较高，难以获得额外的训练样本。但是可以对已有的训练样本进行一些处理来“制造”出更多的样本，称为data augmentation（数据扩增）。例如图片识别问题中，可以对已有的图片进行水平翻转、垂直翻转、任意角度旋转、缩放或扩大等

![](/files/-Le0cbAo5fRSEcZNwKKr)

在数字识别中，也可以将原有的数字图片进行任意旋转或者扭曲，或者增加一些noise，如下图所示：

![](/files/-Le0cbAqLQycM9ZdYL5M)

* early stopping。一个神经网络模型随着迭代训练次数增加，train set error一般是单调减小的，而dev set error 先减小，之后又增大。即训练次数过多时，模型会对训练样本拟合的越来越好，但是对验证集拟合效果逐渐变差，发生了过拟合。可以通过train set error和dev set error随着迭代次数的变化趋势，选择合适的迭代次数，即early stopping。

  ![](/files/-Le0cbAs8Lyvov9_2XlA)

当还未在神经网络上运行太多迭代过程的时候，参数$$w$$接近0，因为随机初始化$$w$$值时，它的值可能都是较小的随机值，但在迭代过程和训练过程中$$w$$的值会变得越来越大，所以early stopping要做就是在中间点停止迭代过程

机器学习训练模型有两个目标：一是优化cost function，尽量减小J；二是防止过拟合。这两个目标彼此对立的，即减小J的同时可能会造成过拟合，反之亦然。二者之间的关系称为正交化orthogonalization

* Early stopping的做法通过减少迭代训练次数来防止过拟合，这样J就不会足够小。即early stopping将上述两个目标融合在一起，同时优化，但可能没有“分而治之”的效果好。
* 与early stopping相比，L2 regularization可以实现“分而治之”的效果：迭代训练足够多，减小J，而且也能有效防止过拟合。而L2 regularization的缺点之一是最优的正则化参数$$\lambda$$的选择比较复杂。而early stopping比较简单。
* 总的来说，L2 regularization更加常用一些
