监督学习

监督学习

参考吴恩达2022MachineLearning视频教程

视频教程:(强推|双字)2022吴恩达机器学习Deeplearning.ai课程

机器学习分类

监督学习和无监督学习

image-20221202163218916
  • 监督学习:回归、分类

    image-20221202143302640
  • 无监督学习:聚集、异常检测、降维

    image-20221202163710678

回归问题

利用大量的样本,通过有监督的学习,学习到由x到y的映射f,利用该映射关系对未知的数据进行预估,其中y为连续值

1.线性回归

  • 常用符号说明:

    image-20221202164315752
  • 拟合函数:

    利用一个线性函数去拟合数据:

    \[f_{w, b}(x) = wx +b ,其中w,b为参数 \]

  • 损失函数(loss function)

    利用最小二乘法(最小平方法)计算其损失函数为:

    \[L(w,b) =\frac{1}{2} (\hat{y} - y)^2 = \frac{1}{2} (f_{w, b}(x) - y)^2 \]

  • 代价函数(cost function)

    代价函数是所有样本误差总和(所有损失函数总和)的平均值:

    \[J(w,b) = \frac{1}{2m} \sum_{i=1}^m(f_{w, b}(x^{(i)}) - y^{(i)})^2 \]

    image-20221203162524508

    拟合的目标就是找到合适的\(w,b\)参数能够使得代价函数最小,即\(\hat{y}\)\(y\)最接近

  • (批量)梯度下降算法

    可以使用梯度下降算法来更新\(w,b\)参数,从而找到最合适的值:

    \[\left\{ \begin{matrix} w=w-\alpha \frac{\partial}{\partial w} J(w, b) \\ b=b-\alpha \frac{\partial}{\partial b} J(w, b) \end{matrix}\right. ,其中\alpha 是学习率,\partial表示偏导数 \]

    image-20221203163034350

    将代价函数代入进去即可得到:

    \[\left\{ \begin{matrix} w= w-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{w, b}(x^{(i)}) - y^{(i)})x^{(i)}\\ b= b-\alpha \frac{1}{m}\sum\limits_{i=1}^m (f_{w, b}(x^{(i)}) - y^{(i)}) \end{matrix}\right. ,其中\alpha 是学习率 \]

    image-20221203164854344

    运行梯度下降算法:

    image-20221203165835371

2.多元线性回归

  • 拟合函数:

    当数据集中有多个特征\(x_{1},x_{2},...x_{n}\)时:

    \[f_{w_1,w_2,...,b}(x_1,x_2...) = w_{1}x_{1} +w_{2}x_{2} + ... +w_{n}x_{n} +b ,其中w_{1},w_{2},...,b为参数 \]

  • 向量化

    将参数\(w\)和特征\(x\)进行向量化:

    \[f_{\vec{w}, b}(\vec{x}) = \vec{w}\vec{x}+b ,其中\vec{w},b为参数, \]

  • 梯度下降算法:

    原来的公式变为:

    \[\left\{ \begin{matrix} w_1= w_1-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)})x_1^{(i)}\\ …… \\ w_n= w_n-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)})x_n^{(i)}\\ b= b-\alpha \frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)}) \end{matrix}\right. ,其中\alpha 是学习率 \]

image-20221203172845517

3.多项式回归

  • 特征工程

    特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性,直接决定了模型预测的结果好坏。俗话说就是对已有的特征进行预处理,比如已知房子的长和宽,此时可以增加房子的面积作为其新的特征,然后对模型进行预测。

    image-20221203174805258
  • 多项式回归

    根据所给的特征,利用该特征对数据进行预处理,拟合函数为原特征的多项式类型。

    比如原始特征为\(x\),拟合函数为\(f_{\vec{w},b}=w_1x+w_2x^2+w_3x^3+b\)

分类问题

利用大量的样本,通过有监督的学习找到一个决策边界来完成分类的决策,其中决策为离散值

逻辑回归

线性回归可以预测连续值,但是不能解决分类问题,我们需要根据预测的结果判定其属于正类还是负类。所以逻辑回归就是将线性回归的\((-\infty,+\infty)\)结果,通过\(sigmoid\)函数映射到\((0,1)\)之间,来作为该结果的概率

线性回归:\(z=\vec{w}\vec{x}+b\)

