您的位置:首页 > 其它

逻辑回归:损失函数与梯度下降

2017-09-05 15:28 295 查看
1 sigmoid函数

2 极大似然估计MLE与损失函数

3 梯度下降

4 另一种形式的损失函数及其梯度

1.1 sigmoid函数

由于二分类结果是1或者0,这与数学的阶跃函数很类似,但是阶跃函数在x=0的位置会发生突变,这个突变在数学上很难处理。所以一般使用sigmoid函数来拟合:

g(z)=11+e−z(1)

具体应用到逻辑回归算法中:

z=ω0+ω1x1+ω2x2+......+ωnxn=∑i=0nωixi=ωTX(2)

其中xi表示样本属性(对于我们而言,就是标签IP)的值, ωi表示这个属性对应的系数(也就是算法需要计算的内容)。注意这里将x0与ω0也代入了上述公式,其中前者恒为1。于是问题就变成了在训练样本中,已知属性x与最终分类结果y(1或者0)时,如何求得这些系数 ωi,使得损失最小。

1.2 极大似然估计MLE与损失函数

在机器学习理论中,损失函数(loss function)是用来衡量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,损失函数越小,模型越优(还需考虑过拟合等问题)。损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子

ω∗=argminω1m∑i=1mL(yi,f(xi;ω))+λ Φ(ω)(3)

其中m表示样本的数量。对于逻辑回归,其loss function是log损失,这可以通过极大似然估计进行推导得到。

首先,给定一个样本x,可以使用一个线性函数对自变量进行线性组合,即上述的(2)式子:

z=ω0+ω1x1+ω2x2+......+ωnxn=∑i=0nωixi=ωTX(4)

根据sigmoid函数,我们可以得出预测函数的表达式为:

hω(x)=g(ωTx)=11+e−ωTx(5)

上式表示y=1的预测函数为hω(x)。在这里,假设因变量y服从伯努利分布,取值为0和1,那么可以得到下列两个式子:

p(y=1|x)=hω(x)(6)

p(y=0|x)=1−hω(x)(7)

而对于上面的两个表达式,通过观察,我们发现,可以将其合并为以下表达式:

p(y|x)=hω(x)y(1−hω(x))1−y(8)

根据上面的式子,给定一定的样本之后,我们可以构造出似然函数,然后可以使用极大似然估计MLE的思想来求解参数。但是,为了满足最小化风险理论,我们可以将MLE的思想转化为最小化风险化理论,最大化似然函数其实就等价于最小化负的似然函数。对于MLE,就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说是什么样的参数才能使我们观测到目前这组数据的概率最大。使用MLE推导LR的loss function的过程如下。

首先,根据上面的假设,写出相应的极大似然函数(假定有m个样本):

L(ω)=∏i=1mp(yi|xi;ω)=∏i=1mhω(xi)yi(1−hω(xi)1−yi(9)

上述式子中的ω及xi均为向量,并未显示其转置。

直接对上面的式子求导会不方便,因此,为了便于计算,我们可以对似然函数取对数,经过化简可以得到下式的推导结果:

logL(ω)=∑i=1mlog[(hω(xi)yi(1−hω(xi))1−yi)]=∑i=1m[yiloghω(xi)+(1−yi)log(1−hω(xi))](10)

因此,损失函数可以通过最小化负的似然函数得到,即下式:

J(ω)=−1m∑i=1m[yiloghω(xi)+(1−yi)log(1−hω(xi)](11)

在周志华版的机器学习中,将sigmiod函数代入hω(xi),并使用ln代替log,上述公式表示为:

J(ω)=−1m∑i=1m[yilnhω(xi)+(1−yi)ln(1−hω(xi)]=−1m∑i=1m[yiln11+e−ωxi+(1−yi)lne−ωxi1+e−ωxi]=−1m∑i=1m[ln11+eωxi+yiln1e−ωxi]=1m∑i=1m[−yiwxi+ln(1+eωxi)](12)

在某些资料上,还有另一种损失函数的表达形式,但本质是一样的,如下【推导见下面1.4】:

J(ω)=1m∑i=1mlog(1+e−yiωx)(13)

1.3 梯度下降

这里就以梯度下降为例对逻辑回归进行求解,其迭代公式的推导过程如下:

∂J(ω)∂ωj=−1m∑im[yi(1−hω(xi))⋅(−xi,j)+(1−yi)hω(xi)⋅(xi,j)]=−1m∑im(−yi⋅xi,j+hω(xi)⋅xi,j)=−1m∑im(hω(xi)−yi)xi,j(12)

上述中xi,j表示第i个样本的第j个属性的取值。

于是,ω的更新方式为:

ωj+1=ωj−α∑i=1m(hω(xi)−yi)xx,j(13)

对于随机梯度下降,每次只取一个样本,则ω的更新方式为:

ωj+1=ωj−α(hω(x)−y)xj(13)

其中x为这个样本的特征值,y为这个样本的真实值,xj为这个样本第j个属性的值。

这使用周志华版的损失函数更容易得出这个结论。

1.4 另一种形式的损失函数及其梯度

与上面相同,根据sigmoid函数,我们可以得出预测函数的表达式为:

hω(x)=g(ωTx)=11+e−ωTx(5)

上式表示y=1的预测函数为hω(x)。

但与上面不同,我们假设样本的分布为{-1,1},则

p(y=1|x)=hω(x)(14)

p(y=−1|x)=1−hω(x)(15)

对于sigmoid函数,有以下特性(简单推导一下就可以得到):

h(−x)=1−h(x)(14)

于是(14)(15)式可以表示为:

p(y|x)=hω(yx)(16)

同样,我们使用MLE作估计,

L(ω)=∏i=1mp(yi|xi;ω)=∏i=1mhω(yixi)=∏i=1m11+e−yiwxi(17)

对上式取对数及负值,得到损失为:

−logL(ω)=−log∏i=1mp(yi|xi;ω)=−∑i=1mlogp(yi|xi;ω)=−∑i=1mlog11+e−yiwxi=∑i=1mlog(1+e−yiwxi)(18)

即对于每一个样本,损失函数为:

L(ω)=log(1+e−yiwxi)(19)

对上式求梯度,容易得到:

∂J(ω)∂ωj=−yixi1+eyiωxi(20)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息