这篇博文主要介绍的是在机器学习中的回归问题以及分类问题中的一个非常具有概括性的模型:广义线性模型(Generalized Linear Models,简称GLMs),这类模型包括了回归问题中的正态分布,也包含了分类问题中的伯努利分布。随着我们的分析我们会发现,广义线性模型不仅可以导出Logistics回归,也可以导出Softmax回归。
在导出模型之前,先得介绍一下指数族(The exponential family)。
先给出指数族分布的定义式:
由这个形式我们可以看出,只要我们确定了T,a,b函数的具体形式,分布就变成了一个由η参数化确定的分布。很多我们常见的分布,比如伯努利分布、正态分布都可以写成指数族的形式,下面笔者便写写如何将这些分布转化为指数分布的形式。
由上述的分析我们可以知道,要想把分布写成指数族的形式就需要确定分布的T,a,b函数。
伯努利分布是一个二值分布,y只能取1或者0。伯努利分布可以写成如下形式:
p(y=1;φ)=φ
p(y=0;φ)=1-φ
将这个式子更加简练的书写便成了下面的形式:
然后我们进一步变化式子:
那么我们现在便将φ转化为η:
则
我们发现其实这个就是Logistic回归中的Sigmoid函数。然后带入转化为指数族:
对比指数族函数定义式我们便确定了T,a,b函数形式从而转化成了指数族的表达形式。
正态分布(又名高斯分布)是一个钟形分布,被广泛应用于各个领域。
在构建正态分布的参数中我们只考虑μ,忽视σ这个参数,用1代替σ方(在机器学习数学原理1中的极大似然估计法我们已经看到σ并没有起到十分关键的作用)。正态分布的式子我们先写出来:
然后我们将它转化为指数族形式:
然后参数μ换成η就行了。
这里需要说明的是η不一定是一个实数,也可以是一个向量,这个时候T也是一个向量。
前面介绍了指数族,这个是为了方便我们导出广义线性模型所做的必要的准备。接下来笔者就来说明一下如何使用指数族来构建广义线性模型。
在构建广义线性模型的过程中,为了方便导出模型,这里需要作三个关于分布的假设。需要说明的是,与其说是“假设”,其实说成“选择”更加合理,因为这些假设并没有非常有逻辑性的推理,而是我们为了方便导出广义相对模型中一些相当漂亮的算法所做的设计选择。
普通最小二乘法我们知道使用的是y|x;θ是属于高斯分布的。由假设2我们可以知道预测函数就是:
其中最后一个等号使用的是假设3。
Logistic回归使用的是y|x;θ是属于二类分布即伯努利分布。由假设2我们可以知道预测函数就是:
即我们前几篇博文讨论过后的Logistic回归模型。其中最后一个等号使用的是假设3。
Softmax回归模型是个基于多分类问题的模型。即现在y的取值可以是{1,2,3,…,k}中的任意一个值,其中取i的概率为φi。这里我们知道这k个概率和为1,故其实独立参数的个数为k-1个。
这里需要注意的是为了将式子表示成指数族,T(y)不再等于y!
首先我们先定义T(y):
这里T(y)为一个k-1的向量,T(k)为0向量,总结一下可以写成满足如下式子:
其中judge函数为判断函数,条件为真返回1,为伪返回0,脚标i表示向量的第i项。
进一步的,我们可以知道:
写的简洁一点便有:
这里需要再次强调的是概率φk不是独立的。
接下来写成指数族的形式:
现在我们做如下向量代换:
然后再令
接下来便可以写成指数族形式了:
由上我们便转化成功了,同样上面也给出了η与φi的关系,为了方便,我们规定η(k)=ln(1)=0,则经过一系列代数运算可以得到:
所以有:
现在我们便得出了Softmax回归模型的预测函数。
如上我们已经得到了各个分布的模型,下一步就是使用样本数据通过各种算法调整参数θ,使得其似然性最大(关于极大似然估计法请看上一篇博文)。然后这个模型便训练好了。一个预测函数便确定了。
由于这篇博文主要讲的是广义线性模型,故参数调整的方法不再赘述,这里可以说一下的是主要的方法有批量梯度下降法,随机梯度下降法,牛顿法等等。