Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >揭示相对熵和交叉熵的本质

揭示相对熵和交叉熵的本质

作者头像
老齐
发布于 2022-01-27 06:34:25
发布于 2022-01-27 06:34:25
1.1K00
代码可运行
举报
文章被收录于专栏:老齐教室老齐教室
运行总次数:0
代码可运行

说明:本文是《机器学习数学基础》一书选登,关于该书的详细内容,请访问:http://math.itdiffer.com

7.4 相对熵和交叉熵

在第4章4.4.3节介绍损失函数的时候,列出了几项常见的损失函数,其中就有神经网络中常用的以相对熵和交叉熵构建的损失函数。那么什么是相对熵和交叉熵呢?下面就分别进行介绍。

设某离散型随机变量有两个概率分布 P Q ,它们之间的相对熵(relative entropy)定义为:

D_{KL}(P\parallel Q) = \sum_{x\in\displaystyle{\mathcal{X}}}P(x)\log\left(\frac{P(x)}{Q(x)}\right) \quad(7.4.1)

在信息论中,通常会按照7.3节(7.3.2)式的约定,写作:

D_{KL}(p\parallel q) = \sum_{x\in\displaystyle\mathcal{X}}p(x)\log\left(\frac{p(x)}{q(x)}\right) \quad(7.4.2)

在上述定义中约定:0\log \left(\frac{0}{0}\right) = 00\log\left(\frac{0}{Q(x)}\right) =0P(x)\log\left(\frac{P(x)}{0}\right)=\infty (基于连续性),即若存在 x \in\displaystyle{\mathcal{X}}

使得 P(x) \gt 0, Q(x) = 0 ,有 D(P \parallel Q) = \infty

由于相对熵最早是由Solomon Kullback和Richard Leibler在1951年提出的,所以相对熵也称为KL散度(Kullback–Leibler divergence)——这就是符号 D_{KL}(P||Q) 下角标的来源。“divergence”翻译为“散度”,它也反应出了(7.4.2)式所定义的相对熵的作用:度量两个概率分布的差异(“分散程度”),或者说两个分布之间的距离,但是,此处的“距离”和两个向量的距离不同,因为一般情况下 D_{KL}(Q||Q)\ne D_{KL}(Q||P) ,即相对熵具有不对称性。

下面选用Kullback在《Information Theory and Statistics》中的一个示例,说明相对熵的应用和意义。设分布 P 是二项分布( n=2, p=0.4 ),分布 Q 是均匀分布。如果随机变量的取值分别为 0,1,2 ,即 \displaystyle\mathcal{X}=\{0,1,2\} ,在分类问题中,表示三个不同的类别。如表7-2-3所示,记录了每个类别对应的输出概率。

表7-2-3

x

0

1

2

P(x)

9/25

12/25

4/25

Q(x)

1/3

1/3

1/3

利用表7-2-3的概率分布,计算相对熵 D_{KL}(P||Q)D_{KL}(Q||P) 的值(Kullback在书中使用的是自然对数,这里稍作修改,依然是以 2 为底,最终所得结果单位是比特)。

\begin{split}D_{KL}(P\parallel Q) &= \sum_{x\in\displaystyle{\mathcal{X}}}P(x)\log\left(\frac{P(x)}{Q(x)}\right)\\ &=\frac{9}{25}\log\left(\frac{9/25}{1/3}\right) + \frac{12}{25}\log\left(\frac{12/25}{1/3}\right)+\frac{4}{25}\log\left(\frac{4/25}{1/3}\right)\\&=\frac{1}{25}(32\log2+55\log3-50\log5)\approx0.123\\ D_{KL}(Q\parallel P) &= \sum_{x\in\displaystyle{\mathcal{X}}}Q(x)\log\left(\frac{Q(x)}{P(x)}\right)\\&=\frac{1}{3}\log\left(\frac{1/3}{9/25}\right)+\frac{1}{3}\log\left(\frac{1/3}{12/25}\right)+\frac{1}{3}\log\left(\frac{1/3}{4/25}\right)\\&=\frac{1}{3}(6\log5-6\log3-4\log2)\approx 0.141\end{split}

以上计算结果证实了相对熵的不对称性。用手工计算方法了解了基本原理之后,也要知晓用程序计算相对熵的方法,依然使用scipy库提供的entropy()函数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from scipy.stats import entropy

