为啥逻辑回归的代价函数有对数表达式?
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 逻辑回归代价函数偏导证明