Q21: 推导互信息
的链式法则
互信息、熵与条件熵是啥?
- 互信息
衡量随机变量 X 和 Y 共享的信息量,反映知道 Y 后 X 不确定性的减少量。
- 熵
,表示 X 的不确定性。
- 条件熵
,表示已知 Y 时 X 的剩余不确定性。
推导过程:
从定义出发:
这里利用了 以及熵和条件熵的定义,通过对数运算和概率求和规则完成推导。
在 LLM 中的使用
在 LLM 中,互信息可衡量词与上下文的关联。例如,计算目标词 X 与上下文 Y 的 ,若值大,说明上下文对预测词很重要。训练时,模型学习最大化这种互信息,提升语义理解。如 BERT 通过掩码预测,最大化掩码词与上下文的互信息,优化表征。
代码示例(简单离散变量):
import numpy as np
# 假设离散分布
Pxy = np.array([[0.1, 0.2], [0.3, 0.4]]) # P(x,y)
Px = Pxy.sum(axis=1) # P(x)
Py = Pxy.sum(axis=0) # P(y)
Hx = -np.sum(Px * np.log2(Px))
Hx_y = -np.sum(Pxy * np.log2(Pxy / Py))
Ixy = Hx - Hx_y
print(f"互信息 I(X;Y): {Ixy}")
解释:代码通过定义联合概率分布 Pxy,计算 和
,再求差得到互信息。LLM 中类似思路可分析词与语境的信息交互。
Q22: 证明熵
的凹性(Concavity)性质
熵的凹性是啥?
凹性指对于概率分布 和
,有
。即混合分布的熵不小于分布熵的加权和,反映概率分布越 “均匀”,熵越大。
证明过程(利用 Jensen 不等式):
Jensen 不等式对凹函数 f 有 。
熵 ,设
,其二阶导数
,故
是凹函数。
对
,
由 Jensen:
在 LLM 中的使用
LLM 中,熵的凹性用于优化生成多样性。例如,生成文本时,若分布 集中(低熵,如重复词),
均匀(高熵),混合分布
的熵更高,生成更丰富。通过调整
,利用凹性平衡准确性和多样性。
代码示例(验证凹性):
import numpy as np
def entropy(p):
p = p[np.nonzero(p)] # 避免log(0)
return -np.sum(p * np.log2(p))
p1 = np.array([0.9, 0.1])
p2 = np.array([0.5, 0.5])
lambda_ = 0.5
p_mix = lambda_ * p1 + (1 - lambda_) * p2
print(f"H(p1): {entropy(p1)}, H(p2): {entropy(p2)}")
print(f"H(混合分布): {entropy(p_mix)}, 加权和: {lambda_ * entropy(p1) + (1 - lambda_) * entropy(p2)}")
print(f"凹性验证: {entropy(p_mix) >= lambda_ * entropy(p1) + (1 - lambda_) * entropy(p2)}")
解释:代码定义熵函数,验证混合分布的熵不小于加权和,体现凹性。LLM 中可类似调整输出分布的熵,优化生成效果。
11万+

被折叠的 条评论
为什么被折叠?