将其通过\(g(x)= sigmoid\)函数,获得逻辑回归的决策函数:

\[f_{\vec{w},b}(\vec{x})=g(z)=sigmoid(z)=\frac{1}{1+e^{z}}=\frac{1}{1+e^{-(\vec{w} \cdot \vec{x}+b)}} \]

image-20221204135251441
  • 极大似然估计

    极大似然估计是数理统计中参数估计的一种重要方法。其思想就是一个事件发生了,那么发生这个事件的概率就是最大的。对于样本\(i\),其类别为\(y_{i}\epsilon (0,1)\)。对于样本\(i\),可以把\(h(\mathbf{x}_i)\)看成是一种概率\(\mathbf{x}_i\)对应是1时,概率是\(h(\mathbf{x}_i)\),即\(\mathbf{x}_i\)属于1的可能性;\(\mathbf{x}_i\)对应是0时,概率是\(1-h(\mathbf{x}_i)\),即\(\mathbf{x}_i\)属于0的可能性 。那么它构造极大似然函数:

    \[\prod_{i=1}^{i=k} h\left(\mathbf{x}_{i}\right) \prod_{i=k+1}^{m}\left(1-h\left(\mathbf{x}_{i}\right)\right) \\ 其中i从0到k是属于类别1的个数k,i从k+1到m是属于类别0的个数m-k。 \]

    由于\(y_i\)是标签0或1,所以上面的式子也可以写成:

    \[\prod_{i=1}^{m} h\left(\mathbf{x}_{i}\right)^{y_{i}}\left(1-h\left(\mathbf{x}_{i}\right)\right)^{1-y_{i}} \]

    这样无论\(y\)是0还是1,其中始终有一项会变成0方,也就是1,和第一个式子是等价的。

    为了方便,我们对式子取对数。因为是求概率最大,即式子的最大值,可以转换成式子乘以-1,之后求最小值。同时对于\(m\)个数据,累加后值会很大,之后如果用梯度下降容易导致梯度爆炸,所以可以除以样本总数\(m\),式子变为:

    \[\frac{1}{m} \sum_{i=1}^{n}-y_{i} \ln \left(h\left(\mathbf{x}_{i}\right)\right)-\left(1-y_{i}\right) \ln \left(1-h\left(\mathbf{x}_{i}\right)\right) \]

  • 代价函数

    可以根据上面的最大似然估计定义逻辑回归的代价函数:

    \[J(\vec{w},b) =-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \ln \left(f_{\vec{w}, b}\left(\vec{x}^{(i)}\right)\right)+\left(1-y^{(i)}\right) \ln \left(1-f_{\vec{w}, b}(\vec{x}^{(i)})\right)\right] \]

    image-20221204152344003
  • 梯度下降算法

    此处涉及数学求导,可以跳过

    已知代价函数,梯度下降的目标就是找到合适的\(\vec{w},b\)参数能够使得代价函数最小,即使得预测结果的概率最大。根据梯度下降算法的流程,我们需要对代价函数做导数运算:

    \[\begin{array}{l} \frac{\partial J(\vec{w},b)}{w_j}=- \frac{1}{m} \sum \limits_{i=1}^{m}[{y}^{(i)} \frac{1}{g(z)}-(1-y^{(i)}) \frac{1}{1-g(z)}] \frac{\partial g(z)}{\partial w_j} \\ =- \frac{1}{m} \sum \limits_{i=1}^{m}[y^{(i)} \frac{1}{g(z)}-(1-y^{(i)}) \frac{1}{1-g(z)}] \cdot g(z)(1-g(z)) \cdot \frac{\partial z}{\partial {w}_{j}} \\ =- \frac{1}{m} \sum \limits_{i=1}^{m}[y^{(i)}(1-g(z))-(1-y^{(i)}) g(z)] \cdot x_j^{(i)} \\ =- \frac{1}{m} \sum \limits_{i=1}^{m}(y^{(i)}-g(z)) \cdot x_j^{(i)} \\ =\frac{1}{m} \sum \limits_{i=1}^{m}(g(z)-y^{(i)}) \cdot x_j^{(i)} \\ =\frac{1}{m} \sum \limits_{i=1}^{m}[f_{\vec{w}, b}(\vec{x}^{(i)})-y^{(i)}] \cdot x_j^{(i)} \end{array} \]

    其中\(\frac{\partial g(z)}{\partial w_j}\)的计算如下:

    \[\frac{\partial g(z)}{\partial w_j} =\frac{\partial \frac{1}{1+e^{-z}}}{\partial w_j} = - \frac{1}{(1+e^{-z)^2}} \cdot e^{-z} \cdot (-1) \cdot \frac{\partial z}{\partial {w}_{j}} = g(z)(1-g(z)) \cdot \frac{\partial z}{\partial {w}_{j}} \]

    然后进行梯度下降:

    \[\left\{ \begin{matrix} w_1= w_1-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)})x_1^{(i)}\\ …… \\ w_n= w_n-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)})x_n^{(i)}\\ b= b-\alpha \frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)}) \end{matrix}\right. ,其中\alpha 是学习率 \]

    可以发现其形式竟然和线性回归的形式一样,不过这里的\(f_{\vec{w}, b}(\vec{x}^{(i)})\)和线性回归的已经不一样了。

    image-20221204170334774

