Deep Learning 101, Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101

AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。

Deep Learning 101 Buy Me A Coffee

去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心


大語言模型 語音處理 自然語言處理 電腦視覺
Large Language Model Speech Processing Natural Language Processing, NLP Computer Vision

用 AI 懂 AI

AI 技術 體驗/分享

手把手帶你一起踩 AI 坑https://www.twman.org/AI


AI 技術 開源/試用

🎵 不聽可惜的 NotebookLM Podcast @ Google 🎵


Towards Principled Methods for Training Generative Adversarial Networks

[網頁摘要版] 2018/05/11, Mark Chang, Towards Principled Methods for Training Generative Adversarial Networks


集合的可數性、不可數性與測度,及其在神經網絡理論中的應用

1. 集合的可數性(Countability)與不可數性(Uncountability)

首先,讓我們從集合的「大小」概念談起。雖然我們無法用數「個數」的方式來比較所有無限集合的大小,但我們可以藉由與自然數集合(正整數集合 $\mathbb{N} = {1, 2, 3, …}$)建立一對一對應(one-to-one correspondence)關係來區分無限集合。

定義與例子

實數集合的不可數性與康托爾對角線法

那麼,什麼集合是不可數的呢?最經典的例子就是實數集合(Real Numbers, $\mathbb{R}$)。實數包含有理數和無理數(如$\pi$, $\sqrt{2}$等)。無理數的存在使得整個實數集合變成了不可數的。

證明實數不可數的著名方法是康托爾對角線法(Cantor’s Diagonalization Argument),這是一個美麗的反證法:

  1. 假設:我們假設實數集合是可數的。如果實數集合是可數的,那麼理論上存在一個函數 $F$,可以將所有實數(我們可以考慮0到1之間的實數小數表示,這足以證明)與自然數一一對應起來。這意味著我們可以將所有0到1之間的實數列成一個無限的列表: $S_1 = 0.d_{11} d_{12} d_{13} …$ $S_2 = 0.d_{21} d_{22} d_{23} …$ $S_3 = 0.d_{31} d_{32} d_{33} …$ $…$ $S_n = 0.d_{n1} d_{n2} d_{n3} …$ $…$ 其中 $d_{ij}$ 表示列表裡第 $i$ 個實數小數點後的第 $j$ 位數字。

  2. 構造矛盾:現在,我們構造一個新的實數 $x$(也在0到1之間),它的構造方式非常特別:我們讓 $x$ 的小數點後第 $k$ 位數字 $d_{kk}’$ 與列表中第 $k$ 個實數 $S_k$ 的小數點後第 $k$ 位數字 $d_{kk}$ 不同。例如,我們可以規定如果 $d_{kk}$ 是0,我們就讓 $d_{kk}’$ 是1;如果 $d_{kk}$ 不是0,我們就讓 $d_{kk}’$ 是0(或者選擇任何其他不同於 $d_{kk}$ 的數字)。例如: $x = 0.d_{11}’ d_{22}’ d_{33}’ … d_{nn}’ …$ 其中 $d_{nn}’ \neq d_{nn}$ 對於所有 $n \ge 1$ 都成立。

  3. 得出結論:現在思考一下構造出來的實數 $x$。根據我們的構造方式,$x$ 的第一位小數 $d_{11}’$ 與 $S_1$ 的第一位小數 $d_{11}$ 不同,所以 $x \neq S_1$。$x$ 的第二位小數 $d_{22}’$ 與 $S_2$ 的第二位小數 $d_{22}$ 不同,所以 $x \neq S_2$,依此類推。對於列表中的任何一個實數 $S_n$,我們的構造保證了 $x$ 的第 $n$ 位小數與 $S_n$ 的第 $n$ 位小數不同,因此 $x \neq S_n$ 對於所有 $n$ 都成立。 這意味著,我們構造出了一個實數 $x$,它存在於0到1之間,但卻不在我們聲稱「包含了所有實數」的列表之中。這與我們最初「實數集合是可數的,所以所有實數都可以被列出」的假設產生了矛盾。因此,最初的假設是錯誤的,實數集合是不可數的

    • 新手重點: 對角線法的精髓在於「找到一個無法被編號的漏網之魚」,從而證明「所有元素都能被編號」這個前提是錯的。

可數集合的重要定理

