# ML-Andrew NG 学习笔记(4) Overfitting & Regularization

By [jasonyang](https://paragraph.com/@jasonyang) · 2023-07-27

---

### **a.拟合问题**

**对于一组相同的数据，可以选取不同的模型对其训练。模型的不同会导致其对数据的贴合表现不近相同。**

结果总体上可以分为以下三种（首先使用**回归**作为例子）：

*   **underfit（欠拟合）**
    

如图，使用一个一次的简单函数拟合，很显然，让人不甚满意

![也可以称为high bias](https://storage.googleapis.com/papyrus_images/76e6c700dfe1e964ab9bba25a92700b92af10a094976f97746d5209f9a640b4a.png)

也可以称为high bias

*   **good fit（正常拟合）**
    
    这次采用二阶多项式进行拟合，虽然有的点并没有在线上，但是总体而言非常不错
    

![generalization](https://storage.googleapis.com/papyrus_images/a9de51c552ead6b343793884febfcf905d0de51ef2783685022df5b0ddda73d1.png)

generalization

*   **overfit（过拟合）**
    
    使用了复杂的四阶多项式，每个点都位于线上，但是这样的结果很显然不适用于真实的房价预测
    

![high variance](https://storage.googleapis.com/papyrus_images/1611eac2d704cd67ab6c1ee23174cf726cdae4ace3f60292f88a2530365db43b.png)

high variance

> **high bias**：模型过于简单或特征选择不充分，使得没有足够的灵活性来适应数据中的变化
> 
> **high variance**：模型试图捕捉数据中每个细微的点，甚至可能误将噪声认为使真实信号，给一组不同的数据集训练变化会非常大

**分类**中的例子：

![underfit                                        good fit                                        overfit](https://storage.googleapis.com/papyrus_images/9711d818446ee1d7a9ba22d22af86c7aed009089c64beb5259fb6c6d1f2b4a74.png)

underfit good fit overfit

欠拟合可以通过增加模型的复杂程度或者补充特征来使模型完善，下文主要讨论关于过拟合的问题。

解决方案：

*   **增加训练样本数量**
    
*   **选择合适的特征**
    
        不充足的数据+所有的特征很容易导致过拟合，可以删掉一些不是非常重要的特征。但同样存在问题，这一过程中会丢弃部分数据，其中可能会有某些有用的。
        
    
*   **正则化（regularization）**
    

![正则化](https://storage.googleapis.com/papyrus_images/bd4484347a2561038b5b5acaefaaf810e83bac868306224612e9e45aa580ab67.png)

正则化

### b.0 正则化

如图，当参数_w\_3_和_w\_4_接近于0时，对应自变量的作用被极大地消减了，图像上呈现的很接近只存在_w\_1_，_w\_2_的，能更加泛化，这便达到我们的训练目的

![](https://storage.googleapis.com/papyrus_images/c15c7901e3bccceb99862752c4e7f5a976b6518de3024d77cb4e565184878b90.png)

至此，为了让模型自己能找到合适的参数，又不至于过拟合，成本函数_J_可以增加一项以实现正则化

![λ：regularization parameter，至于参数b可处理可不处理](https://storage.googleapis.com/papyrus_images/72ebe9b579b896eaab1dee5b8c7d892a140e51578a9c4f259ef091fd1ebe7ae2.png)

λ：regularization parameter，至于参数b可处理可不处理

前者用于拟合数据，后者用于使_w\_j_保持在较小值

> λ是MSE和正则化项之间的权衡，指定了相对的重要性或者说如何在这两个目标之间找到平衡

两种极端：

![](https://storage.googleapis.com/papyrus_images/6492f4748918a839047d1ccbfe62a8ea5bd26cc40d976771e9092d8bd813afa4.png)

*   λ=0：完全没有使用到正则化的技术，最终的预测图像仍然是十分摇摆不定的
    
*   λ=10的十次方：正则化项的系数太大了，模型一直在尽力缩小，最终的结果就是_w\_j_的值非常接近0，最终\*f(x)\*接近未经处理的b
    

### b.1 线性回归的正则化

![相较于以前没有正则化的版本只是多了橘色框的部分t，t见下文](https://storage.googleapis.com/papyrus_images/9def2ede1c31d3397174bf0d6858c81e1487454f120e3cfa0d71cb08fc6ba5ec.png)

相较于以前没有正则化的版本只是多了橘色框的部分t，t见下文

从另一角度，或者说从其本质看：

     **正则化对模型有着收缩的作用**

![α是一个较小数，λ也很小，m比较大，1减去后是一个很接近1自己的数字](https://storage.googleapis.com/papyrus_images/7d3901118834be379c82e2c5d69b15f752f068b73fd881b18aa86788b4fc9b02.png)

α是一个较小数，λ也很小，m比较大，1减去后是一个很接近1自己的数字

数学求导过程：

![t_0即为前文的正则化项，t_0最终求得上文t](https://storage.googleapis.com/papyrus_images/47142e82a40465b8067b3581b8ab298afa52b5827ac089d8620a9a6e2f8afd53.png)

t\_0即为前文的正则化项，t\_0最终求得上文t

### b.2 逻辑回归的正则化

与线性回归类似，只不过对于\*f(x)\*的定义不同

![](https://storage.googleapis.com/papyrus_images/0f8e1ad64cf308f126a5b9474247db37e231eb8c37d851d993d32314f0bf006f.png)

---

*Originally published on [jasonyang](https://paragraph.com/@jasonyang/ml-andrew-ng-4-overfitting-regularization)*