数据处理

特征缩放(归一化)

可以通过变换来将各个特征统一到一个合适的范围内,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解:

image-20221204131213405
  • 线型比例变换

    \[x_{i}^{\prime}=\frac{x_{i}}{\max (x)} \]

  • 极差变换:

    • 归一到\((0,1)\)范围:

    \[x_{i}^{\prime}=\frac{x_{i}-\min (x)}{\max (x)-\min (x)} \]

    • 归一到\((-1,1)\)范围:

    \[x_{i}^{\prime}=\frac{x_{i}-mean (x)}{\max (x)-\min (x)} \\ mean(x)为平均值 \]

  • 标准差变换(Z-score):

    \[x_{i}^{\prime}=\frac{x_{i}-μ}{\sigma} \\ μ为所有样本数据的均值,σ为所有样本数据的标准差 \]

过拟合和欠拟合

Overfitting : If we have too many features, the learned hypothesis may fit the training set vey well, but fail to generalize to new examples.

过拟合其实就是为了得到一致假设而使得假设过于地严格。使得其在训练集上的表现非常地完美,但是在训练集以外的数据集却表现不好。

image-20221204175437538
image-20221204180214458
  • 解决过拟合的方法:

    • 收集更多的数据

    • 减少特征值的数量:

      • 人工选择哪些特征需要保留
      • 使用模型选择算法
    • 正则化

  • 正则化

    在原来的代价函数中添加正则化项,主要是通过正则项来限制权重\(w\)参数的值的变化,使其尽可能的小或者尽可能地趋于0,以达到稀疏参数的效果,进而使得模型复杂度下降,避免过拟合(一般不对参数\(b\)进行正则化)。

    • 线性回归

      \[J(\vec{w},b) = \frac{1}{2m} \sum_{i=1}^m(f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)})^2 + \frac{\lambda}{2 m} \sum_{j=1}^{n} w_{j}^{2} \\ ,\lambda为正则化系数 \]

    • 逻辑回归

      \[J(\vec{w},b) =-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \ln \left(f_{\vec{w}, b}\left(\vec{x}^{(i)}\right)\right)+\left(1-y^{(i)}\right) \ln \left(1-f_{\vec{w}, b}(\vec{x}^{(i)})\right)\right]+\frac{\lambda}{2 m} \sum_{j=1}^{n} w_{j}^{2} \]

  • 正则化后的的梯度下降算法:

image-20221205125536888

其中对于参数w的那一项还可以写成:

\[w_j= (1-\alpha\frac{\lambda}{m})w_j-\alpha\frac{1}{m}\sum\limits_{i=1}^m (f_{\vec{w}, b}(\vec{x}^{(i)}) - y^{(i)}){x_j}^{(i)}\\ \]

原来\(w\)前系数为1,现在\(w\)前面系数为 ,因为\(\alpha、\lambda、m\)都是正的,所以 \(1-\alpha\frac{\lambda}{m}\)小于1,它的效果是减小\(w\),这也就是权重衰减的由来。

参考资料

  1. 线性回归和逻辑回归
  2. 逻辑回归详解
  3. 逻辑回归的本质——极大似然估计
  4. 机器学习笔记:过拟合(Overfitting)
  5. 【深度学习】——过拟合的处理方法
posted @ 2022-12-04 17:20  于辰文  阅读(124)  评论(0编辑  收藏  举报