在可數性方面,有兩個基本定理對於理解後續概念非常有幫助:

  1. 可數集合的可數聯集是可數的(Countable union of countable sets is countable):如果我們有一系列集合 $A_1, A_2, A_3, …$,每個集合 $A_i$ 都是可數的,並且集合的數量是可數的(無限多個但其數量本身是可數的),那麼這些集合的聯集 $A_1 \cup A_2 \cup A_3 \cup …$ 仍然是可數的。這解釋了為什麼有理數可數(可數個可數集合的聯集)。即使集合之間有重疊,這個定理依然成立。
  2. 可數集合的任意子集是可數的(Any subset of a countable set is countable):從一個可數集合中取出任何一部分元素構成一個子集,這個子集仍然是可數的(它不會變成不可數集合)。

2. 測度(Measure)

既然我們知道有些無限集合(如實數)是不可數的,這就引出了一些有趣的數學問題。考慮一條長度為1的線段,它可以被看作由不可數個點組成。如果我們將這條線段「分解」成構成它的所有點,然後再用這些點重新「組合」,直觀上似乎只能組合成總長度為1的東西。但如果沒有嚴謹的數學工具,理論上可能會推導出從長度為1的線段分解出的點,可以重組成兩條長度都為1的線段,這顯然違背直覺。

測度的目的與直觀理解

為了嚴謹地處理這類集合的「大小」或「體積」問題,數學家引入了測度(Measure)的概念。

定義測度的前提:可測空間與可測集

要定義測度,我們首先需要確立測量的「場地」和「對象」:

  1. 可測空間(Measurable Space, (X, $\Sigma$)):定義測度的空間 X。這個空間通常具有一定的維度(如一維的直線空間、二維的平面空間、三維的立體空間等)。$\Sigma$ 是一個特殊的集合族,稱為 $\sigma$-代數(Sigma-algebra)
  2. $\sigma$-代數($\Sigma$):$\sigma$-代數是空間 X 的子集構成的一個集合族,它必須滿足三個條件:(1) 空集 ($\emptyset$) 屬於 $\Sigma$;(2) 如果集合 A 屬於 $\Sigma$,則它的補集(X \ A)也屬於 $\Sigma$;(3) 如果有一系列可數個集合 $A_1, A_2, A_3, …$ 都屬於 $\Sigma$,則它們的可數聯集 $A_1 \cup A_2 \cup A_3 \cup …$ 也屬於 $\Sigma$。
  3. 可測集(Measurable Set):屬於 $\sigma$-代數 $\Sigma$ 的集合,就是可以被測量的集合。測度函數就是定義在這些可測集上的。
    • 新手重點: $\sigma$-代數可以理解為所有「規矩」、「可以用測度來量大小」的集合的集合。只有屬於這個集合族的集合,我們才能談論它的測度。

測度函數(Measure function M)的基本性質

一個測度函數 M 是一個從 $\Sigma$ 到非負實數(或 $+\infty$)的函數,它必須滿足以下三個基本條件:

  1. 非負性(Non-negativity):對於任何可測集 $S \in \Sigma$,其測度 $M(S)$ 必須大於或等於零。$M(S) \ge 0$。這符合我們對長度、面積、體積等「大小」概念的直觀理解,它們不會是負數。
  2. 空集的測度為零(Measure of the empty set is zero):空集合的測度是零,$M(\emptyset) = 0$。一個沒有任何元素的集合,其「大小」自然是零。
  3. 可數可加性(Countable Additivity):對於一組互斥(Disjoint)的可測集 $S_1, S_2, S_3, …$(即任意兩個集合之間沒有共同元素,$S_i \cap S_j = \emptyset$ 對於所有 $i \neq j$),其可數聯集的測度等於這些集合各自測度的總和。$M(\cup_{i=1}^{\infty} S_i) = \sum_{i=1}^{\infty} M(S_i)$。這個性質非常重要,它確保了先將互斥的集合合併再測量,與先測量每個集合再將測度相加,結果是一樣的。
    • 新手重點: 這個性質保證了「部分加總等於整體」的合理性,但請注意,它只對互斥的可數個集合的聯集成立。

測度零(Measure Zero)的概念與重要定理

測度零是指一個集合的測度為零。這並不意味著集合一定是空的或只有有限個點。

這引出了一個重要的定理:在一個 X 維空間中,可數個數的 G 維流形(G-dimensional manifold)的聯集,如果 G < X,那麼這個聯集在 X 維空間中的測度為零。例如,在三維空間中,可數無限個平面的總體積為零。這個定理對於理解後續神經網絡的特性至關重要。

3. 流形與維度(Manifold and Dimension)

