02 线性模型

目录

1. Logistic 回归

2. Softmax回归

3. 感知器

4. 支持向量机

5. 总结


        线性模型是机器学习中常用的一类预测模型。这类模型假设输出变量(目标)与输入变量(特征)之间存在线性关系。 本文主要介绍四种不同线性分类模型:Logistic回归、Softmax回归、感知器和支持向量机,这些模型的区别主要在于使用了不同的损失函数。

1. Logistic 回归

      Logistic 回归(Logistic Regression,LR)是一种常用的处理二分类问题的线性模型。分类问题的值为离散型,即“要么是A”、“要么是B”。为了解决连续的线性函数不适合进行分类的问题,Logistic 回归引入非线性函数𝑔,将f(\textbf{\textit{x}};\textit{\textbf{w}})的值“挤压”到0~1之间,用来表示概率,如下式:

p(y=1|\textbf{\textit{x}})=g(f(\textbf{\textup{\textit{x;w}}}))

g(x)=\frac{1}{1+e^{-x}}

      其中,g函数称为sigmoid函数,在神经网络中的作用为激活函数,由于f(\textbf{\textit{x;w}})=\textbf{\textit{w}}^T\textbf{\textit{x}},因此上式可写为:

p(y=1|\textbf{\textit{x}})=\frac{1}{1+exp(-\textbf{\textit{w}}^T\textbf{\textit{x}})}

      这样,我们可以给定一个阈值进行分类,比如阈值为0.5,大于0.5是A类,小于0.5是B类。g函数的图像如下:

     Logistic 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。使用交叉熵损失函数,其风险函数为:

R(\textbf{\textit{w}})=\frac{1}{N}\sum_{n=1}^{N}[y^{(n)}logy^{(n)}+(1-y^{(n)})log(1-y^{(n)})]

     由于g'(x)=g(x)·(1-g(x)),则风险函数R(w)关于w的偏导数为:

        采用梯度下降法,Logistic回归的训练过程通过下式来迭代更新参数:

2. Softmax回归

      Softmax 回归(Softmax Regression),也称为多项(Multinomial)或多类(Multi-Class)的Logistic回归,是Logistic回归在多分类问题上的推广。

      Softmax是一种数学函数,通常用于将一组任意实数转换为表示概率分布的实数。其本质上是一种归一化函数,因为softmax将可以将一组任意的实数值转化为[0, 1]之间的的值,所以它们可以被解释为概率。Softmax 回归预测概率为(假设有K类):

p(y=c|\textbf{\textit{x}})=g(f(\textbf{\textup{\textit{x;w}}}))=\frac{exp(\textbf{\textit{w}}^T\textbf{\textit{x}})}{\sum_{i=1}^{K}exp(\textbf{\textit{w}}_i^T\textbf{\textit{x}})}

      实际应用中,数据的标签常用独热编码(one-hot)表示,对于类别c,其标签为:

\textbf{\textit{y}}=[I(1=c),I(2=c),\cdots ,I(K=c)]^T

 其中,I(·)为指示函数。采用交叉熵损失函数,Softmax回归模型的风险函数为:

R(\textbf{\textit{w}})=-\frac{1}{N}\sum_{n=1}^{N}(\textbf{\textit{y}}^{(n)})^Tlog\hat{\textbf{\textit{y}}}^{(n)}

其中,\hat{\textbf{\textit{y}}}^{(n)}=p(y=c|\textbf{\textit{x}})为样本\textit{\textbf{x}}^{(n)}在每个类别的后验概率。风险函数R(W)关于W的偏导数为:

      采用梯度下降法,Softmax 回归的训练过程通过下式来迭代更新参数W

式中,\alpha是学习率,\hat{\textit{\textbf{y}}}^{(n)}_{W_t}是当参数为W_t时模型的预测值。 

      注意:Softmax 回归往往需要使用正则化来约束其参数。

3. 感知器

      感知器(Perceptron)由 Frank Roseblatt 于 1957 年提出,是一种广泛使用的线性分类器,感知器可谓是最简单的人工神经网络,只有一个神经元,有与生物神经元相对应的部件,如权重(突触)、偏置(阈值)及激活函数(细胞体)。

      感知器的激活函数采用符号函数(Sign Function):

