深度学习基础(一):sigmoid/softmax/cross Entropy

简介: 深度学习基础(一):sigmoid/softmax/cross Entropy

在分类中,首先对于Logistic回归:

8.png

从上图可以看出,

9.png

很明显,其输出f(x;wb)主要是一些连续的实数,可以用于线性回归,但是对于分类问题无法进行直接进行分类预测,这里需要引入非线性的决策函数g(.)—这里我认为就是激活函数,使其输出从连续的实数转换到一些离散的标签。

对于激活函数,可分为一下:

10.png


其中tanh、relu、以及leaky relu激活函数相比sigmoid和softmax不适用与分类,其主要的作用以及差别见链接--------待

这里主要来介绍sigmoid和softmax激活函数,而sigmoid主要用于二分类,softmax激活函数主要用于多分类。

11.png

可以看出其把从实数区间的值挤压到了(0,1)概率之间,这样可以认为:

12.png

这里选取0.5作为阈值可以用于二分类。

13.png如:上图就是判断一张图片是否是猫,答案为:1猫 、0不是猫。

14.png



对于最后的输出经过softmax函数得到的值其和是为1的。

(三)针对上面的激活函数,选择损失函数:

15.png

注:y帽 是预测的值。

这里只列取了两个,对于分类,主要利用第二个—交叉熵损失函数,因为对于第一个平方和损失函数,会导致L是非凸的函数,会有多个极限值。

1)sigmoid激活函数对应的交叉熵损失函数

if y=1,L(y帽,y) = -log(y帽),为了使L较小,希望y帽较大

if y=0,L(y帽,y) = log(1-(y帽)),同理为了使L较小,希望y帽较小.

可以看出对于不同的真值1/0,其y帽对应变大和变小,符合我们的要求。

对于所有样本,即对所有的m个样本进行L平均求和即可。

分析其公式的由来:

因为我们在前面设置了预测的y帽的概率即下面的公式:

16.png


然后,对应我们认为y帽是真值y=1的概率,而1-y帽是真值y=0的概率,然后从下面的推导中(合并p(y|x),取log对数等),可以得出L为上面的公式。

17.png

注:这部分对于上面的p(y=1|x)=sigmoid(x)的由来不是太清楚,可能就是这样定义的吧,然后后面都以此为基础,然后推导出来的。

参考:https://www.bilibili.com/video/BV1w741147Ac?p=9

2)softmax激活函数的交叉熵损失函数

引:其实对于多分类(C>2个类别)问题可以转换为二分类问题

第一种将其转换为1对其余的方式,需要c个判别函数

第二种将其转换为1对1的方式,需要c(c-1)/2的判别函数

第三种,argmax方式,是1对其余的改进方式,不是明确的一对其余,而是比较了其大小。

上面几种或多或少存在些问题,可以自己查一查,并且不常用吧!!

第四种:softmax激活函数。

主要见下面的softmax的交叉熵损失函数:


18.png

其输出有c个值,不像二分类只有一个值,这c个值分别代表每个类别的预测概率,所以可以看到softmax最后的风险函数只有一个分支。最后的loss损失函数:

19.png



分析:

其公式本质应该是(对于一个样本):

20.png

但是,因为其利用了one-hot编码方式,在相乘的时候,只有真实标签对应的logs才会保留,所以可以简化为:

21.png

为什么这种方式符合咱们的条件,可以看下面的例子:

假设一个5分类问题,然后一个样本I的标签y=[0,0,0,1,0],

也就是说样本I的真实标签是4,假设模型预测的结果概率(softmax的输出)p=[0.1,0.15,0.05,0.6,0.1],可以看出这个预测是对的,那么对应的损失L=-log(0.6),也就是当这个样本经过这样的网络参数产生这样的预测p时,它的损失是-log(0.6)。那么假设p=[0.15,0.2,0.4,0.1,0.15],这个预测结果就很离谱了,因为真实标签是4,而你觉得这个样本是4的概率只有0.1(远不如其他概率高,如果是在测试阶段,那么模型就会预测该样本属于类别3),对应损失L=-log(0.1)。那么假设p=[0.05,0.15,0.4,0.3,0.1],这个预测结果虽然也错了,但是没有前面那个那么离谱,对应的损失L=-log(0.3)。我们知道log函数在输入小于1的时候是个负数,而且log函数是递增函数,所以-log(0.6) < -log(0.3) < -log(0.1)。简单讲就是你预测错比预测对的损失要大,预测错得离谱比预测错得轻微的损失要大。

例子参考:https://blog.csdn.net/u014380165/article/details/77284921


总结比较:

22.png

附:

对于交叉熵以及熵 的各个概念的理解,可以参考下面的图片:

23.png


24.png


目前我的理解能力有限,从其本质出发比较吃力,有能力的同学可以看一下,如果有自己的理解,可以给我讲讲。

目录
相关文章
|
机器学习/深度学习 资源调度
深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等
|
机器学习/深度学习 PyTorch API
# 【深度学习】:《PyTorch入门到项目实战》第五天:从0到1实现Softmax回归
softmax回归模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签y可以取两个以上的值。本文基于MNIST手写数字数据集来演示如何使用Pytorch实现softmax回归
# 【深度学习】:《PyTorch入门到项目实战》第五天:从0到1实现Softmax回归
|
机器学习/深度学习 人工智能
深度学习实验:Softmax实现手写数字识别
深度学习实验:Softmax实现手写数字识别
深度学习实验:Softmax实现手写数字识别
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】8.Pytorch实现softmax回归模型训练
【从零开始学习深度学习】8.Pytorch实现softmax回归模型训练
|
机器学习/深度学习 算法 索引
【从零开始学习深度学习】7.自己动手实现softmax回归的训练与预测
【从零开始学习深度学习】7.自己动手实现softmax回归的训练与预测
【从零开始学习深度学习】7.自己动手实现softmax回归的训练与预测
|
机器学习/深度学习
【从零开始学习深度学习】5.用于分类问题的softmax回归模型原理简介
【从零开始学习深度学习】5.用于分类问题的softmax回归模型原理简介
【从零开始学习深度学习】5.用于分类问题的softmax回归模型原理简介
|
机器学习/深度学习
深度学习入门(9)神经网络Affine与Softmax层的计算图表示方式及其误差反向传播的代码实现
深度学习入门(9)神经网络Affine与Softmax层的计算图表示方式及其误差反向传播的代码实现
深度学习入门(9)神经网络Affine与Softmax层的计算图表示方式及其误差反向传播的代码实现
|
机器学习/深度学习 人工智能 Python
【深度学习】4-梯度确认时遇bug:写了个糟糕的softmax函数
【深度学习】4-梯度确认时遇bug:写了个糟糕的softmax函数
174 0
|
机器学习/深度学习
动手学深度学习(二) Softmax与分类模型(二)
动手学深度学习(二) Softmax与分类模型(二)
156 0
|
机器学习/深度学习 算法 PyTorch
动手学深度学习(二) Softmax与分类模型(一)
动手学深度学习(二) Softmax与分类模型(一)
311 0

热门文章

最新文章

相关实验场景

更多