在數學和物理學中,流形是一個重要的概念,它概括了曲線、曲面等幾何對象的性質。

流形的直觀理解與數學定義

同胚與微分同胚(Homeomorphism and Diffeomorphism)

空間填充曲線(Space-Filling Curve)

值得一提的是,存在一些特殊的連續函數,例如皮亞諾曲線(Peano curve),它可以將一維的線段連續地映射到二維的平面上,似乎「填充」了二維空間。這類曲線稱為空間填充曲線(Space-Filling Curve)。然而,空間填充曲線不是同胚。雖然它們是連續的,但它們通常不是一對一的(一個點可能被映射到多個位置,或者反函數不連續),因此不滿足同胚的要求,也不會是微分同胚。這是理解後續神經網絡定理的關鍵區別。

4. 神經網絡與維度不增加定理

現在,我們將上述概念應用到神經網絡,特別是生成對抗網絡(GAN)中的生成器(Generator, G)。GAN的生成器通常將一個低維度的潛在空間(latent space,通常被認為是一個流形)映射到高維度的數據空間,以產生逼真的數據(如圖像)。

定理敘述

一個核心的數學定理(在來源中有詳細證明)指出:一個神經網絡的生成器(Generator)不會將一個 D 維度的流形轉換到一個維度超過 D 的流形。換句話說,神經網絡層的運算最多維持輸入流形的維度,或者降低維度,但不會增加維度。神經網絡的結構保證了它不會是像空間填充曲線那樣可以增加維度的映射。

證明思路與組成部分分析

這個定理的證明是基於分析神經網絡的各個基本組成部分:

  1. 權重矩陣(Weights, W)與偏置向量(Biases, B)
    • 加入偏置向量 $B$ 是一種平移,它是一個同胚映射,因此不會改變流形的維度。
    • 乘以權重矩陣 $W$ 是一種線性變換。根據線性代數的奇異值分解(SVD),任何矩陣乘法可以分解為基變換(Change of Basis)、嵌入(Embedding)和投影(Projection)。
      • 基變換是微分同胚,不改變維度。
      • 嵌入是將低維流形放入高維空間(例如將二維平面放入三維空間),這也不增加流形本身的維度(它依然是二維的)。
      • 投影是將高維空間投影到低維空間,這顯然不會增加維度。
    • 證明中還討論了投影可能產生的一些特殊點,稱為臨界點(Critical Point),這些點在投影方向上導數為零。這些臨界點的集合被證明是孤立點(Isolated Point)的集合。一個集合中的點如果是孤立點(即在其周圍存在一個小鄰域不包含該集合中的其他點),那麼這個孤立點的集合一定是可數的。而我們知道,可數個點組成的集合,其在任何高於零維的空間中的測度都為零。因此,雖然投影可能產生這些點,但它們不會構成一個更高維度的流形,也不會增加整體集合的測度。
    • 新手重點: 線性變換雖然能旋轉、縮放、甚至將空間「壓扁」(投影),但它不能「拉伸」空間以增加流形的維度。
  2. 激活函數(Activation Functions):神經網絡的非線性能力主要來自激活函數。定理的證明將激活函數分為兩類:
    • 不平滑激活函數(如 ReLU, $f(x) = \max(0, x)$):ReLU 的轉換可以被視為與一系列有限數量的特殊對角線矩陣相乘(對角線元素為0或1)。當輸入經過 ReLU 時,它會被映射到這些矩陣對應的線性子空間的有限聯集上。由於這些子空間的維度不高於輸入空間維度,且其數量是有限的(有限包含於可數),根據前面提到的定理,有限(可數)個低維空間的聯集不會構成一個更高維度的空間。因此,ReLU 不會增加輸入流形的維度。
      • 新手重點: ReLU 把一些輸入變成零,相當於把流形的一部分「壓」到一個低維的「平面」上,或者讓某些維度上的變化消失。這只會降低或保持維度,不會增加。
    • 平滑激活函數(如 Sigmoid, Tanh):這些函數通常是可微分的且是嚴格單調遞增的(或遞減)。嚴格單調遞增的可微分函數通常是微分同胚。如前所述,微分同胚會保持維度。因此,平滑激活函數也不會增加輸入流形的維度。
      • 新手重點: 平滑激活函數雖然是彎曲的非線性變換,但它們是「拉伸」或「壓縮」空間,而不是像空間填充曲線那樣將低維「鋪展」成高維。因為它們是可微分且一對一的(在單調區間內),所以保持了局部結構和維度。

