问题缘起:给定一组数据 ( x 1 , x 2 , . . . , x m ) (x^1,x^2,...,x^m) (x1,x2,...,xm),希望找到这组数据服从的分布。此种情况下,分布规律用概率密度p(x)表征。
问题归处:如果能够建模/近似建模p(x),就能够利用p(x)进行采样/数据生成。离散化x的空间 { x i } i = 1 n \{x_i\}_{i=1}^n {xi}i=1n, 计算 { p ( x i ) } i = 1 n \{p(x_i)\}_{i=1}^n {p(xi)}i=1n,取概率最大的 x k x_k xk作为生成样本。
最大似然:常用来解决这类问题。具体做法:参数还一个概率分布 q θ ( x ) q_\theta(x) qθ(x),是的观测样本 ( x 1 , x 2 , . . . , x m ) (x^1,x^2,...,x^m) (x1,x2,...,xm)在 q θ ( x ) q_\theta(x) qθ(x)的似然函数最大。
似然函数:表示的是已知随机变量的取值时,未知参数的取值可能性:L(θ|x)=P(X=x|θ)。直观理解就是在参数 θ \theta θ情况下,出现 ( x 1 , x 2 , . . . , x m ) (x^1,x^2,...,x^m) (x1,x2,...,xm)这组数据的可能性,数学表达式为(概率密度积分记为概率):
L ( θ ∣ x ) = ∏ i = 1 m p θ ( x i ) (1) L(θ|x)=\prod_{i=1}^m p_\theta(x_i)\tag{1} L(θ∣x)=i=1∏mpθ(xi)(1)
我们需要调整参数 θ \theta θ来使这个出现这组数据的可能性最大,即最大似然。
为了简化似然函数中的连乘计算,常常会使用对数似然函数,使得连乘转变为连加(取对数不会改变似然的最优解–最优解是自变量的值,最优解值才是因变量的值)。
最大化对数似然问题可以统一为下式,即 最优的参数 是使 对数似然的值最大的 θ \theta θ:
θ ∗ = arg max θ log ∏ i = 1 m p θ ( x i ) = arg max θ ∑ i = 1 m log p θ ( x i ) = arg max θ ∑ i = 1 m 1 m log p θ ( x i ) ≈ arg max θ E x ∼ p [ log p θ ] (2) \theta^* = \arg \max_{\theta} \log\prod_{i=1}^m p_\theta(x_i)\\ =\arg \max_{\theta} \sum_{i=1}^m\log p_{\theta}(x_i)\\ =\arg \max_{\theta} \sum_{i=1}^m\frac{1}{m}\log p_{\theta}(x_i)\\ \approx\arg \max_{\theta}\mathbb{E}_{x\sim p}[\log p_{\theta}]\tag{2} θ∗=argθmaxlogi=1∏mpθ(xi)=argθmaxi=1∑mlogpθ(xi)=argθmaxi=1∑mm1logpθ(xi)≈argθmaxEx∼p[logpθ](2)
上式子第三行到第四行的转换 为 均值 近似 期望 的离散化计算过程。 p p p为目标函数, p θ p_\theta pθ用于近似目标函数为了避免混淆,将 p θ p_\theta pθ用 q θ q_\theta qθ表示。上式子可改写成:
θ ∗ = arg max θ E x ∼ p [ log q θ ] (3) \theta^* =\arg \max_{\theta}\mathbb{E}_{x\sim p}[\log q_{\theta}]\tag{3} θ∗=argθmaxEx∼p[logqθ](3)
最小KL散度:在上式子中加上一项与优化无关的常数项:
θ ∗ = arg max θ { E x ∼ p [ log q θ ] − E x ∼ p [ log p ] } = arg max θ { ∫ x p ( x ) log q θ ( x ) p ( x ) d x } = arg max θ − K L ( p , q ) = arg min θ K L ( p , q ) (4) \theta^* =\arg \max_{\theta}\{\mathbb{E}_{x\sim p}[\log q_{\theta}]-\mathbb{E}_{x\sim p}[\log p]\}\\ =\arg \max_{\theta}\{\int_xp(x)\log\frac{q_\theta(x)}{p(x)}dx\}\\ =\arg \max_{\theta} -KL(p,q)\\ =\arg \min_{\theta} KL(p,q)\tag{4} θ∗=argθmax{Ex∼p[logqθ]−Ex∼p[logp]}=argθmax{∫xp(x)logp(x)qθ(x)dx}=argθmax−KL(p,q)=argθminKL(p,q)(4)
交叉熵损失:
式(2)添一个负号后可以转换为最小化交叉熵的问题:
arg max θ E x ∼ p [ log p θ ] = arg min θ c r o s s e n t r o p y ( p , q θ ) (5) \arg \max_{\theta}\mathbb{E}_{x\sim p}[\log p_{\theta}]\\=\arg \min_{\theta}cross\ entropy(p,q_\theta)\tag{5} argθmaxEx∼p[logpθ]=argθmincross entropy(p,qθ)(5)
综上:
1.求解最大似然问题 等价于 最小化参数分布和目标分布的KL散度
2.常用于分类问题中的交叉熵损失函数 本质是 极大似然问题,也就是在最小化 目标分布与模型输出分布的之间的KL散度问题。在实际K分类问题中, 目标分布用one-hot编码表示; 神经网络模型最后全联接层输出的K个得分数值 可以通过softmax 归一化成对应类别的概率分布,即模型输出分布。
参考资料:
似然函数参见百度百科:https://baike.baidu.com/item/%E4%BC%BC%E7%84%B6%E5%87%BD%E6%95%B0/6011241?fr=aladdin