深度学习概念笔记
GELU
$$ GELU(x) = x \times P(X <= x) = x \times \phi(x),x \sim N(0,1) $$
- 在 0 附近光滑,不会像 ReLU 直接裁剪
KL 散度
- $D_{\mathrm{KL}}(P|Q)$
- $\displaystyle{=\sum P(i)ln(\frac{P(i)}{Q(i)})}$
- $\displaystyle{=\int P(x)ln(\frac{P(x)}{Q(x)})dx}$
- 非负,不可交换,线性
- 用于描述某个分布估计另一个分布的编码损失
- 当为 0 时,两个概率分布比值为 1
交叉熵
信息熵
- 信息熵本质是最小化的平均编码长度
- 从等可能的字符编码出发
- 有 N 个等可能事件
- 那么使用二进制编码有最小编码长度:$log_2,N$
- 转换成概率形式:$-log_2,\frac{1}{N}=-log_2,P$
- 那么有期望:
- $H(P)=Entropy=\mathbb{E}_{x \sim P}[-log,P(x)]$
- $Entropy=-\sum\limits_i P(i),log_2,P(i)$
- $Entropy=-\int P(x),log_2,P(x)dx$
- 此形式适用于非等概率情况
- $H(P)=Entropy=\mathbb{E}_{x \sim P}[-log,P(x)]$
- 既然是最小平均长度,那么如果大的信息熵,说明编码复杂,有更大的信息量,如果信息熵为 0,说明不需要编码,即没有有用信息。
- 从概率来看,编码是因为信息的内容不是必然事件,如果一件事必然了,那么就不需要传送信息。
- 所以越不确定,许要越长的编码进行描述,也就是越大的信息熵
- 从概率来看,编码是因为信息的内容不是必然事件,如果一件事必然了,那么就不需要传送信息。
交叉熵
- 当不知道真实概率分布时,可以使用一个假设概率分布 $Q(x)$ 进行估计
- $H(P,Q)=CrossEntropy=\mathbb{E}_{x \sim P}[-log,Q(x)]$
- 期望使用真实分布,信息量用估计分布计算
- 所以计算期望的 x 则是实际值,计算熵的是估计值
- 机器学习中就是通过这个去拟合网络参数 $Q(x)$
- 因为熵本身就是平均最小编码长度,那么估计的交叉熵不可能大于它,那么就能通过最小化交叉熵来让 $Q(x)$ 接近 $P(x)$
- 期望使用真实分布,信息量用估计分布计算
- 实践中进行损失计算时,则是通过具体的预测和实际值来做计算,也就是说只要这两个的形状是匹配的就能计算,不管设计成什么结构
Softmax
把分类输出的分数转化为一个概率分布,即每个分类的 softmax 输出值和为 1。
单输出节点的情况:只需要用 sigmoid 就能达到单节点表示概率的二分类
多节点使用 Softmax 让多个节点的输出和为 1,成为一个合理的概率分布。
$\mathit{Softmax(z_i)}=\frac{e^{z_i}}{\sum^C_{c=1}{e^{z_c}}}$
指数函数的问题:
- 求导不变好计算
- 对输入敏感度高,并且值容易溢出(可以通过把输入减去最大值解决)
一般和交叉熵损失函数搭配