定理總結

綜合來看,由於神經網絡的每個組成部分(線性變換、激活函數)都不會增加輸入流形的維度,整個神經網絡(作為這些層的堆疊)也不會將一個低維的輸入流形轉換成一個更高維度的流形。生成器將潛在空間(一個低維流形)映射到數據空間,其輸出仍然是一個維度不高於潛在空間維度的流形。

5. 定理在 GAN 問題上的應用與討論

這個「維度不增加定理」被用來解釋 GAN 可能面臨的訓練挑戰,尤其是模式崩潰(Mode Collapse)問題。

潛在問題:生成數據與真實數據分佈的測度分離

論文的核心論點之一是,如果生成器 G 是一個神經網絡,它將低維的潛在空間映射到高維的數據空間。根據上述定理,生成器輸出的數據(理論上)會分佈在一個維度不高於潛在空間維度的流形上。

問題在於,真實世界的數據分佈可能居住在一個複雜的、可能維度更高(或至少佔據數據空間中一個測度非零的區域)的流形上。如果生成器輸出的流形維度低於數據空間維度,那麼根據測度零定理,生成數據的分佈在數據空間中的測度極可能為零

這樣一來,生成數據的分佈與真實數據的分佈在測度意義上可能幾乎沒有交集(或者交集的測度為零)。

與 GAN 訓練挑戰的聯繫

如果生成數據和真實數據的分佈在測度上是分離的(交集測度為零),那麼理論上存在一個完美的判別器(Perfect Discriminator),能夠將生成數據和真實數據完全區分開來。因為測度零的集合在測度上是「小」的,一個完美的判別器可以簡單地忽略那些測度為零的區域,從而完美地將生成數據分類為假,真實數據分類為真。

在 GAN 的對抗訓練框架下,如果判別器變得完美,它的梯度會指向一個方向,告訴生成器需要大幅改變才能騙過判別器。這可能導致訓練不穩定,生成器難以找到真實數據分佈的完整映射,最終可能只集中生成真實數據分佈中的一小部分模式,這就是模式崩潰。

討論與局限性

然而,這個論點也存在一些討論和潛在的局限性。來源中也提到了質疑的聲音:

  1. 完美判別器是否存在?:上述論證很大程度上依賴於「完美判別器」的存在。但在現實中,我們使用的神經網絡判別器其能力是有限的,例如受到其 VC 維度(VC Dimension)的限制。一個有限容量的判別器可能無法完美地區分兩個測度為零的集合,或者區分一個測度為零的集合與一個測度非零但離散的點集。即使生成數據和真實數據在測度上分離,實際的判別器可能仍無法將它們完全分開,這為 GAN 的訓練(以及一定程度上的成功)留下了空間。
  2. 真實數據分佈的特性:真實世界的數據,尤其是在計算機中表示時,通常是離散的。雖然我們可以將它們視為一個高維空間中的點集,這個點集的測度可能也是零(例如,有限個點集的測度是零)。如果真實數據和生成數據都是測度為零的集合,它們仍然可能有交集。然而,論文可能進一步證明了「完美對齊(perfectly alignment)」的情況(即生成數據分佈與真實數據分佈完全重合)是不會發生的。

總體而言,這個定理提供了一個從數學分析(拓撲學、測度論)角度理解 GAN 潛在困難的理論框架,特別是解釋了生成數據可能無法「覆蓋」真實數據分佈的原因。但也需要結合統計學和機器學習模型的有限能力來全面理解實際 GAN 訓練中的現象。

結論

回顧一下,我們從集合的可數性與不可數性開始,了解了如何區分不同大小的無限集合,特別是實數的不可數性及其證明(康托爾對角線法)。接著,我們引入了測度的概念,它為集合賦予了嚴謹的「大小」,並透過測度零的概念理解了低維集合在高維空間中的「體積」。這些工具幫助我們理解了流形及其維度,以及同胚和微分同胚如何保持維度。最後,我們將這些知識應用到神經網絡,看到了神經網絡(作為流形映射)的維度不增加定理,並探討了這個定理如何解釋 GAN 在生成與真實數據分佈上的潛在分離,以及由此可能導致的訓練挑戰,同時也認識到現實世界中判別器的局限性對此理論的影響。

對於初學者,掌握可數性與不可數性的區別、測度的基本概念(特別是測度零)以及流形的直觀認識,是理解更深入數學分析和相關機器學習理論的基礎。希望這次的探討能為您提供一個清晰的入門視角。