p = [9/25, 12/25, 4/25]
q = [1/3, 1/3, 1/3]

d_pq = entropy(p, q, base=2)
d_qp = entropy(q, p, base=2)

print(f"D(P||Q)={d_pq:.4f}")
print(f"D(Q||P)={d_qp:.4f}")

# 输出
D(P||Q)=0.1231
D(Q||P)=0.1406

在相对熵的定义(7.4.1)式,两个分布 P Q 是针对同一个随机变量而言,这点特别要注意,不是两个随机变量的概率分布。对此,可以借用机器学习的模型训练过程理解。

在机器学习中,训练集的样本,并非是总体,可以认为是从总体中按照随机的原则独立抽样得到的(即独立同分布,independent and identically distributed,简称:i.i.d),那么训练集样本的概率分布与总体的概率分布就可以近似P_{train} \approx P_{real} ——总体的概率分布才是真实的,但我们通常不知道它(只有上帝知道)。将训练集数据用于模型,从而估计出模型参数,即得到了一种概率分布,记作 Q_{model} 。然后使用 Q_{model} 进行预测,得到预测值。

这样对同一个训练集样本,就有了两个概率分布 P_{train}Q_{model} 。前面已经论述了 P_{train} \approx P_{real} ,如果将(7.4.1)式中的分布 P 视为 P_{train} ,代表数据集的真实分布;Q 视为 Q_{model} ,称为假设分布或模型分布。就可以用相对熵度量它们之间的差异,从而评估模型的优劣。所以在第4章4.4.3节中给出了一个KL散度损失函数。

由(7.4.1)式可得:

\begin{split}D_{KL}(P\parallel Q) &= -\sum_{x\in\displaystyle{\mathcal{X}}}P(x)\log\left(\frac{Q(x)}{P(x)}\right) \\ &=\sum_{x\in\displaystyle{\mathcal{X}}}P(x)(-\log(Q(x))-[-\log(P(x))])\end{split} \quad(7.4.3)

(7.4.3)式的结果中,-\log(Q(x)) 表示模型分布的信息,-\log(P(x)) 表示真实分布的信息,二者之差可以理解为用模型预测损失的信息,令 Z = -\log(Q(x))-[-\log(P(x))] ,则:

D_{KL}(P\parallel Q) = \sum_{x\in\displaystyle{\mathcal{X}}}P(x)Z=E_{P}(Z)=E_P( -\log(Q(X))-[-\log(P(X))]) \quad(7.4.4)

