[深度之眼机器学习训练营第四期]对数几率回归

Posted littleorange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[深度之眼机器学习训练营第四期]对数几率回归相关的知识,希望对你有一定的参考价值。

基本概念

对数几率回归(Logistic Regression,又称逻辑回归)可以用来解决二分类和多分类问题。分类问题中,输出集合不再是连续值,而是离散值,即(mathcal{Y}in {0,1,2,cdots})。以二分类问题为例,其输出集合一般为(mathcal{Y}in {0,1})

为了解决二分类问题,对数几率回归在线性回归的基础上引入Sigmoid函数(Logistic函数),其中(exp(cdot))是自然指数:
[ g(z) = dfrac{1}{1 +exp({-z})} ]
该函数的值域为([0,1]),如下图所示:
技术图片
因此,对数几率回归中假设集的定义为:
[ h_ heta (x) = g ( heta^T x ) ]

实际上,(h_{ heta}(x))给出了在给定参数( heta)和样本(x)的条件下,标签(y=1)的概率。
[ egin{aligned}& h_ heta(x) = P(y=1 | x ; heta) = 1 - P(y=0 | x ; heta) & P(y = 0 | x; heta) + P(y = 1 | x ; heta) = 1end{aligned} ]

损失函数

对数几率回归的损失函数如下所示:
[ J( heta) = dfrac{1}{n} sum_{i=1}^N mathrm{Cost}(h_ heta(x^{(i)}),y^{(i)}) mathrm{Cost}(h_ heta(x^{(i)}),y^{(i)}) =left{ egin{aligned} &-log(h_ heta(x^{(i)})) ; & ext{if }y^{(i)} = 1&-log(1-h_ heta(x^{(i)})) ; & ext{if } y^{(i)} = 0 end{aligned} ight. ]
该损失函数通过极大似然法导出。对于给定的输入集(mathcal{X})和输出集(mathcal{Y}),其似然函数为:
[ prod _{i = 1}^n left[h_ heta(x^{(i)}) ight]^{y^{(i)}}left[1 - h_ heta(x^{(i)}) ight]^{1 - y^{(i)}} ]

由于连乘不好优化,因此上式两边取对数,转化成连加的形式,得到对数似然函数:
[ L( heta)=frac{1}{n} sum _{i=1}^n left[ y^{(i)} log h_ heta(x^{(i)}) + (1-y^{(i)})log(1 - h_ heta(x^{(i)})) ight ] ]
最大化上述对数似然函数就可以得到最优的参数( heta)。而最大化对数似然函数(L( heta))等价于最小化(- L( heta)),因此我们可以得到如下损失函数的形式:
[ J( heta) = -frac{1}{n} sum _{i=1}^n left[ y^{(i)} log h_ heta(x^{(i)}) + (1-y^{(i)})log(1 - h_ heta(x^{(i)})) ight ] ]

参数学习

得到损失函数后,需要使用梯度下降法求解该函数的最小值。首先,将损失函数进行化简:
[ egin{aligned} J( heta) &=-frac{1}{n} sum _{i=1}^N left[ y^{(i)} log h_ heta(x^{(i)}) + (1-y^{(i)})log(1 - h_ heta(x^{(i)})) ight ] &=-frac{1}{n} sum _{i=1}^n left[ y^{(i)}log frac {h_ heta(x^{(i)})} {1 - h_ heta(x^{(i)})} + log(1 - h_ heta(x^{(i)})) ight ] &=-frac{1}{n} sum _{i=1}^n left[ y^{(i)} log frac { {exp( hetacdot x^{(i)})} / (1 + exp( hetacdot x^{(i)}))} {{1} /(1 + exp( hetacdot x^{(i)}))} + log(1 - h_ heta(x^{(i)})) ight ] &=-frac{1}{n} sum _{i=1}^n left[ y_i ( hetacdot x^{(i)}) + log(1 + exp ( hetacdot x^{(i)})) ight ] end{aligned} ]

求解损失函数(J( heta))对参数( heta)的偏导数:
[ egin{aligned} frac{partial}{partial heta}J( heta) &=-frac{1}{n} sum _{i=1}^n left [y^{(i)} cdot x^{(i)} - frac {1} {1 + exp( heta cdot x^{(i)})} cdot exp( heta cdot x^{(i)}) cdot x^{(i)} ight ] &=-frac{1}{n} sum _{i=1}^n left [y^{(i)} cdot x^{(i)} - frac {exp( heta cdot x^{(i)})} {1 + exp( heta cdot x^{(i)})} cdot x^{(i)} ight ] &=-frac{1}{n} sum _{i=1}^n left (y^{(i)} - frac {exp( heta cdot x^{(i)})} {1 + exp( heta cdot x^{(i)})} ight ) x^{(i)} &=frac{1}{n} sum _{i=1}^n left (h_ heta(x^{(i)})-y^{(i)} ight )x^{(i)} end{aligned} ]

使用梯度下降法逐个更新参数:
[ heta_j := heta_j - frac{alpha}{n} sum_{i=1}^n left(h_ heta(x^{(i)}) - y^{(i)} ight) x_j^{(i)} ]

以上是关于[深度之眼机器学习训练营第四期]对数几率回归的主要内容,如果未能解决你的问题,请参考以下文章

[深度之眼机器学习训练营第四期]神经网络之参数学习

[深度之眼机器学习训练营第四期]过拟合与正则化

携英第四期丨机器学习之密度聚类算法

机器学习-对数几率回归(逻辑回归)算法

机器学习工程师 - Udacity 深度学习

逻辑回归|机器学习|分类算法