深度学习 笔记
基础
熵
假设有一组随机事件,这些事件发生的概率分别为 p_1,p_2,\cdots,p_n,希望定义一个度量 H(p_1,p_2,\cdots,p_n),反映在选择随机事件时,“选择”有多大程度,或者我们对结果有多少不确定,称该度量为熵。
熵需要满足:
-
H 对于任意 p_i 连续
-
当 p_i 都相等时,H 是 n 的单调递增函数。因为等可能事件越多,选择越多(不确定性越大)
-
如果一个选择被拆分为两个相继的子选择,则原始 H 应是拆分后 H 各独立值的加权和,例:

- p_1=\frac{1}{2},p_2=\frac{1}{3},p_3=\frac{1}{6},H(\frac{1}{2},\frac{1}{3},\frac{1}{6})=H(\frac{1}{2},\frac{1}{2})+\frac{1}{2}H(\frac{2}{3},\frac{1}{3}),加权是因为仅有部分分支的选择增加
满足上述要求的熵有唯一形式:H=-K\sum_{i=1}^np_i\log p_i
其中 K 是一个正系数,取 K=1,则
H(P)\overset{·}=-\sum_xP(x)\log P(x)
交叉熵
交叉熵,衡量随机变量的真实分布 P 和预测分布 Q 之间的差异
H(P,Q)\overset{·}=-\sum_xP(x)\log Q(x)
KL散度
KL散度,也称相对熵,衡量随机变量的真实分布 P 和预测分布 Q 之间的相似度
\mathbb{D}_{KL}(P||Q)\overset{·}=\sum_xP(x)\log \frac{P(x)}{Q(x)}=H(P,Q)-H(P)
Pytorch 相关
torch
torch.flatten(input, start_dim, end_dim)
- 功能:展平start_dim到end_dim维
torch.squeeze(input, dim)
- 功能:移除input中所有维度为1的维度
torch.device(device)
- 功能:指定Tensor将分配的设备
- 参数:
- device:"cpu"、"cuda:0"
torch.nn.functional (F)
F.pad(input, pad, mode='constant', value=0)
-
功能:填充
-
参数:
- input:输入tensor
- pad:(1, 2)表示最后一个维度左填1维,右填2维;(1,2,3,4)表示最后一个维左填1维,右填2维,倒数第二个维度左填3维右填4维
- mode:'constant'、'reflect'、'replicate'、'circular'
- value:'constant' 时的填补值
评论区