具身智能零碎知識點(五):VAE中對使用KL散度的理解

VAE中對使用KL散度的理解

    • 什么是 VAE (Variational AutoEncoder)?
      • 從自編碼器 (AE) 說起
      • VAE:讓潛在空間變得“有意義”和“連續”
    • KL 散度是如何用到的?
      • 通俗理解 KL 散度在 VAE 中的作用:
      • 帶來的好處:
      • KL 散度公式 (無需背誦,理解即可):


什么是 VAE (Variational AutoEncoder)?

VAE,全稱是變分自編碼器。要理解它,我們得先從自編碼器 (AutoEncoder, AE) 說起。

從自編碼器 (AE) 說起

想象你有一張照片(比如一張貓的圖片),你想把它壓縮成一個很小的數據包,然后再從這個數據包里把照片還原出來。

  • 編碼器 (Encoder):這個部分負責把你的照片(高維數據)“壓縮”成一個潛在向量 (Latent Vector),通常維度很低。這個潛在向量就像是照片的“精髓”或“壓縮包”。
  • 解碼器 (Decoder):這個部分負責從“壓縮包”(潛在向量)中把照片“解壓”出來,還原成一張圖片。

自編碼器的工作就是:編碼器把數據壓縮,解碼器把數據還原。 訓練目標是讓還原出來的照片盡可能地接近原始照片。

AE 的問題: AE 學習到的潛在空間(所有壓縮包組成的區域)是不連續且沒有規律的。你不能隨機從潛在空間里取一個“壓縮包”給解碼器,指望它能還原出有意義的貓照片。它很可能還原出一堆噪音,因為你取的這個“壓縮包”可能落在了一片“空白”區域,解碼器根本沒學過如何處理。

VAE:讓潛在空間變得“有意義”和“連續”

VAE 就是為了解決 AE 的這個缺陷而誕生的。它的核心思想是:與其讓編碼器直接輸出一個潛在向量,不如讓它輸出一個“概率分布的參數”!

具體來說,VAE 做出一個關鍵的假設:每個輸入數據(比如一張貓照片)都對應著潛在空間中的一個高斯(正態)分布。

  • 編碼器 (Encoder):不再直接輸出一個向量 z,而是輸出一個均值向量 (μ\muμ) 和一個方差向量 (σ2\sigma^2σ2)。這兩個向量共同定義了潛在空間中的一個高斯分布。
    • μ\muμ 描述了這個分布的“中心”在哪里。
    • σ2\sigma^2σ2 描述了這個分布的“范圍”有多廣。
  • 采樣 (Sampling):我們不是直接用 μ\muμσ2\sigma^2σ2,而是從這個由 μ\muμσ2\sigma^2σ2 定義的高斯分布中隨機采樣一個潛在向量 z
  • 解碼器 (Decoder):和 AE 一樣,解碼器接收采樣到的 z,并嘗試將其還原成原始數據。

為什么 VAE 的潛在空間更“好”?

因為 VAE 的損失函數除了鼓勵重構準確性(還原的照片像不像原始照片)之外,還引入了一個非常重要的懲罰項:KL 散度


KL 散度是如何用到的?

這就是 KL 散度登場的地方!KL 散度是 Kullback-Leibler Divergence 的縮寫,它在信息論中衡量的是兩個概率分布之間的差異

在 VAE 中,KL 散度扮演著正則化 (Regularization) 的角色。它被用來懲罰編碼器輸出的潛在分布(由 $\mu$$\sigma^2$ 定義)偏離一個預先設定好的、簡單的“標準”分布的程度。這個“標準”分布通常是標準正態分布 N(0,1)N(0, 1)N(0,1)(均值為 0,方差為 1 的高斯分布)。

通俗理解 KL 散度在 VAE 中的作用:

想象一下:

  • 編碼器就像一個攝影師,它拍了一堆貓的照片,每張照片都對應一個潛在空間中的“攝影風格”(一個高斯分布)。
  • 解碼器就像一個畫家,它根據“攝影風格”畫貓。
  • KL 散度就像一個**“風格警察”**:
    • 這個警察要求所有的“攝影風格”(即編碼器輸出的每個 $(\mu, \sigma^2)$ 分布)都要盡可能地接近一個“標準、統一的風格”(標準正態分布 N(0,1)N(0, 1)N(0,1))。
    • 如果攝影師(編碼器)拍出來的風格太**“離譜”**($\mu$ 離 0 太遠,或者 $\sigma^2$ 太大太小,分布太平坦或太尖銳),“風格警察”就會開出罰單(KL 損失變大)。
    • 這會強制編碼器將不同的輸入數據映射到潛在空間中相互靠近、且形狀相似的分布

帶來的好處:

