初识 softmax函数

交叉熵损失函数(Cross Entropy Loss function )

我们从一道面试题目中引入相关概念。 初识 softmax函数

定义两个模型。

初识 softmax函数

1.1分类错误率(Classification Error)作为损失函数

初识 softmax函数
第一种损失函数:分类错误率。就只是简单将错误的个数比上所有的个数,这样就会损失掉一些比较深层次的信息,就好比如在这个例子中两个模型的损失函数的值都相同,但是模型Ⅱ要优于模型Ⅰ

1.2均方误差(Mean Sqared Error)作为损失函数

初识 softmax函数
如上有明显区分模型Ⅰ和模型Ⅱ的能力,但是我们暂时不会使用MSE作为分类的损失函数,这点我们下面会有讲。

1.3交叉熵损失函数(Cross Entropy Loss Function)作为损失函数

(一)   二分类的情况,也就是我们只要区分“是”或者“不是”:
初识 softmax函数
(二)   多分类的情况,我们要区分是“哪一类”,但是其实本质上和二分类没区别,可以理解为二分类的拓展:
初识 softmax函数
我们再来看下上述的两个模型在交叉熵损失函数上的表现如何:
初识 softmax函数
由此,交叉熵损失函数也有甄别模型相对好坏的能力

由之前的知识和二三题做个小总结:

初识 softmax函数

为了解决第四题,我们还需回顾下线性回归的实现。

step1.定义线性模型: \(\hat{y} = w^Tx\)
step2.定义loss function:

\[loss = l^{(i)}(w,b) = \frac{1}{2}(\hat{y}^{(i)} - y^{(i)})^2 \]

则有:

\[L(w,b) = \frac{1}{m} \Sigma_{i=1}^{m}loss = \frac{1}{m} \Sigma_{i=1}^{m}(\hat{y}^{(i)} - y^{(i)})^2 = \frac{1}{m} \Sigma_{i=1}^{m}(w^Tx^{(i)}+b - y^{(i)})^2 \]

step3.使用SGD(mini-batch gradient descent)使我们的损失函数\(L(w,b)\)最小化,并且得到此时的\(w*,b* = \arg max_{w,b}L(w,b)\)

\[(w,b)←(w,b)−\frac{η}{|B|}∑_{i∈B}∂_{(w,b)}l_{(i)}(w,b). \]

其中\(|B|\)指的是批量的大小,学习率\(η\),直到\(∂_{(w,b)}\)收敛得到我们的超参数\(w,b\)

第四题 为什么我们使用交叉熵而不用MSE呢?

在吴恩达老师的机器学习的 逻辑回归 的一课中有讲到:
初识 softmax函数
在我们将Hypothesis Function \(h_\theta (x) = \theta^{T}x + b\) 替换成\(h_\theta (x) = \frac{1}{1+\exp{\theta^{T}x}}\)之后,我们得到的损失函数的图像极有可能是长成这个样子的:
初识 softmax函数
这个时候就要改变我们策略,稍稍修改下\(J(\theta)\),\(J(\theta) = \frac{1}{m}\Sigma_{i=1}^{m}Cost(h_\theta (x^{(i)}) , x^{(i)})\)
初识 softmax函数
初识 softmax函数

文章还在编辑,如果有遗漏或者错,劳烦指正,谢谢

上一篇:linux系统自动更新时间


下一篇:Linux中shell script的使用