为啥逻辑回归的代价函数有对数表达式?

Posted

技术标签:

【中文标题】为啥逻辑回归的代价函数有对数表达式?【英文标题】:Why the cost function of logistic regression has a logarithmic expression?为什么逻辑回归的代价函数有对数表达式? 【发布时间】:2016-01-04 07:47:15 【问题描述】:

逻辑回归的成本函数是

cost(h(theta)X,Y) = -log(h(theta)X) or -log(1-h(theta)X)

我的问题是成本函数的对数表达式的基础是什么。它来自哪里?我相信你不能随便把“-log”放在外面。如果有人可以解释成本函数的推导,我将不胜感激。谢谢。

【问题讨论】:

这是一个有趣的问题,但与编程无关。可能更适合stats 日志将产品转化为总和。区分和比区分产品更容易。 【参考方案1】:

我无法回答“凸”点的答案。相反,我更喜欢惩罚程度的解释。对数成本函数会严重惩罚自信和错误的预测。 如果我使用 MSE 的成本函数,如下所示。

If y=1 cost=(1-yhat)^2; if y=0 cost=yhat^2.

这个成本函数也是凸的。但是,它不像对数成本那样凸。 如果我对凸的定义有误,请告诉我。我是回归的初学者。

【讨论】:

【参考方案2】:

问题是成本函数(sigmoid 函数)将返回 [0,1] 之间的输出,但是当我们将大型数据点上的 sigmoid 值相加时,我们可能会遇到数值稳定性问题,因为 sigmoid 函数的结果可能是非常小的十进制数。 在 sigmoid 函数上使用 log() 函数还可以解决出现的数值计算问题,而不会实际影响优化目标。

【讨论】:

【参考方案3】:

这个成本函数只是对最大(对数)似然标准的重新表述。

逻辑回归的模型是:

P(y=1 | x) = logistic(θ x)
P(y=0 | x) = 1 - P(y=1 | x) = 1 - logistic(θ x)

可能性写成:

L = P(y_0, ..., y_n | x_0, ..., x_n) = \prod_i P(y_i | x_i)

对数似然是:

l = log L = \sum_i log P(y_i | x_i)

我们想找到最大化可能性的θ:

max_θ \prod_i P(y_i | x_i)

这与最大化对数似然相同:

max_θ \sum_i log P(y_i | x_i)

我们可以将其重写为成本 C=-l 的最小化:

min_θ \sum_i - log P(y_i | x_i)
  P(y_i | x_i) = logistic(θ x_i)      when y_i = 1
  P(y_i | x_i) = 1 - logistic(θ x_i)  when y_i = 0

【讨论】:

比目前接受的答案要好得多。显示与使用可能性及其概率性质的最终目标的链接,而不是使解决方案凸出的数学怪癖。由于决策理论,该过程的成本解释是次要的,该理论指出,每个最佳决策都是在做出与备选方案相关的成本时做出的。【参考方案4】:

我的理解(这里不是 100% 专家,我可能是错的)是 log 可以粗略地解释为取消出现在公式中的 exp gaussian 概率密度。 (记住-log(x) = log(1/x)。)

如果我正确理解 Bishop [1]:当我们假设我们的正负训练样本来自两个不同的高斯集群(不同的位置但相同的协方差)时,我们可以开发一个完美的分类器。而且这个分类器看起来就像逻辑回归(例如线性决策边界)。

当然,下一个问题是,当我们的训练数据经常看起来不同时,为什么要使用最佳分类器来分离高斯集群?

[1] 模式识别和机器学习,Christopher M. Bishop,第 4.2 章(概率生成模型)

【讨论】:

【参考方案5】:

来源:我自己在Standford's Machine Learning course in Coursera 期间所做的笔记,作者 Andrew Ng。他和这个组织的所有功劳。任何人都可以按照自己的步调免费学习该课程。这些图像是我自己使用 LaTeX(公式)和 R(图形)制作的。

假设函数

当要预测的变量y只能取离散值(即:分类)时,使用逻辑回归。

考虑一个二元分类问题(y只能取两个值),那么有一组参数θ和一组输入特征x,可以定义假设函数,使其在[0, 1]之间有界,其中g()表示sigmoid函数:

这个假设函数同时表示y = 1 在输入x 上的估计概率,由θ 参数化:

成本函数

成本函数代表优化目标。

虽然成本函数的一个可能定义可能是假设 h_θ(x) 和所有 中的实际值 y 之间的欧几里得距离的平均值>m 个训练集中的样本,只要用 sigmoid 函数形成假设函数,这个定义会产生一个非凸的代价函数,也就是说有一个局部最小值在达到全局最小值之前很容易找到。为了确保成本函数是凸的(从而确保收敛到全局最小值),使用 sigmoid 函数的对数来转换成本函数

这样优化目标函数可以定义为训练集中成本/误差的平均值:

【讨论】:

很好的解释“为了确保成本函数是凸的(并因此确保收敛到全局最小值),使用sigmoid函数的对数转换成本函数。”

以上是关于为啥逻辑回归的代价函数有对数表达式?的主要内容,如果未能解决你的问题,请参考以下文章

跟着吴恩达老师学习机器学习的第七天 - logistic回归的假设函数math表达式+决策界限+代价函数+简化代价函数和logistic回归方程的梯度下降+用逻辑回归解决多类别分类问题

对数回归的成本函数

derivative of cost function for Logistic Regression 逻辑回归代价函数偏导证明

理解代价函数

手写逻辑回归算法

Logistic 回归