通過 KL 散度的“懲罰”,VAE 的潛在空間變得:

  1. 連續性 (Continuity):因為所有的潛在分布都被強制拉向 N(0,1)N(0,1)N(0,1),它們會相互重疊,從而消除了 AE 潛在空間中的“空白區域”。這意味著你可以從潛在空間中隨機采樣任何一個點,它都有很大概率屬于某個有效的潛在分布,解碼器就能還原出有意義的數據。
  2. 可生成性 (Generative Capability):因為潛在空間被正則化成接近標準正態分布,我們就可以直接從一個簡單的 N(0,1)N(0,1)N(0,1) 中隨機采樣一個 z 給解碼器,它就能生成全新的、有意義的數據(比如從未見過的貓的照片)。這使得 VAE 成為了一個強大的生成模型。
  3. 正則化 (Regularization):KL 散度避免了編碼器將每個輸入映射到潛在空間中的一個孤立點,從而防止過擬合,并鼓勵模型學習到數據的有意義的、低維表示。

KL 散度公式 (無需背誦,理解即可):

在代碼中,你看到的 KL 散度公式:

DKL(N(μ,σ2)∣∣N(0,1))=12∑(1+log?(σ2)?μ2?σ2)D_{KL}(N(\mu, \sigma^2) || N(0, 1)) = \frac{1}{2} \sum (1 + \log(\sigma^2) - \mu^2 - \sigma^2)DKL?(N(μ,σ2)∣∣N(0,1))=21?(1+log(σ2)?μ2?σ2)

  • μ\muμ (均值):它懲罰潛在分布的中心偏離標準正態分布中心(0)的程度。如果 μ\muμ 越大或越小,μ2\mu^2μ2 就越大,KL 損失也就越大。
  • σ2\sigma^2σ2 (方差):它懲罰潛在分布的形狀(方差)偏離標準正態分布方差(1)的程度。
    • 如果 σ2\sigma^2σ2 過大(分布太寬),(1+log?(σ2)?σ2)(1 + \log(\sigma^2) - \sigma^2)(1+log(σ2)?σ2) 就會導致損失增大。
    • 如果 σ2\sigma^2σ2 過小(分布太窄),(1+log?(σ2)?σ2)(1 + \log(\sigma^2) - \sigma^2)(1+log(σ2)?σ2) 也會導致損失增大。
    • σ2=1\sigma^2 = 1σ2=1 時,log?(1)=0\log(1) = 0log(1)=0(1+0?1)=0(1 + 0 - 1) = 0(1+0?1)=0,這部分懲罰最小。

y=log?(x)?xy = \log{(x)}-xy=logx)?x 函數圖像

在這里插入圖片描述

所以,這個公式在數值上量化了你的“攝影風格”(潛在分布)與“標準風格”(標準正態分布)之間的差距。模型的目標就是最小化這個差距,讓生成的數據既能被很好地重構,又能保持潛在空間的良好結構。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91107.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91107.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91107.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

理解:進程、線程、協程

線程、進程和協程是并發編程的重要組成部分。進程(Process)定義進程是操作系統分配資源的基本單位,表示一個正在執行的程序。一旦一個程序被加載到內存中,它就成為一個進程,而每個進程都有其獨立的內存空間。特征進程之…

總結一下找素數的三種方法

目錄 一試除法 二埃氏篩 三線性篩(歐拉篩) 一試除法 思想:就是判斷某個數x是不是素數,就判斷從2開始到小于根號x的范圍內有沒有能夠取余不等于0的,這個說明當前值就是x的一個因子,所以不是素數。 代碼: import java.util.Scanner;public…

基于Yolov8車輛檢測及圖像處理系統【有代碼】

0 引言 隨著城市化進程的加速和機動車保有量的快速增長,交通管理、智能監控和自動駕駛等領域對車輛目標檢測技術的需求日益增長。車輛目標檢測是計算機視覺領域的一個重要研究方向,其目標是從圖像或視頻序列中準確識別和定位車輛,為后續的車輛跟蹤、行為分析和交通流量統計…

MySQL密碼管理器“mysql_config_editor“

目錄 核心能力 常用命令速查 為什么更安全? 典型場景 mysql_config_editor 是 MySQL 官方自帶的一款命令行小工具,作用一句話:把賬號、密碼、主機、端口等連接信息加密存起來,下次連接時只敲一個名字即可,不用再寫…

Kubernetes高級調度01

目錄 第一章:初始化容器(InitContainer)—— 應用啟動前的 “準備軍” 1.1 InitContainer 的基本概念與核心特性 1.2 InitContainer 與普通容器的關鍵區別 1.3 InitContainer 的實戰場景與示例解析 1.3.1 示例 1:延遲啟動 —…

LSV負載均衡

什么是訪問壓力?--負載 兩個客戶同時訪問一個服務器,會導致服務器崩潰調度---Cluster集群(為了解決一個特定問題,多臺服務器組合使用形成的一個系統)LSV 1、集群Cluster LB:負載均衡,有多個主機…

復習筆記 38

緒論 其實沒有一種安穩快樂,永遠也不差 專題 2 知識點 繼續學數學強化吧?可以。還有概率論要學。還有高數后半部分的數一專項要學。還有政治要學。要學的內容確實還是挺多的啊。加油。下載了一個閱讀的軟件,可以做一做真題的閱讀理解。政治英…

GaussDB like 的用法

