Linear Models for Classification(用于分类的线性模型)
回顾
Linear Models for Binary Classification
用于二元分类的线性模型。
之前我们所讲的算法模型主要分为:线性二元分类、线性回归和logistic回归三种。这三种学习模型的相同点为都是以线性记分函数(liner scoring founction)来构建模型。
liner scoring founction:
下图为三种模型及其error函数与s的关系:
第一个图中为线性二元分类,其假设函数为一个符号函数,一般使用的时0/1error,此种情况通过求解使得最小的最优权重向量w是一个NP—hard问题;
第二个为线性回归模型,其假设函数直接为,一般使用的时平方错误,可以直接通过解析求得最优的权重向量w;
第三个为logistic回归模型,其假设函数为,一般使用交叉熵error,可以通过梯度下降法求得近似的最优权重向量w。
综上所述,我们可以得出,二元线性分类模型的求解最为困难,但是与其他两种模型一样,其模型和error都与得分s有关,那么是都可以借鉴其他两种模型的求解方式来求解二元线性分类模型呢?这就是本讲即将讨论学习的内容。
下图为三种模型的error函数:
由上图可知,线性回归的平方error函数可以写为ys的形式(y的平方为1),logistic回归的交叉熵error函数:
从而也可以写成ys的形式;
由上图可知线性二元分类的error函数也可以写成ys形式。’
综上:二元线性分类模和先行性回归模型的error函数中的转换都以为转换条件,有上知s为得分,ys为正确的分数,因此ys越大越好,表示二者接近并且同号。
下图为三种模型的ys形式的error函数之间的关系:
分析:
其中:
蓝色折线为0/1error,其中y大于0时,error=0,ys小于0时,error=1;
红色曲线为平方error,当ys<<1时,其效果与0/1error在本范围内的效果近似,当ys>>1时,其效果与0/1error相差很大,因此只可以在平方error很小的时候可以使用平方error替代0/1error;
黑色为交叉熵error,为便于比较我们做一个简单的缩放(换底),结果如右图,同样只有当交叉熵error很小的时候可以使用交叉熵error近似的替代0/1error,另外,缩放后的交叉熵error函数很适合作为0/1error函数的上界。
换底公式:
进而:
再由VC限制理论可以得到:
上面的不等式为在VC限制下的及其上界,其中
为模型复杂度,在二元分类中可以写成
。
因此可以得出:
小的可以由小的
得到也可以由小的
得到,即线性回归模型和logistic回归模型可以用作二元分类。
下图为三种模型的分类流程以及利弊:
Stochastic Gradient Descent
随机梯度下降
两种迭代优化算法的通式:
其中PLA:
logistic回归的梯度下降:
对比:PLA仅仅需要一个样本点就可以计算出,每次迭代的时间复杂度为O(1);logistic回归使用的梯度下降法需要遍历多有的样本点后才能计算出
,每次迭代的时间复杂度为O(N)。
下面我们讨论如何将logistic中的梯度下降法每次迭代的时间复杂度变为O(1):
由上图可知,梯度是通过求取所有样本点的梯度加权和得到的,现在考虑如何使用一个样本点来近似这个平均值。
我们可以讲平均的过程理解为求取期望,现在我们使用在样本点钟随机取出的一个样本点的梯度值来取代这个期望梯度值,这样随机选取样本点的梯度称为随机梯度(如上图)。
上图中的后式:随机梯度可以看成一个真的梯度加上一个噪声,这种使用随机梯度来替代期望梯度的方法称为随机梯度下降(SGD)。这种方法在迭代次数足够多的时候,平均的随机梯度与真实的期望梯度差别不大。
下图为SGD算法的优缺点:
SGD公式:
联系到PLA:
结论:SGD类似于软的PLA(的权值为在0~1之间的值)。SGD中如果
并且
始终是一个很大的值,那么SGD相当于PLA。其中,SGD需要调节两个参数,迭代次数t和学习速率
(经验值为0.1126)。
Multiclass via Logistic Regression
用logistic回归实现分类
多分类:
实际中多分类问题也可以使用二分类方法来解决:
当几种情况合并时:
分析:上图边缘的阴影三角形为两个响铃的类别共存的区域,即,同一片区域可能会属于不同的类别。
解决:使用软分类类解决,即不强制将一个样本点划分为两个类别中的一种,而是改成该样本点是类别A/B的可能性。
最终:选择样本点在四种软的二元分类上的概率,取其中概率最大者为其所属类别,如下图