g(x)=sgn(x)=\left\{\begin{matrix} 1 & if&x>0 \\ -1 & if &x<0 \end{matrix}\right.

      因此,感知器预测概率:

\hat{\textbf{\textit{y}}}=sgn(\textbf{\textit{w}}^T\textbf{\textit{x}})=\left\{\begin{matrix} 1 & if&\textbf{\textit{w}}^T\textbf{\textit{x}}>0 \\ -1 & if &\textbf{\textit{w}}^T\textbf{\textit{x}}<0 \end{matrix}\right.

      感知器的算法原理为:

       感知器的损失函数可写为如下表达式:

Loss(\textbf{\textit{w;x}},y)=max(0,-y\textbf{\textit{w}}^T\textbf{\textit{x}})

      采用随机梯度下降,其每次更新的梯度为:

       二分类感知器的算法训练过程如下:

    

       Novikoff于1963年证明了对于二分类问题,如果训练集是线性可分的(在二维空间中,‌表现为存在一条直线能够将两种不同类别的数据点分开),那么感知器算法可以在有限次迭代后收敛。

      传统的二分类感知器有两个缺点:

      (1)感知器算法可收敛但并不能保证找到的判别函数是最优的(比如泛化能力高),这样可能导致过拟合。

      (2)感知器学习到的权重向量和训练样本的顺序相关,在迭代次序上排在后面的错误样本比前面的错误样本对最终的权重向量影响更大,比如有1000个训练样本,在迭代100个样本后感知器已经学习到一个很好的权重向量,在接下来的899个样本上都预测正确,也没有更新权重向量,但是在最后第1000个样本时预测错误,并更新了权重,这次更新可能反而使得权重向量变差。

      为了提高感知器的鲁棒性和泛化能力,可采用“平均感知器算法”:

      复旦大学邱锡鹏《神经网络与深度学习》中给出平均感知器算法训练过程:

    

     阿里的通义千问给出的平均感知器工作流程:

(1)初始化权重向量 w 和累积权重向量 aw 为零向量。
(2)遍历训练数据集中的每个样本,对于每个样本:
     a. 使用当前权重向量 w 对样本进行预测;
     b. 如果预测错误,根据学习率和输入样本更新权重向量 w;
     c. 更新累积权重向量 aw = aw + w。
(3)重复步骤(2),直到达到预定的迭代次数或满足停止条件。
(4)最终的权重向量是 aw / T,其中 T 是总的迭代次数。

      平均感知器特别适用于文本分类等自然语言处理任务,因为它能够处理高维稀疏特征空间,并且在大规模数据集上表现出色。

      广义感知器算法(Generalized Perceptron Algorithm)是对原始二分类感知器的扩展,用于解决多分类问题。在多分类情况下,我们通常需要多个感知器,每个感知器负责区分某一类与其他所有类。这种方法也被称为“一对多”或“一对其余”策略。  

        注意:广义感知器算法并不保证找到全局最优解,它可能收敛到一个局部最优解。此外,对于非线性可分的数据集,广义感知器可能无法找到合适的分类边界。为了改善性能和稳定性,可以采用一些技术,例如引入正则化项来避免过拟合,或者使用更复杂的模型如多层感知器(MLP)或支持向量机(SVM)等。在实际应用中,还经常使用交叉验证来调整参数和选择最佳模型。

4. 支持向量机

      支持向量机(Support Vector Machine, SVM)是一种广泛使用的监督学习模型,主要用于分类和回归分析。SVM的核心思想是找到一个超平面,使得两类数据点被这个超平面分开,并且两类数据点到超平面的最近距离最大。这个超平面被称为最大间隔超平面。SVM是一个经典的二分类算法,其找到的分割超平面具有更好的鲁棒性,因此广泛使用在很多任务上,并表现出了很强优势。

      下面根据《神经网络与深度学习》来说明SVM算法原理:

        间隔由最近点到超平面的距离决定,因此间隔又可以写为:

\gamma =\frac{1}{||\textbf{\textit{w}}||}

        因此,寻找超平面的问题就转化为了寻找最小||\textbf{\textit{w}}||的问题,这又等同寻求\frac{1}{2}||\textbf{\textit{w}}||^2的最小值。当使用拉格朗日乘数法求解时,问题又转化为了下式的求解:

        支持向量机的主优化问题为凸优化问题,即\Gamma (\lambda )的最大值就是最优解,可采用序列最小优化(SMO)等方法求解。

        支持向量机的目标函数可以通过SMO等优化方法得到全局最优解,因此比其他分类器的学习效率更高.此外,支持向量机的决策函数只依赖于支持向量,与训练样本总数无关,分类速度比较快.

 至此,介绍完了SVM算法的原理!


      现在,介绍一种SVM的高阶使用方法:核技巧(Kernel Trick)

       SVM算法的应用前提是训练集样本线性可分,那如果样本不可分呢?解决办法是:引入一个核函数!

      核函数能够将数据映射到更高维的空间,使得原本线性不可分的问题变得线性可分。核函数通过计算原始空间中两个点的内积,从而在高维空间中模拟点积的计算。这样,SVM就可以在不需要显式映射到高维空间的情况下,处理非线性问题。 

      核函数包括:线性核、多项式核、高斯径向基函数核(RBF)、sigmoid核等。核函数类型根据数据的特性选择,对于线性可分数据,选择线性核函数,对于非线性数据可选后三类。


      最后,介绍一个避免SVM分类器过拟合的手段:软间隔(Soft Margin) 

      SVM的软间隔是相对于硬间隔而言的,在一定程度上容忍某些样本点被错误分类,为了减少过拟合的风险,提高模型的泛化能力。软间隔是指在SVM模型中,通过引入松弛变量允许某些样本点不满足原本的硬间隔条件,即允许样本点位于超平面的错误一侧或在间隔内部。这样做可以避免模型对训练数据中的噪声或异常点过于敏感。

       软间隔原理:

      软间隔SVM适用于数据不完全线性可分的情况,如手写数字识别、人脸识别、文本分类和图像分类等。

5. 总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值