1 like 作用在 where 子句中使用 like 運算符來搜索列中的指定模式。 有兩個通配符與 like 運算符一起使用:% - 百分號表示零個,一個或多個字符 _ - 下劃線表示單個字符注:也同時支持正則表達式。2 like 語法select column1, colu…

單例模式:確保全局唯一實例

單例模式確保一個類只有一個實例,并提供全局訪問點。適用于需要全局唯一對象的場景(如配置管理器、數據庫連接池)。代碼示例:import java.util.stream.IntStream;public class ConfigManager {public static void main(String[] a…

深入理解 QSettings:Qt 中的應用程序配置管理

在開發 Qt 應用程序時,管理應用程序的配置信息是一個常見的需求。無論是保存用戶的偏好設置、窗口大小,還是應用程序的運行時配置,都需要一種高效且靈活的方式來存儲和檢索這些信息。Qt 提供了一個強大的工具——QSettings,它能夠…

基于SpringBoot+Vue的體育館預約管理系統(支付寶沙盒支付、騰訊地圖API、協同過濾算法、可視化配置、可視化預約)

“ 🎈系統亮點:支付寶沙盒支付、騰訊地圖API、協同過濾算法、可視化配置、可視化預約”01系統開發工具與環境搭建—前后端分離架構 項目架構:B/S架構 運行環境:win10/win11、jdk17前端: 技術:框架Vue.js&am…

<script>標簽對HTML文件解析過程的影響以及async和defer屬性的應用

在前端開發中&#xff0c;<script> 標簽的 async 和 defer 屬性會顯著影響 JavaScript 腳本的加載和執行時機。下面結合示例代碼&#xff0c;詳細解析它們之間的區別&#xff1a; 1. 默認情況&#xff08;無 async/defer&#xff09; <script src"script.js"…

Vue.js:從 Web 到桌面的跨端實踐與技術選型指南

一、Vue.js 的核心能力邊界 作為漸進式 JavaScript 框架,Vue.js 的核心價值在于構建現代 Web 用戶界面: ? 前端核心場景:單頁應用(SPA)、動態交互界面、可復用組件開發 ? 架構限制:無法直接改造 B/S(瀏覽器/服務器)為 C/S(客戶端/服務器)架構 關鍵差異:B/S 依賴瀏…

SSRF11 各種限制繞過之DNS rebinding 繞過內網 ip 限制

ssrf漏洞在廠商的處理下可能進行一些特殊處理導致我們無法直接利用漏洞 有以下四種&#xff1a; 1.ip地址限制繞過 2.域名限制繞過 3.30x跳轉繞過域名限制 4.DNS rebinding繞過內網ip限制 本章我們講DNS rebinding 繞過內網 ip 限制 DNS rebinding 繞過內網 ip 限制 假…

FreeRTOS之鏈表操作相關接口

FreeRTOS之鏈表操作相關接口1 FreeRTOS源碼下載地址2 任務控制塊TCB2.1 任務控制塊TCB2.1.1 任務控制塊的關鍵成員2.1.2 TCB 的核心作用2.2 ListItem_t2.3 List_t3 函數接口3.1 vListInitialise3.2 vListInitialiseItem1 FreeRTOS源碼下載地址 https://www.freertos.org/ 2 …

項目一第一天

目錄 總結MySQL&#xff1a; 最終還是得按照SQL的語法來實施。 1、MySQL的數據類型&#xff1a;指業務數據按照什么格式存儲在數據庫中的。 任何數據類型最常見的三種&#xff1a;字符串、整型和小數型。 如&#xff1a;寶貝計劃這種存在視頻的項目&#xff0c;你們的視頻是存放…

STM32第二十天 ESP8266-01S和電腦實現串口通信(3)

1&#xff1a;透傳透傳&#xff08;又稱透明傳輸&#xff09;是一種通信模式&#xff0c;其核心特點是&#xff1a;通信設備對傳輸的數據不做任何解析或處理&#xff0c;僅作為“管道”原封不動地轉發數據&#xff0c;仿佛數據“透明”地穿過設備。透傳的本質關鍵特征說明無協議…

微服務引擎 MSE 及云原生 API 網關 2025 年 3 月產品動態

點擊此處&#xff0c;了解微服務引擎 MSE 產品詳情。

在 Docker 上安裝和配置 Kafka、選擇用于部署 Kafka 的操作系統

消息代理是一種軟件&#xff0c;充當在不同應用程序之間發送消息的中介。它的功能類似于服務器&#xff0c;從一個應用程序&#xff08;稱為生產者&#xff09;接收消息&#xff0c;并將其路由到一個或多個其他應用程序&#xff08;稱為消費者&#xff09;。消息代理的主要目的…

2D下的幾何變換(C#實現,持續更新)

&#xff08;1&#xff09;已知2D下&#xff0c;新坐標系的原點、X軸方向向量、Y軸方向向量在原始坐標系下的表示&#xff0c;求原始坐標系中直線&#xff0c;在新坐標系下的直線方程&#xff1b;&#xff08;2&#xff09;求直線與2D包圍盒的交點&#xff0c;可能有0、1或2個交…