摘要: 本文主要讲的是近几个月来的一些研究成果,通过构建增强式的快速迭代logistics判别分类器,就是通过组合随机梯度(SGD),提升算法(adaboost),logistics模型。
具体地:通过利用SGD估计每个logistics弱分类器参数,同时基于每个弱分类器,通过adaboost更新样本的权重以及计算每个分类器权重,最后组合多个弱分类器,构成一个强分类输出判别。
理论概述
梯度算法在机器学习常被用于参数的迭代估计,当维度与样本数大幅上升时,其表现出的估计性能与速度也十分可观。
假设如下方程
其中
为系数和变量对应向量表达式。
再定义如下损失函数
其中
据此,为最小化上述
其中
其中
结合(2)式和(3)式,假设只有一个样本,则可以得到:
其中i表示样本维度i,当样本数为m时,则:
其中j表示样本j。
可以看出,每次迭代都要遍历m个样本,当样本数量太大时,其复杂度
其表达式如下:
需要说明的是,当用于判别分类算法中时,其中
其中如上文所述,由于随机路径梯度下降,所以容易陷入局部最优,一个较好的解决办法是赋予多次不同的初始值,同时结合判别误差率作为跳出条件。
为更形象理解批梯度和随机梯度,下图3、4为批梯度下降路径和随机梯度下降路径:
可以看出,批梯度下降在每次迭代时都会朝最优方向前进,而随机梯度通常经过多次“峰回路转”最终达到“谷底”,所以随机梯度算法对初始值要求比较高,通常一个好的初始值能尽最大程度优化过程,而对于初始值取法将在下文实证部分进一步说明。
为更好阐述logistic算法细节,有必要先引入OLS模型(最小二乘回归法),假设二分类回归方程
其中
由于
可以看出,
上述式(7)和(8),通常还成为LPM(线性概率模型),而关于该模型的探讨,将直接体现出logistic算法的优势,以及为什么使用logistic作为进一步的判别算法。
那么首先,针对上述式(6),其残差
其中:
则令式(9)为0,得到:
由此我们得到一个重要的性质,方差的齐性,而上述
同时,LPM模型对于概率的上下界没有限定,存在溢出[0,1]的情况,最后,由于其线性的关系,无法满足式(6)二分类性质,基于此,logistic算法的提出,在一定程度上很好地解决了上述问题,其一般形式如下:
假设残差
式(10)即为logistic算法的核心表达式,其分布呈S形,如下图(5)所示:
可以看出:
同时,由式(10),可以进一步得到:
两边取对数可以得到:
如此一来,把logistic模型化为线性形式,其各种性质可以借用上文对LPM模型的分析,但是又不局限于LPM,其不存在概率溢出问题,同时表达式更加契合二分类问题结构形式。
关于logistic算法参数的进一步估计推导,将在第4部分结合随机梯度算法进一步阐述。
Adaboost是一种增强式学习算法,它能在普通算法产生的弱分类器的基础上通过集成多个分类器,进而学习得到一种强分类器。对于adaboost的概述,要从Valiant提出的PAC(Probably Approximately Correct)学习模型入手,其定义了强弱两种学习过程。
对于强学习而言,假设存在N个数据点的样本集
下面更详细阐述Adaboost算法框架:
假设样本集
其中
假设弱分类器
据此进一步计算该分类误差
上述误差率是利用样本权重加权的误差,通俗可理解为样本的平均误差。得到分类器
如此我们进入迭代循环,重新分配样本的权重:
其中:
当分类结果与实际结果一致时, e的指数部分为负,结果不同时, e的指数部分为正,如此通过重新更新权重,对于分类错误的点将赋予更高的权重,对于分类正确的点,将降低其权重。这样在下一轮迭代中,对于正确分类上一轮误判点的分类器,将更容易通过设定的条件阈值。
如此重复式(12)-(16),直至
通过此,通过迭代M个弱分类器,集成产生一个强分类器。
4. SGD
上文简述了三个理论算法,同时也简单涉及到体系,下面将更加系统地将上述三个理论融合在一起,形成一套科学完善的体系。
一般在开展理论算法之前,理解需求和业务背景是首要,由于业务背景因平台而异,所以这里不多说,其次是模型的特征工程,一般特征工程包括缺失值处理,数据规约,降维等,实证部分对此将会介绍一些方法和手段,完成上述两步,就可以开始算法的构建,下面系统阐述本文的理论:
首先将特征工程一步的结果输入算法,为样本赋予初始权重:
其次构建一个logistics弱分类器:
通过梯度下降估计参数:
每次迭代估计利用式(21)分类错误率进行判断选择,其中为简化表达式,令偏执项
计算分类错误率:
计算分类器权重
更新样本权重,重新训练分类器:
其中:
重复式(17)-式(22)M次后,构建最终强学习模型:
如此,一套较为完整的理论体系初步构建完成,下面通过实证部分经一部评估解析该理论。
(未完待续)... ...