成本函数

为了训练逻辑回归模型中的参数 \(w\)\(b\) ,使得输出值 \(\hat{y}\)
与真实值 \(y\) 尽可能一致,即尽可能准确地判断一张图是否为猫,需要定义一个成本函数(Cost Function)也可以叫作代价函数作为衡量的标准。

单个样本的预测值 \({\hat y}^{(i)}\) 与其真实值 \(y^{(i)}\) 之间的误差大小用损失函数(Loss Function)来衡量。平方误差(Square Loss)就是一种常用的损失函数,其表达式为:

\[{\mathcal{L}(\hat y,y)=\frac{1}{2}(\hat y-y)^2} \]

但Logistic回归中,一般不采用这个损失函数,因为在训练参数过程中,使用这个损失函数将得到一个非凸函数而存在很多个局部最优解,使得后面可能无法使用梯度下降(Gradient Descent)来得到我们想要的最优解。
对这个Logistic回归模型,希望能够满足如下条件概率:

\[p(y|x) = \begin{cases} \hat{y}, & \text{$(y=1)$} \\ 1 - \hat{y}, & \text{$(y=0)$} \end{cases} \]

将上下两个式子合二为一,可写成:

\[p(y|x) = \hat{y}^y (1 - \hat{y})^{(1 - y)} \]

对两边取对数,进一步化简为:

\[log\ p(y|x) = ylog\ \hat y+(1-y)log\ (1-\hat y) \]

我们希望 \(p(y|x)\) 的值越大越好,而损失越小越好。所以为上式添上负号,就可以将它作为一个损失函数,这便是应用很广的交叉熵(Cross Entropy)损失函数,表达式为:

\[{\mathcal{L}(\hat y,y)=-[ylog\ \hat y+(1-y)log\ (1-\hat y)]} \]

交叉熵损失函数有如下性质:

  • \(y^{(i)}=1\)时,\({\mathcal{L}({\hat y}^{(i)},y^{(i)})=-log\ {\hat y}^{(i)}}\)
  • \(y^{(i)}=0\)时,\({\mathcal{L}({\hat y}^{(i)},y^{(i)})=-log\ (1-{\hat y}^{(i)})}\)

对m个训练样本整体的成本函数,可以使用数理统计中的参数估计方法最大似然估计法(Maximum Likelihood Estimation)推导出来的。
假设所有训练样本独立同分布,则它们的联合概率为所有样本概率的乘积,得到似然函数为:

\[P = \prod_{i=1}^m p(y^{(i)}|x^{(i)}) \]

对上式进行极大似然估计,还是两边取对数得:

\[log\ P = \sum_{i=1}^m log\ p(y^{(i)}|x^{(i)}) = -\sum_{i=1}^m \mathcal{L}(\hat{y}^{(i)}, y^{(i)}) \]

对上式再取平均值,得成本函数为:

\[{J(w,b) = \frac{1}{m} \sum_{i=1}^m \mathcal{L}({\hat y}^{(i)}, y^{(i)}) = - \frac{1}{m} \sum_{i=1}^m [ylog\ \hat y+(1-y)log\ (1-\hat y)]} \]

posted @ 2019-03-21 21:48  youngliu91  阅读(1508)  评论(0编辑  收藏  举报