易语言做网站登录器,电子图书网站开发的目的,怎么看网站备案,做羞羞事的网站有哪些文章目录 一、熵和信息熵1.1 概念1.2 信息熵公式 二、KL散度和交叉熵2.1 KL散度(相对熵)2.2 交叉熵 三、Softmax和交叉熵损失函数3.1 Softmax3.2 交叉熵损失函数 一、熵和信息熵
1.1 概念 1. 熵是一个物理学概念#xff0c;它表示一个系统的不确定性程度#xff0c;或者说是… 文章目录 一、熵和信息熵1.1 概念1.2 信息熵公式 二、KL散度和交叉熵2.1 KL散度(相对熵)2.2 交叉熵 三、Softmax和交叉熵损失函数3.1 Softmax3.2 交叉熵损失函数 一、熵和信息熵
1.1 概念 1. 熵是一个物理学概念它表示一个系统的不确定性程度或者说是一个系统的混乱程度。 2. 信息熵一个叫香农的美国数学家将熵引入信息论中用来衡量信息的不确定性并将它命名为 “香农熵” 或者 “信息熵”。 熵和信息熵的区别就是应用领域和具体含义是不同的。 就像其他地方话叫帅哥而广东话叫靓仔。 熵 vs 信息熵 类似于 帅哥 vs 靓仔。 1.2 信息熵公式 1. 信息熵公式如下所示其中n表示随机变量的可能取值数x表示随机变量P(x)表示随机变量的概率函数。 2. 一个简单的例子应用信息熵的公式 二、KL散度和交叉熵
2.1 KL散度(相对熵) 1. KL散度是两个概率分布间差异的非对称性度量KL散度也被称为相对熵。 通俗的说法KL散度是用来衡量同一个随机变量的两个不同分布之间的距离。 2. KL散度公式如下其中P( p) 是真实分布Q(q)是用于拟合P的分布KL散度越小Q越接近于P。 3. KL散度的特性1分对称性DKL(p||q) ≠ DKL(q||p)只有概率分布完全一样时才相等。2非负性DKL(p||q)恒大于0只有概率分布完全一样时才等于0。 4. 一个简单的例子应用KL散度的公式 2.2 交叉熵 1. 交叉熵由来是有KL散度公式变形得到的如下图所示 2. 交叉熵的主要应用主要用于度量同一个随机变量X的预测分布Q和真实分布P之间的差距。 3. 交叉熵的一般公式 4. 交叉熵的最简公式 5. 一个简单的例子应用交叉熵的公式 从上述例子得到的结论1预测越准确交叉熵越小。2交叉熵只跟真实标签的预测概率值有关。 6. 交叉熵的二分类公式 7. 为什么在很多网络模型中使用交叉熵作为损失函数而不使用KL散度作为损失函数呢我们来简单看一个例子直观理解一下 那总结是因为交叉熵损失函数在数值稳定性、梯度计算效率和目标函数形式等方面具有优势因此更常用于网络模型的训练。但在某些特定的任务或场景下KL散度也可以作为损失函数使用。
三、Softmax和交叉熵损失函数
3.1 Softmax 1. 定义Softmax函数是一种常用的激活函数它通常用于多分类任务中将模型的输出转化为概率分布。Softmax函数将输入向量的每个元素进行指数运算然后对所有元素求和最后将每个元素除以求和结果得到一个概率分布。 Soft是将数字转换为概率的神器是将数据归一化的神器。 2. Softmax的公式如下 3. 一个简单的例子应用Softmax的公式 3.2 交叉熵损失函数 1. 交叉熵损失函数公式 注意1因为有些输入是数值需经过Softmax转换为概率所以log括号里写的是Softmax公式。2标签中有个真实值肯定为1其余为0所以相当于交叉熵最简公式。 2. 代码块举例
import torch
import torch.nn as nn
#定义数据
torch.manual_seed(100) #设置随机种子以保证结果的可重复性。
predict torch.rand(4, 5)
label torch.tensor([4, 3, 3, 2])
print(predict)
print(label)#定义交叉熵损失函数
criterion nn.CrossEntropyLoss()#计算整体的损失值
loss criterion(predict, label)
print(loss)#最后将这四个样本的损失值进行求平均得到整体的损失值。#计算单个样本的损失值
one_loss criterion(predict[0].unsqueeze(0), label[0].unsqueeze(0)) #.unsqueeze(0)是转二维向量
print(one_loss)