KL散度損失(Kullback-Leibler Divergence Loss)是一種在機器學習和深度學習中常用的損失函數,用來衡量兩個概率分布之間的差異或距離。
KL散度的定義:
KL散度衡量真實分布 與預測分布 之間的差距,是非對稱性的度量,表示用基於 的模型來描述 所帶來的資訊損失。為什麼用KL散度損失?
• 在分類任務或生成模型中,模型的預測結果可以被看成一個概率分布,KL散度衡量預測分布 和真實標籤分布 的差異。
• 最小化 KL散度即是讓模型預測的分布更接近真實分布,提升模型準確度。
• KL散度常用於變分自編碼器(VAE)、蒸餾學習(knowledge distillation)等深度學習技術中。
KL散度損失的特點:
• 非對稱性:,所以使用時要注意方向。
• 當兩個分布相同時,KL散度為0,表示無差異。
• KL散度越大,代表兩分布差異越大。
在深度學習中實現:
以 PyTorch 為例,通常會對預測分布使用對數(log),並用 torch.nn.functional.kl_div 函數來計算損失。
簡單來說,KL散度損失用來衡量模型預測的機率分布和真實標籤分布的差異度,幫助模型更準確地學習目標分布。