这说明相对熵是按概率 P(X) 损失的信息的期望(在(7.4.4)中使用了数学期望的性质(E5):

E[g(X)]=\sum_ig(a_i)p_i

。同样,也可以将相对熵的定义(7.4.1)式写成:

D_{KL}(P\parallel Q)=E_P\begin{bmatrix}\log\left(\frac{P(X)}{Q(X)}\right)\end{bmatrix} \quad(7.4.5)

其含义为按概率 P(X)PQ 的对数商的期望。不论是(7.4.4)式,还是(7.4.5)式,都说明相对熵是一种数学期望,能够用它度量当真实分布P 、模型分布为 Q 时的无效性。按照(7.4.4)式,我们期望损失更少的信息——该式表达的就是期望,即无效性更小,则相对熵越小。当相对熵为 0 时,P=Q ,并且可以证明 D_{KL}(P\parallel Q) \ge 0 (详细证明请参阅本书在线资料)。

在(7.4.3)式基础上,还可以得到:

D_{KL}(P\parallel Q)=\sum_{x\in\displaystyle\mathcal{X}}P((x))\log(P(x))+\begin{bmatrix}-\sum_{x\in\displaystyle\mathcal{X}}P(x)\log(Q(x))\end{bmatrix} \quad(7.4.6)

(7.4.6)式中等号右边第一项 \sum_{x\in\displaystyle\mathcal{X}}P((x))\log(P(x)) 即为分布 P 的熵的负数,根据7.2节的(7.2.3)式 H(P) =- \sum_{x\in\displaystyle\mathcal{X}}P((x))\log(P(x)) ,得 \sum_{x\in\displaystyle\mathcal{X}}P((x))\log(P(x)) = -H(P) ;第二项与熵类似,但对数的计算对象是另外一个分布函数,我们将它定义为交叉熵(cross entropy):

H(P,Q) = -\sum_{x\in\displaystyle\mathcal{X}}P(x)\log(Q(x)) \quad(7.4.7)

于是(7.4.6)式可以写成:

D_{KL}(P\parallel Q) = H(P, Q) - H(P)\quad(7.4.8)

不要忘记,我们所假设的真实分布 PP_{train} ,又因为训练集样本已知,它熵 H(P) 即不再变化。于是,由(7.4.8)式知,可以用交叉熵 H(P,Q) 判断相对熵 D_{KL}(P\parallel Q) 的情况——比较(7.4.1)式和(7.4.4)式,交叉熵的形式更简单。例如,有一个能够识别四种图片的模型——称为“四类别分类器”,能够识别“狗、猫、马、牛”,假设输入了一张图,经过分类器之后输出了预测值,如图7-4-1所示。

图 7-4-1

根据图中的预测值 \hat{\mathbf{y}}_1=\begin{bmatrix}0.775&0.116&0.039&0.070\end{bmatrix}^{\rm{T}} 和真实值 \mathbf{y} =\begin{bmatrix}1&0&0&0\end{bmatrix}^{\rm{T}} ,利用(7.2.18)式,可以计算交叉熵:

H_1(\mathbf{y}\parallel\hat{\mathbf{y}}_1) =-[1\cdot\log0.775+0\cdot\log0.116+0\cdot\log0.039+0\cdot\log0.070] \approx 0.3677

假设对分类器进行了优化,输出的预测值变为 \hat{\mathbf{y}}_2=\begin{bmatrix}0.938&0.028&0.013&0.021\end{bmatrix}^{\rm{T}} ,此时交叉熵为:H_2(\mathbf{y}\parallel\hat{\mathbf{y}}_2) = -\log0.938 \approx 0.0923 显然 H_2 \lt H_1 ,根据(7.4.5),则得到 D_{KL2}\lt D_{KL1} ,即优化之后的分类器预测效果更好——通过上述假设的输出数据,凭直觉也能判断分类器的好坏。由此可以想到,正如第4章4.4.3节所列举的,可以用交叉熵作为损失函数,令其最小化,亦即相对熵最小化。

我们先探讨一种简单而常见的分类器——二分类的分类器(binary classification),用符号\boldsymbol{\theta} 表示分类器中待定的参数,预测值 \hat{\pmb{y}} = Q(\hat{\pmb{y}}|\pmb{X}, \boldsymbol{\theta}) ,相应地真实值标签 \pmb{y}\sim P(\pmb{y}|\pmb{X}, \boldsymbol{\theta}_0) 。训练集样本相对总体符合 i.i.d 要求, \pmb{X} = \begin{bmatrix}X_1&\cdots&X_n\end{bmatrix}^{\rm{T}} ,为输入数据;\boldsymbol{\theta}_0 为模型中真实参数 ;\pmb{y} = \begin{bmatrix}y_1&\cdots&y_n\end{bmatrix} 中的 y_i

取值为 01X_i 对应的预测值简写成 y_i=q_i(X_i)=q_i

由于二分类器的输出结果服从伯努利分布即

\begin{cases}P(y_i=1|\pmb{X}_i,\boldsymbol{\theta}_0)& = y_i\\P(y_j=0|\pmb{X}_j,\boldsymbol{\theta}_0)&=1-y_i \end{cases}\qquad \begin{cases}Q(\hat{y}_i|\pmb{X}_i,\boldsymbol{\theta})&= q_i\\Q(\hat{y}_j|\pmb{X}_j,\boldsymbol{\theta})&=1-q_i \end{cases}

对照(7.4.7)式,可得其交叉熵:H(y_i,\hat{y}_i) = -y_i\log(q_i) - (1-y_i)\log(1-q_i) \quad(7.4.9)

H(y_i,\hat{y}_i) = -y_i\log(q_i) - (1-y_i)\log(1-q_i) \quad(7.4.9)

将(7.4.9)式视为预测值与真实值之间的损失函数,设训练集中的样本数量为 N ,由此交叉熵损失函数可构建代价函数(参阅第4章4.4.3节):

C =- \frac{1}{N} \sum_{i=1}^N[y_i\log(q_i) + (1-y)\log(1-q_i) \quad(7.4.10)

如果对(7.4.10)式求最小值,即可估计待定参数 \boldsymbol{\theta} 的值,从而确定模型的具体形式。

二分类的交叉熵的交叉熵为损失函数,常用于Logistic回归和神经网络,在第4章4.4.3节中,曾使用Pytorch提供的函数实现了交叉熵损失函数,下面的程序演示中用的是scikit-learn库的log_loss()函数,对模型的预测值和真实进行差异评估。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import log_loss
import numpy as np

x = np.array([-2.2, -1.4, -.8, .2, .4, .8, 1.2, 2.2, 2.9, 4.6])
y = np.array([0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0])

logr = LogisticRegression(solver='lbfgs')
logr.fit(x.reshape(-1, 1), y)

y_pred = logr.predict_proba(x.reshape(-1, 1))[:, 1].ravel()
loss = log_loss(y, y_pred)

print('x = {}'.format(x))
print('y = {}'.format(y))
print('Q(y) = {}'.format(np.round(y_pred, 2)))
print('Cross Entropy = {:.4f}'.format(loss))

# 输出
x = [-2.2 -1.4 -0.8  0.2  0.4  0.8  1.2  2.2  2.9  4.6]
y = [0. 0. 1. 0. 1. 1. 1. 1. 1. 1.]
Q(y) = [0.19 0.33 0.47 0.7  0.74 0.81 0.86 0.94 0.97 0.99]
Cross Entropy = 0.3329

用交叉熵作为损失函数,不仅仅适用于二分类,对多分类问题也适用(如第4章4.4.3节多分类交叉熵损失函数的示例)。

在交叉熵损失函数中,出现了对数运算。在第6章6.2.1节关于最大似然估计的计算中,也出现了对数运算。那么,这个两个有什么关系吗?先说结论:最小化交叉熵与最大似然估计等价。下面就证明此结论,不过由于是纯粹数学推导,读者可以略过,只知道此结论即可。

按照最大似然估计,设估计所得参数为 \hat{\boldsymbol{\theta}} (其他符号假设同前),则:

\begin{split}\hat{\boldsymbol{\theta}} &= arg \max_{\boldsymbol{\theta}}Q(\hat{\pmb{y}}|\boldsymbol{\theta})=arg\max_{\boldsymbol{\theta}}\prod_{i=1}^NQ(\hat{y}_i|\boldsymbol{\theta}) = arg\max_{\boldsymbol{\theta}}\sum_{i=1}^N\log(Q(\hat{y}_i)|\boldsymbol{\theta}) \\ &= arg\max_{\boldsymbol{\theta}}\left(\sum_{i=1}^N\log(Q(\hat{y}_i)|\boldsymbol{\theta})-\sum_{i=1}^N\log(P(y_i)|\boldsymbol{\theta}_0)\right) \\ &=arg\max_{\boldsymbol{\theta}}\sum_{i=1}^N\left(\log(Q(\hat{y}_i)|\boldsymbol{\theta})-\log(P(y_i)|\boldsymbol{\theta}_0)\right) \\ & =arg\max_{\boldsymbol{\theta}}\sum_{i=1}^N\log\left(\frac{Q(\hat{y}_i)|\boldsymbol{\theta})}{P(y_i|\boldsymbol{\theta}_0)}\right) \quad(注意下面的变换) \\ &= arg\min_{\boldsymbol{\theta}}\sum_{i=1}^N\log\left(\frac{P(y_i)|\boldsymbol{\theta}_0)}{Q(\hat{y}_i|\boldsymbol{\theta})}\right) \\ &=arg\min_{\boldsymbol{\theta}}\frac{1}{N}\sum_{i=1}^N\log\left(\frac{P(y_i)|\boldsymbol{\theta}_0}{Q(\hat{y}_i|\boldsymbol{\theta})}\right)\end{split}

