3.逻辑回归,损失函数,以及正则化处理

1. 逻辑回归

在分类问题中,我们要预测的变量 y 是离散的值,使用前面的线性回归似乎无法实现了,这时,就需要使用逻辑回归算法了,其实 logistic 就是基于线性回归的分类算法,是一种经典常用的分类算法。

对于二元分类问题,因变量的可能属于的两个类别分别称为负向类和正向类,因变量的取值只能在 0 和 1 之间,通常 0 表示负类,1表示正类。

想要分类器的输出值在 0 和1之间,因此希望找到一个假设函数,要求它的预测值在 0 和 1 之间。这便是逻辑回归模型的假设:
h θ ( x ) = g ( θ T X ) h_{\theta}(x)=g\left(\theta^{T} X\right) hθ(x)=g(θTX)
其中,𝑋 代表特征向量,𝑔 代表逻辑函数,通常是 sigmoid 函数,该函数的公式为:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
hθ(x)作用是对于给定的输入变量,根据选择的参数计算输出变量等于1的可能性,即:hθ(x)=P(y=1|x=θ)。

2. 决策边界

在逻辑回归中,我们预测有:

  • 当ℎ𝜃 (𝑥) >= 0.5时,预测 𝑦 = 1。

  • 当ℎ𝜃 (𝑥) < 0.5时,预测 𝑦 = 0 。

而根据 sigmoid 函数 g(z),有如下性质:
{ g ( z ) > 0.5 z > 0 g ( z ) = 0.5 z = 0 g ( z ) < 0.5 z < 0 \left\{\begin{array}{ll} g(z)>0.5 & z>0 \\ g(z)=0.5 & z=0 \\ g(z)<0.5 & z<0 \end{array}\right. g(z)>0.5g(z)=0.5g(z)<0.5z>0z=0z<0
观察上面两点,我们可以发现其实根据 z 也就是θ^T x 的正负性,就可以判断出最终类别。而原本的 z 函数在笛卡尔坐标系上关于0的分界线,也就是所谓的决策边界。在二维平面,逻辑回归算法的决策边界是一条直线。

在这里插入图片描述

当数据分布较为错乱时,我们的决策边界曲线也随之变得更加复杂,与之对应的就是回归模型愈加复杂。已经无法使用简单的线性模型来实现了,跳出了逻辑回归的范畴。

3. 代价函数

在线性回归中,代价函数的定义时所有模型误差的平方和,也就是均方误差。理论上来说,逻辑回归模型本质上也可以使用这个定义,但是得到的代价函数是一个非凸函数,这导致函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。

因此,一般选择使用交叉熵误差作为分类问题的损失函数。
Cost ⁡ ( h θ ( x ) , y ) = { − log ⁡ ( h θ ( x ) )  if  y = 1 − log ⁡ ( 1 − h θ ( x ) )  if  y = 0 \operatorname{Cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned} -\log \left(h_{\theta}(x)\right) & \quad \text { if } y=1 \\ -\log \left(1-h_{\theta}(x)\right) & \quad \text { if } y=0 \end{aligned}\right. Cost(hθ(x),y)={log(hθ(x))log(1hθ(x)) if y=1 if y=0
在得到这样一个代价函数以后,我们便可以使用梯度下降算法来球的使损失函数最小的参数。
R e p e a t { θ j : = θ j − α ∂ ∂ θ j J ( θ ) ( s i m u l t a n e o u s l y   u p d a t e   a l l   θ j ) } Repeat \left\{\theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta)\right. \\ (simultaneously \ update \ all \ \theta_{j} ) \} Repeat{θj:=θjαθjJ(θ)(simultaneously update all θj)}

4. 高级优化

对于损失函数最小值的参数寻优,梯度下降并不是我们可以使用的唯一算法,而且我们需要意识到梯度下降易限于局部最优点的缺陷。还有一些其它算法,更高级、更复杂:

相比于梯度下降,这些算法的主要特点在于:

  • 不需要手动选择学习率,这些算法存在一个智能的内部循环,称为线性搜素算法,它可以自动尝试不同学习率,并选择一个较好的结果,甚至在每次迭代时变化学习率。
  • 算法更加复杂,但往往收敛得更快。

5. 多分类问题

逻辑回归算法在二维平面的决策边界曲线是一条直线,无法直接实现多分类算法。

为了能实现这样的转变,我们将多个类中的一个类标记为正向类(𝑦 = 1),然后将其他所有类都标记为负向类,得到一个模型。接着,类似地第我们选择另一个类标记为正向类(𝑦 = 2),再将其它类都标记为负向类,再得到一个模型,依此类推。多个模型对应的决策边界曲线分割的不同区域,便对应多种分类结果。

当然,我们也可以使用更加高级的分类方法,如神经网络,通过 softmax 激活函数进行最终转化,可以实现一次性多分类。不过,那时,我们的决策边界曲线也是更加复杂的了。

6. 正则化

正则化,也叫做岭回归(Ridge Regression)

正则化技术主要是为了解决过拟合的问题。过拟合指的是:对样本数据具有很好的判断能力,但是对新的数据预测能力很差。

如果是多项式拟合,x的次数越高,拟合的效果越好,但是相应的预测能力就可能变差。对于过拟合,常见的解决方法是:

  • 丢弃一些不能正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法,例如PCA。
  • 正则化。保留所有的特征,但是减少参数的大小magnitude。

在多项式回归中,主要是高次项产生的过拟合问题,为了减少高次项的影响,在损失函数中加入正则项,这个正则项我们可以理解为对高次项的一种惩罚机制。对于线性回归,修改后的代价函数如下所示:
J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right] J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]
而对于逻辑回归,修改后的代价函数如下:
J ( θ ) = 1 m ∑ i = 1 m [ − y ( i ) log ⁡ ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x i ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{m} \sum_{i=1}^{m}\left[-y^{(i)} \log \left(h_{\theta}\left(x^{(i)}\right)\right)-\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{i}\right)\right)\right]+\frac{\lambda}{2 m} \sum_{j=1}^{n} \theta_{j}^{2} J(θ)=m1i=1m[y(i)log(hθ(x(i)))(1y(i))log(1hθ(xi))]+2mλj=1nθj2
其中𝜆又称为正则化参数,一般地,不对θ0进行惩罚;加上正则化参数实际上是对参数θ进行惩罚。

如果令 𝜆 的值很大的话,为了使 Cost Function 尽可能的小,所有的 𝜃 的值 (不包括𝜃0)都会在一定程度上减小。但若 λ 的值太大了,那么𝜃(不包括𝜃0)都会趋近于 0,这样我们所得到的只能是一条平行于𝑥轴的直线。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⁠脱欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值