为什么逻辑回归的代价函数是对数表达式?

Why the cost function of logistic regression has a logarithmic expression?

逻辑回归的成本函数是

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

我的问题是成本函数的对数表达式的依据是什么。它来自哪里?我相信您不能随便输入“-log”。如果有人可以解释成本函数的推导,我将不胜感激。谢谢。

Source: my own notes taken during Standford's Machine Learning course in Coursera, by Andrew Ng. All credits to him and this organization. The course is freely available for anybody to be taken at their own pace. The images are made by myself using LaTeX (formulas) and R (graphics).

假设函数

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

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

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

成本函数

成本函数表示优化objective。

尽管代价函数的一个可能定义可能是假设h_θ(x)和实际值y[=之间的欧氏距离的平均值55=]在训练集中的所有m个样本中,只要假设函数是用sigmoid函数构成的,这个定义就会得到一个非凸的成本函数,这意味着在达到全局最小值之前可以很容易地找到局部最小值。为了保证代价函数是凸的(从而保证收敛到全局最小值),代价函数使用sigmoid函数的对数进行变换.

这样优化objective函数可以定义为训练集中costs/errors的均值:

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

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

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

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

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

逻辑回归的模型为:

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

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

我想不通 "convex" 点的答案。相反,我更喜欢惩罚程度的解释。对数成本函数会严重惩罚自信和错误的预测。 如果我如下使用 MSE 的成本函数。

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

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