优化逻辑回归中的权重(对数似然)

在逻辑回归中:

假设函数,

                   h(x) = ( 1 + exp{-wx} )^-1

其中,w – 需要拟合或优化的权重/参数


成本函数(负对数似然函数)定义为:

对于一个单一的训练示例(x,y):

         l(w) = y * log ( h(x) ) + (1 - y) * log ( 1 - h(x) )

目标是最大化所有训练样本上的l(w),从而估算w。


问题:

考虑一种情况,其中正样本(y=1)的训练示例远多于负样本(y=0)的训练示例。

为了简化:

如果我们只考虑正样本(y=1):算法运行如下:

           maximize ( l(w) )          =>  maximize ( y * log ( h(x) ) )          =>  maximize ( log( h(x) ) )          =>  maximize ( h(x) ); 因为log(z)随z增加而增加          =>  maximize ( ( 1 + exp{-wx} )^-1 )          =>  maximize ( wx ); 因为较大的wx会增加h(x)并使其更接近1

换句话说,优化算法会尝试增加(wx)以更好地拟合数据并增加似然性。


然而,算法似乎有可能通过一种非预期的方式增加(wx),但并不会以任何方式改善解决方案(决策边界):

             通过缩放w: w' = k*w  (其中k为正常数)

我们可以增加(k*wx)而不会以任何方式改变我们的解决方案。

1) 为什么这不是问题?或者这是问题吗?

2) 有人可能会争辩说,在正样本远多于负样本的数据集中,算法会试图不断增加||w||。


回答:

  1. 这有时是一个问题,但通过正则化可以解决
  2. 只有在类别完全分离时

如果只有y=1,算法确实会试图使wx尽可能大,并且永远不会收敛。但如果只有一个类别,你根本不需要逻辑回归。

如果数据集不平衡(y=1远多于y=0),一般来说,逻辑回归不会遇到收敛问题

让我们来看看为什么。假设你只有一个负样本x_0,和N个相同的正样本x_1。那么对数似然将如下所示:

l(w) = N * log(h(x_1)) + log(1-h(x_0))

h(x)在0和1之间有界,因此两个分量都由0上界,但下界无界。

现在,如果w足够大并且你继续增加它,第一个项只会略有增加(因为它已经接近0),但第二个项可能会非常快地减少(因为log(x)x接近0时会非常快地趋向于负无穷)。如果你无限增加wl(w)将趋向于负无穷。因此,存在一个有限的w可以最大化似然

但有一个重要的例外。当类别被某个超平面完全分离时(这与类别大小几乎无关)。在这种情况下,第一个和第二个项都会趋向于0,而||w||趋向于无穷大。

但如果类别完全分离,你可能根本不需要逻辑回归!它的力量在于概率预测,但在完全分离的情况下,预测可能是确定性的!所以你可以对数据应用,例如,SVM。

或者你可以解决一个正则化问题,最大化l(w)-lambda*||w||。例如,在scikit-learn中,逻辑回归正是这样做的。在这种情况下,如果l(w)足够接近0,||w||将占主导地位,并且目标函数最终会在w中减少。

因此,目标函数中的一个小惩罚解决了你的担忧。这是广泛应用的解决方案,不仅在逻辑回归中,在线性模型(Lasso,Ridge等)和神经网络中也是如此。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注