对于有 N 个样本的训练集,根据大数定理, \frac{1}{N} \to E[P(\pmb{y})|\boldsymbol{\theta}_0)] ,所以,以上计算结果等价于:

\hat{\boldsymbol{\theta}} = arg\min_{\boldsymbol{\theta}}E_P\begin{bmatrix}\log\left(\frac{P(\pmb{y}|\boldsymbol{\theta}_0)}{Q(\pmb{\hat{y}}|\boldsymbol{\theta})}\right)\end{bmatrix}=arg\min_{\boldsymbol{\theta}}D_{KL}(P_{\boldsymbol{\theta}_0} \parallel Q_{\boldsymbol{\theta}})

由此可知,最大似然估计,即最小化相对熵,也就是最小化交叉熵。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[白话解析] 带你一起梳理Word2vec相关概念
本文将尽量使用易懂的方式,尽可能不涉及数学公式,而是从整体的思路上来说,运用感性直觉的思考来帮大家梳理Word2vec相关概念。
罗西的思考
2020/09/07
8240
深度学习基础知识(三)--交叉熵损失函数
在监督学习进行训练的过程中,我们学习的目的是得到输入到输出的映射关系,在给定 后,预测出 ,期望 尽可能的接近 ,也就是 和 的差距尽可能小。而损失函数就是衡量 和 之间差距的指标,通过损失函数指明模型优化的方向。
languageX
2022/06/01
2.3K0
机器学习----交叉熵(Cross Entropy)如何做损失函数
意义:N为样本数量。公式表示为每一个真实值与预测值相减的平方去平均值。均值平方差的值越小,表明模型越好。 对于回归问题,均方差的损失函数的导数是局部单调的,可以找到最优解。但是对于分类问题,损失函数可能是坑坑洼洼的,很难找到最优解。故均方差损失函数适用于回归问题。
一枕眠秋雨
2024/04/04
12.4K0
机器学习----交叉熵(Cross Entropy)如何做损失函数
可视化理解 Binary Cross-Entropy
如果你正在训练一个二分类器,很有可能你正在使用的损失函数是二值交叉熵/对数(binary cross-entropy / log)。
McGL
2020/10/30
2.4K0
可视化理解 Binary Cross-Entropy
理解熵与交叉熵
熵、交叉熵是机器学习中常用的概念,也是信息论中的重要概念。它应用广泛,尤其是在深度学习中。本文对交叉熵进行系统的、深入浅出的介绍。文章中的内容在已经出版的《机器学习与应用》(清华大学出版社,雷明著)中有详细的介绍。
SIGAI学习与实践平台
2019/03/01
2.3K0
理解熵与交叉熵
信息量,熵,交叉熵,相对熵与代价函数
如果有⼈告诉我们⼀个相当不可能的事件发⽣了,我们收到的信息要多于我们被告知某个很可能发⽣的事件发⽣时收到的信息。如果我们知道某件事情⼀定会发⽣,那么我们就不会接收到信息。 也就是说,信息量应该连续依赖于事件发生的概率分布p(x) 。因此,我们想要寻找⼀个基于概率p(x)计算信息量的函数h(x),它应该具有如下性质:
llhthinker
2018/10/09
7210
信息量,熵,交叉熵,相对熵与代价函数
LOSS:交叉熵损失函数
交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。以前做一些分类问题的时候,经常会用到,最近老师让看下交叉熵损失函数,今天就来看看他是何方神圣。
AngelNH
2020/07/17
1K0
LOSS:交叉熵损失函数
熵、交叉熵和KL散度的基本概念和交叉熵损失函数的通俗介绍
为了开始了解熵到底指的是什么,让我们深入了解信息理论的一些基础知识。在这个数字时代,信息是由位(0和1)组成的。在通信时,有些位是有用的,有些是多余的,有些是错误的,等等。当我们传递信息时,我们希望尽可能多地向接收者传递有用的信息。
deephub
2020/07/02
1.1K0
线性分类(SoftMax) - 下篇
导读 线性分类器-中篇 线性分类器 CS231n课程笔记翻译:图像分类笔记(下) CS231n课程笔记翻译:图像分类笔记(上) SoftMax分类器 SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来说,Softmax分类器就可以理解为逻辑回归分类器面对多个分类的一般化归纳。SVM将输出f(x[i], W)作为每个分类的评分(因为无定标,所以难以直接解释)。与SVM不同,Softmax的输出(归一化的分类概率)更加直观,
昱良
2018/04/08
1.5K0
线性分类(SoftMax) - 下篇
损失函数,基于概率分布度量的损失函数,信息量,信息熵的作用
​Loss 在使用似然函数最大化时,其形式是进行连乘,但是为了便于处理,一般会套上log,这样便可以将连乘转化为求和,求和形式更容易求偏导,应用到梯度下降中求最优解;
zhangjiqun
2024/12/14
1470
损失函数,基于概率分布度量的损失函数,信息量,信息熵的作用
机器学习中的目标函数总结
几乎所有的机器学习算法都归结为求解最优化问题。有监督学习算法在训练时通过优化一个目标函数而得到模型,然后用模型进行预测。无监督学习算法通常通过优化一个目标函数完成数据降维或聚类。强化学习算法在训练时通过最大化奖励值得到策略函数,然后用策略函数确定每种状态下要执行的动作。多任务学习、半监督学习的核心步骤之一也是构造目标函数。一旦目标函数确定,剩下的是求解最优化问题,这在数学上通常有成熟的解决方案。因此目标函数的构造是机器学习中的中心任务。
SIGAI学习与实践平台
2021/01/05
1.5K0
机器学习中的目标函数总结
从香农熵到手推KL散度:一文带你纵览机器学习中的信息论
选自Medium 作者:Frank Preiswerk 机器之心编译 参与:Nurhachu Null、蒋思源 信息论与信息熵是 AI 或机器学习中非常重要的概念,我们经常需要使用它的关键思想来描述概率分布或者量化概率分布之间的相似性。在本文中,我们从最基本的自信息和信息熵到交叉熵讨论了信息论的基础,再由最大似然估计推导出 KL 散度而加强我们对量化分布间相似性的理解。最后我们简要讨论了信息熵在机器学习中的应用,包括通过互信息选择决策树的特征、通过交叉熵衡量分类问题的损失和贝叶斯学习等。 信息论是应用数学的
机器之心
2018/05/10
1.2K0
交叉熵--损失函数
语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。
zhangjiqun
2024/12/14
1310
交叉熵--损失函数
深度学习500问——Chapter02:机器学习基础(2)
1. 为了得到训练逻辑回归模型的参数,需要一个代码函数,通过训练代价函数来得到参数。
JOYCE_Leo16
2024/03/19
2730
深度学习500问——Chapter02:机器学习基础(2)
交叉熵
上一篇译文《香农熵》中介绍了熵的由来及其计算公式的产生,这篇译文介绍另外一个与香农熵相关的概念:交叉熵(Cross-Entropy)
卡尔曼和玻尔兹曼谁曼
2023/12/01
2740
想学好深度学习,你需要了解——熵!
熵的概念比较晦涩难懂。但是,我们还是想最大化的用容易理解的语言将它说明白。尽量不要让这部分知识成为大家学习的绊脚石。
代码医生工作室
2020/01/02
2.3K1
【深度学习基础】线性神经网络 | softmax回归
深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。 【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。
Francek Chen
2025/01/22
1500
【深度学习基础】线性神经网络 | softmax回归
详解机器学习中的熵、条件熵、相对熵、交叉熵
目录 信息熵 条件熵 相对熵 交叉熵 总结 一 信息熵 (information entropy) 熵 (entropy) 这一词最初来源于热力学。1948年,克劳德·爱尔伍德·香农将热力学中的熵引入信息论,所以也被称为香农熵 (Shannon entropy),信息熵 (information entropy)。本文只讨论信息熵。首先,我们先来理解一下信息这个概念。信息是一个很抽象的概念,百度百科将它定义为:指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容。那信息可以被量化么?可以的!
磐创AI
2018/04/24
1.7K0
详解机器学习中的熵、条件熵、相对熵、交叉熵
信息论 - 交叉熵
在信息论中,交叉熵(Cross Entropy)是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所需要的平均比特数。。
为为为什么
2022/08/05
3710
天天用AI还不知道AI是怎么反馈的?一文了解生成模型常见损失函数Python代码实现+计算原理解析
损失函数无疑是机器学习和深度学习效果验证的核心检验功能,用于评估模型预测值与实际值之间的差异。我们学习机器学习和深度学习或多或少都接触到了损失函数,但是我们缺少细致的对损失函数进行分类,或者系统的学习损失函数在不同的算法和任务中的不同的应用。因此有必要对整个损失函数体系有个比较全面的认识,方便以后我们遇到各类功能不同的损失函数有个清楚的认知,而且一般面试以及论文写作基本都会对这方面的知识涉及的非常深入。故本篇文章将结合实际Python代码实现损失函数功能,以及对整个损失函数体系进行深入了解。
fanstuck
2024/03/05
1.1K0
天天用AI还不知道AI是怎么反馈的?一文了解生成模型常见损失函数Python代码实现+计算原理解析
推荐阅读
相关推荐
[白话解析] 带你一起梳理Word2vec相关概念
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档