第十五章 表示學習 (開篇引言)
2017-07-07
Representation Learning
https://www.youtube.com/watch?v=MA52s5dQaGY
重點摘要: 本章首先討論表示學習是什麼意思,以及表示的概念如何有助於深度框架的設計。接著探討學習算法如何在不同任務中共享統計信息,包括使用無監督任務中的信息來完成監督任務。共享表示有助於處理多模式或多領域,或是將已學到的知識遷移到樣本很少或沒有,但任務表示依然存在的任務上。最後,探討表示學習成功的原因,從分佈式表示 (Hinton et al., 1986) 和深度表示的理論優勢,以及生成過程潛在假設的更一般概念,特別是觀測數據的基本成因。 許多信息處理任務可能非常容易,也可能非常困難,這取決於信息是如何表示的。例如,對於人類而言,可以直接使用阿拉伯數字進行加減法,但若使用羅馬數字,則問題變得困難。一個好的表示可以使後續的學習任務更容易。 在機器學習中,表示學習的目標是找到一種好的數據表示,使得後續的分類或其他任務更容易。監督學習訓練的模型,其內部隱藏層(特別是接近頂層的隱藏層)的表示能夠更加容易地完成訓練任務。
Q: 什麼是「表示學習」的核心思想?
A: 表示學習的核心思想是學習數據的良好表示(或特徵),使得後續的學習任務(如分類、回歸、聚類等)更容易解決或性能更好。一個好的表示能夠捕捉數據中的本質結構和有用信息。
Q: 為什麼說數據的「表示」方式對信息處理任務的難易程度有很大影響?請舉例說明。
A: 因為不同的表示方式會以不同的方式組織和呈現信息。一個好的表示可以使數據中的相關模式更突出,無關信息被抑制,從而簡化後續的處理。 例子: * 數字表示: 使用阿拉伯數字進行算術運算(如210除以6)比使用羅馬數字(如CCX除以VI)要容易得多,儘管它們表示相同的數值。 * 圖像像素 vs. 特徵: 直接使用圖像的原始像素值進行對象識別可能很困難,但如果能將圖像轉換為包含邊緣、角點、紋理等信息的特徵表示,識別任務就會變得更容易。
Q: 在監督學習的深度神經網路中,哪一部分可以被視為學習到的「表示」?
A: 在監督學習的深度神經網路中,模型的各個隱藏層(特別是那些接近輸出層的頂層隱藏層)的激活可以被視為數據的學習到的表示。這些隱藏層被訓練來提取對完成最終任務(如分類)有用的特徵。
15.1 貪心逐層無監督預訓練
重點摘要:
無監督預訓練在深度神經網路的復興上起到了關鍵的、歷史性的作用,它使研究者首次可以訓練不含諸如卷積或者循環網路這類特殊結構的深度監督網路。這個過程最初稱為無監督預訓練 (unsupervised pretraining),或者更精確地,貪心逐層無監督預訓練 (greedy layer-wise unsupervised pretraining)。
這是一個過程,它是一個無監督學習,嘗試獲取輸入分佈的形狀(表示如何有助於另一個任務,具有相同輸入域的監督學習)的典型示例。貪心逐層無監督預訓練依賴於單層表示學習算法,例如 RBM、單層自編碼器、稀疏編碼模型或其他學習潛在表示的模型。每一層使用無監督學習預訓練,將前一層的輸出作為輸入,輸出數據的新表示。這個新的表示(或者和其他變量比如要預測類別的關係)可能比原始表示更簡單。
算法 15.1 描述了貪心逐層無監督預訓練的協定:初始化一個淺層學習器 L
,使用訓練集學習一個表示函數 f
。然後,原始輸入數據 X
是第一個,並且 f^(1)(X)
是第一個隱藏層的輸出。在執行精調的情況下,我們使用學習者 T
,並使用初始函數 f
,輸入樣本 X
(以及在監督精調下關聯的目標 Y
),並返回回歸細調函數。階段數為 m
。
儘管無監督的貪心逐層訓練過程早已被用來規避監督問題中深度神經網路難以優化的問題 (Fukushima, 1975),但深度學習的復興始於 2006 年,源於發現這種貪心學習過程能夠為多層聯合訓練過程找到一個好的初始值,甚至可以成功訓練全連接的結構。
「貪心 (greedy)」指的是它是一個貪心算法,它優化每一塊(解決方案的每一個部分,每一層解決一個部分,而不是聯合優化所有部分)。它被稱為「逐層的 (layer-wise)」,是因為這些塊是網路中的層。
Q: 什麼是貪心逐層無監督預訓練?它的基本流程是怎樣的?
A: 貪心逐層無監督預訓練是一種訓練深度神經網路的方法,它包含以下步驟:
- 逐層訓練: 一次訓練網路的一層。
- 無監督: 每一層的訓練都是無監督的,即它試圖學習輸入數據的表示,而不使用任何標籤信息。常用的單層無監督學習算法包括 RBM、自編碼器等。
- 貪心: 每一層的參數在訓練後被固定下來,然後其輸出作為下一層的輸入進行訓練。這個過程是貪心的,因為它獨立地優化每一層,而不是聯合優化整個深層網路。
- 預訓練: 這個逐層的無監督訓練過程被視為「預訓練」,其目的是為後續的監督學習(精調)提供一個好的參數初始值。
Q: 為什麼貪心逐層無監督預訓練在深度學習的早期發展中扮演了重要角色?
A: 在深度學習的早期(約2006年左右),直接訓練深度神經網路(特別是全連接的)非常困難,常常會遇到梯度消失/爆炸、陷入差的局部最優等問題。貪心逐層無監督預訓練被發現是一種有效的方法,可以為深層網路的參數找到一個較好的初始區域。從這個好的初始點開始,後續的監督學習(精調)就更容易成功,並且能夠訓練出性能更好的深度模型。
Q: 「貪心」和「逐層」在這个術語中分別指什麼?
A:
- 貪心 (Greedy): 指的是算法在每一步都做出局部最優的選擇。在這種情況下,每一層被單獨優化,使其能夠最好地表示其輸入(即前一層的輸出),而不考慮這個選擇對後續層或整個網路最終性能的全局影響。
- 逐層 (Layer-wise): 指的是訓練過程是一層一層進行的。訓練完第一層後,其參數被固定,然後其輸出作為第二層的輸入進行訓練,以此類推。
15.1.1 何時以及為何無監督預訓練有效?
重點摘要: 無監督預訓練的有效性並非普遍適用,其效果取決於多種因素。
- 作為正則化器: 無監督預訓練可以引導學習過程朝向能夠更好地捕捉輸入分佈結構的參數空間區域,這本身可以作為一種正則化,有助於後續監督學習的泛化。如果預訓練任務與監督任務相關(例如,學習到的特徵對分類有用),效果會更好。
- 優化困難的緩解: 它可以將參數初始化到一個更容易進行監督學習優化的區域,避免陷入差的局部最優或梯度問題。這對於深度網路尤其重要。
- 數據量: 當標註數據稀疏時,無監督預訓練可以利用大量未標註數據來學習有用的表示,從而提升在少量標註數據上的監督學習性能。
- 任務相關性: 表示學習的目標是學習一個好的表示。無監督預訓練學習到的表示不一定對所有監督任務都有用。如果無監督任務(如重構輸入)與監督任務(如分類)所需的特徵有很大差異,則預訓練可能效果不佳,甚至有害。
- 架構和算法選擇: 預訓練的效果也與所使用的單層無監督學習算法(如 RBM、自編碼器)以及整體網路架構有關。 現代實踐中,隨著更好的優化算法(如 Adam)、初始化方法(如 Xavier/He 初始化)、激活函數(如 ReLU)以及正則化技術(如 Dropout、批量歸一化)的出現,對於許多標準的監督學習任務(尤其是有大量標註數據時),直接進行端到端的監督訓練已成為主流,無監督預訓練的必要性有所下降。但在某些特定場景,如標註數據極少、遷移學習、領域自適應等,無監督預訓練或類似的表示學習思想仍然具有價值。
Q: 無監督預訓練在哪些情況下可能特別有效?
A: 無監督預訓練可能在以下情況下特別有效:
- 標註數據稀少,但有大量未標註數據: 無監督預訓練可以利用大量未標註數據來學習輸入數據的內在結構和有意義的表示,這些表示隨後可以用於只有少量標註數據的監督學習任務。
- 深度網路的優化困難: 對於非常深的網路,無監督預訓練可以將參數初始化到一個更容易進行監督學習優化的區域,有助於避免梯度消失/爆炸或陷入差的局部最優。
- 作為一種正則化: 預訓練階段學習到的表示往往能捕捉輸入數據的統計規律,這可以引導監督學習階段找到更具有泛化能力的解。
- 當輸入分佈的結構與目標任務相關時: 如果學習輸入分佈的表示(無監督任務)所提取的特徵對最終的監督任務(如分類)是有用的,那麼預訓練效果會更好。
Q: 無監督預訓練的有效性是否總是得到保證?為什麼?
A: 不,無監督預訓練的有效性並非總是得到保證。原因包括:
- 任務不相關: 無監督預訓練學習到的表示是為了捕捉輸入數據的整體結構(例如,為了能夠重構輸入)。如果這些特徵與最終的監督任務所需的特徵不相關,那麼預訓練可能沒有幫助,甚至可能有害。
- 數據集特性: 對於某些數據集,直接進行監督學習可能已經足夠好,無監督預訓練帶來的改進可能微乎其微。
- 現代優化技術的發展: 隨著更好的優化器、初始化方法、激活函數和正則化技術的出現,直接端到端訓練深度監督模型的成功率大大提高,降低了對無監督預訓練的依賴。
Q: 為什麼說無監督預訓練可以作為一種「預處理」步驟,將參數初始化到一個「好的區域」?
A: 「好的區域」指的是參數空間中一個更容易通過監督學習(如梯度下降)找到良好解(即泛化能力強的局部最優或全局最優)的區域。無監督預訓練通過學習輸入數據的內在結構,使得網路的初始權重能夠提取一些有意義的底層和中層特徵。從這些有意義的特徵出發,監督學習階段更容易學習到與任務相關的高層特徵,而不是從完全隨機的、可能導致優化困難的參數點開始。
15.2 遷移學習和領域自適應
重點摘要: 表示學習的另一個重要應用是遷移學習 (transfer learning) 和領域自適應 (domain adaption)。
- 遷移學習: 指的是將在一個任務(源任務,通常有較多數據)上學到的知識(例如,表示或模型參數)應用於另一個相關但不同的任務(目標任務,通常數據較少)。其核心思想是,不同任務之間可能共享一些底層的特徵表示。例如,在圖像識別中,在一個大規模圖像數據集(如 ImageNet)上預訓練的模型的底層卷積層學習到的邊緣、紋理等通用特徵,可以遷移到其他圖像相關任務(如特定類別的對象檢測),即使目標任務的數據量很少。
- 領域自適應: 是遷移學習的一種特殊形式,其中源域和目標域的輸入分佈不同(例如,新聞文章 vs. 產品評論),但任務本身是相同的(例如,情感分類)。目標是學習一個能夠在目標域上表現良好的模型,即使目標域的標註數據很少或沒有。這通常涉及到學習一個對領域變化不敏感的共享表示空間。
- 多任務學習 (Multitask Learning): 相關概念,指同時學習多個相關任務,並讓這些任務共享部分表示。這可以被視為一種遷移學習的形式,知識在並行學習的多個任務間遷移。
- 零樣本學習 (Zero-shot Learning) / 單樣本學習 (One-shot Learning): 遷移學習的極端形式。零樣本學習指模型能夠識別從未在訓練中見過的類別,通常通過學習類別的語義表示(如屬性)並將其與視覺特徵關聯起來。單樣本學習指模型僅通過一個或極少數樣本就能學會識別新的類別。
- 多模態學習 (Multimodal Learning): 指學習不同模態數據(如圖像和文本)之間的聯合表示。這可以看作是將一種模態的表示遷移到另一種模態,或者學習一個能夠橋接不同模態的共享潛在空間。
Q: 什麼是遷移學習?它的核心思想是什麼?
A: 遷移學習是一種機器學習方法,它將在一個「源」任務上學到的知識(例如,學到的特徵表示、模型參數)遷移或應用到一個不同但相關的「目標」任務上。 核心思想是,許多現實世界的任務之間存在共性,因此在一個任務上學到的通用知識或表示可以幫助改善在另一個任務(特別是數據較少的任務)上的學習性能。
Q: 領域自適應與一般的遷移學習有何區別?
A: 領域自適應可以看作是遷移學習的一種特殊情況。
- 遷移學習 (廣義): 源任務和目標任務的標籤空間 (label space) 或特徵空間 (feature space) 可能都不同。
- 領域自適應: 通常假設源域和目標域的任務(即標籤空間和輸出)是相同的,但輸入數據的分佈不同(即輸入特徵空間的邊緣分佈
P(X)
不同)。目標是將模型從標註數據充足的源域適應到標註數據稀疏或無標註的目標域。
Q: 在圖像識別任務中,遷移學習通常是如何應用的?
A: 一種常見的做法是:
- 選擇一個在非常大規模的圖像數據集(如 ImageNet,包含百萬級圖像和上千個類別)上預訓練好的深度卷積神經網路(如 VGG, ResNet, Inception)。
- 對於新的目標任務(例如,特定種類花卉的分類,可能只有少量訓練圖像),可以:
- 作為特徵提取器: 固定預訓練模型的卷積層參數,將這些層的輸出作為固定長度的特徵向量,然後在這個特徵之上訓練一個新的、簡單的分類器(如 SVM 或邏輯回歸)。
- 精調 (Fine-tuning): 將預訓練模型的參數作為初始值,然後在目標任務的數據上繼續訓練整個網路(或部分層),通常使用較小的學習率。
Q: 什麼是零樣本學習 (zero-shot learning)?它如何實現對未見過類別的識別?
A: 零樣本學習是指模型能夠識別在訓練階段從未見過的類別的樣本。 它通常通過以下方式實現: 1. 學習一個從輸入特徵到一個共享的語義嵌入空間 (semantic embedding space) 的映射。 這個語義空間可以是基於詞向量(如 Word2Vec, GloVe)、屬性描述或其他形式的類別的語義表示。 2. 為每個類別(包括未見過的類別)獲取其在該語義嵌入空間中的表示。 3. 在預測時,將輸入樣本映射到語義嵌入空間,然後找到與其最接近的(已知的或未見過的)類別的語義表示。 關鍵在於模型學習到的不是直接從輸入到類別標籤的映射,而是到一個能夠表示類別之間語義關係的共享空間的映射。
15.3 半監督解釋因果關係
重點摘要: 表示學習的一個重要問題是「什麼原因使得一個表示比另一個表示更好?」一個假設是,理想表示中的特徵應該對應於觀測數據的潛在成因,特別是那些在不同任務或領域之間共享的特徵。
- 解耦表示 (Disentangled Representation): 理想情況下,一個好的表示應該將數據變化的獨立潛在因素解耦開來,即表示中的每個維度或子空間對應一個獨立的、可解釋的成因。
- 半監督學習與因果關係: 半監督學習(同時使用標註和未標註數據)可以被視為試圖學習這種因果表示的一種方式。未標註數據
p(x)
有助於學習輸入空間的結構和潛在成因,而標註數據p(y|x)
則將這些潛在成因與具體的標籤聯繫起來。如果y
本身就是x
的成因之一,那麼模型學習到的表示可能更容易捕捉到這種因果關係。 - 生成對抗網路 (GAN) 與解耦: 一些研究表明,GAN 的某些變體(如 InfoGAN)能夠學習到解耦的表示,其中潛在空間的不同維度控制生成圖像的不同可解釋屬性(如數字的樣式、旋轉角度等)。 然而,從觀測數據中完全恢復潛在的因果結構通常是非常困難的,尤其是在沒有干預數據或強先驗知識的情況下。
Q: 為什麼說一個好的表示應該對應於觀測數據的「潛在成因」?
A: 因為觀測數據通常是由一些更基本、更獨立的潛在因素或過程相互作用產生的。如果一個表示能夠捕捉到這些潛在的成因,並且將它們解耦開來(即表示的不同部分對應不同的獨立成因),那麼這個表示:
- 更具有可解釋性: 我們可以理解表示的每個部分對應現實世界中的什麼因素。
- 更具有泛化能力: 這些潛在成因可能在不同的數據點、任務或領域之間是共享的,因此基於這些成因的表示更容易泛化。
- 更魯棒: 如果表示捕捉到了本質的成因,那麼它可能對輸入數據中一些與任務無關的表面變化不那麼敏感。
Q: 半監督學習如何幫助學習與數據潛在成因相關的表示?
A: 半監督學習結合了未標註數據和少量標註數據。
- 未標註數據
p(x)
: 有助於模型學習輸入空間的整體結構、密度和主要的變化模式。這些變化模式往往與數據的潛在成因相關。例如,在圖像數據中,光照、姿態、物體身份等都是潛在的成因,它們共同決定了圖像的樣子。模型通過觀察大量未標註圖像,可以學習到這些因素的影響。 - 標註數據
p(y|x)
: 提供了將這些學習到的潛在結構與具體任務標籤聯繫起來的監督信號。它幫助模型識別哪些潛在成因(或其組合)與目標變數y
相關。 如果標籤y
本身就是x
的一個潛在成因(例如,在 MNIST 數據中,數字的類別是圖像的成因之一),那麼半監督學習更容易學習到捕捉這種因果關係的表示。
Q: 什麼是「解耦表示 (disentangled representation)」?它為什麼是理想的?
A: 解耦表示是指一種數據表示,其中單個潛在單元(或維度)對數據變化的單個生成因素敏感,而對其他因素相對不敏感。也就是說,表示的不同部分控制著數據的不同獨立變化維度。 它之所以理想,是因為: * 可解釋性強: 每個潛在單元都有明確的語義含義。 * 易於控制和操作: 可以通過修改表示的特定部分來有針對性地改變生成數據的某個屬性。 * 有利於遷移和泛化: 如果潛在因素是通用的,那麼解耦的表示更容易遷移到新的任務或領域。
15.4 分佈式表示
重點摘要: 分佈式表示 (Distributed Representation) 指的是數據的表示由許多特徵同時激活來形成,並且每個特徵可以參與到多個不同數據的表示中。這與局部表示 (localist representation) 或符號表示 (symbolic representation) 相對,後者通常是 one-hot 編碼,即只有一個單元激活來表示一個概念。
- 優勢:
- 指數級的表示能力:
n
個二值特徵可以表示2^n
個不同的概念,而n
個 one-hot 單元只能表示n
個概念。這使得分佈式表示在表示大量概念時更為高效。 - 泛化能力: 由於特徵可以被多個概念共享,模型可以利用已經學到的關於一個概念的知識來推斷關於另一個共享某些特徵的新概念。例如,如果模型知道「紅色」、「球形」、「有彈性」這些特徵,並且看到了一個紅色的、球形的、有彈性的「蘋果」,它可能更容易泛化到紅色的、球形的、有彈性的「櫻桃」。
- 指數級的表示能力:
- 線性因子模型的視角: 許多表示學習算法(如 PCA、因子分析、稀疏編碼、RBM、NMF 等)可以被視為學習線性因子模型,其中數據被假設為由一些潛在因子(表示的基)的線性組合生成。這些潛在因子通常是分佈式的。
- 深度與分佈式表示: 深度架構通過組合多層分佈式表示來學習越來越抽象和複雜的特徵,每一層的特徵都是前一層特徵的非線性組合。 圖 15.7 展示了分佈式表示學習算法如何將輸入空間劃分為多個區域,每個區域對應一個激活模式。圖 15.8 則說明了最近鄰算法只能劃分與輸入空間維度相同的區域數量,而分佈式表示可以通過組合來劃分指數級數量的區域。
Q: 什麼是分佈式表示?它與局部表示(如 one-hot 編碼)有何主要區別?
A:
- 分佈式表示: 數據的表示是由許多特徵(或潛在單元)同時激活來形成的。每個特徵可以參與到多個不同數據點或概念的表示中。表示不是「一個激活單元對應一個概念」。
- 局部表示 (如 one-hot 編碼): 數據的表示是通過激活單個特定的單元來實現的,每個單元對應一個獨立的概念。例如,在 one-hot 編碼中,向量中只有一個元素是 1,其餘都是 0。 主要區別在於,分佈式表示允許特徵的組合和共享,而局部表示則將每個概念隔離開來。
Q: 相較於局部表示,分佈式表示有哪些主要優勢?
A:
- 指數級的表示能力: 使用
n
個二值特徵的分佈式表示可以潛在地表示2^n
種不同的模式或概念。而n
個單元的局部表示(如 one-hot)只能表示n
個不同的概念。這使得分佈式表示在表示大量、複雜的概念時更為緊湊和高效。 - 更好的泛化能力: 由於特徵可以在不同的概念之間共享,模型可以利用已經學到的關於某些概念的知識來推斷或學習關於新的、共享某些特徵的概念。這有助於模型對未見過的數據或概念進行泛化。
- 更豐富的相似性度量: 在分佈式表示空間中,概念之間的相似性可以通過其共享的特徵數量或其表示向量之間的距離來度量,這比局部表示中簡單的「相同/不同」更為細膩。
Q: 為什麼說許多表示學習算法可以被看作是學習一種線性因子模型?
A: 許多表示學習算法(如 PCA、因子分析、稀疏編碼、某些類型的自編碼器、RBM 等)的目標可以被解釋為找到一組潛在的「因子」或「基向量」,使得觀測數據可以被近似地表示為這些因子的線性組合。這些潛在因子通常是分佈式的,即一個數據點由多個因子共同作用來表示,而一個因子也可能參與到多個不同數據點的表示中。學習這些因子以及它們如何組合來重構數據,就是這些算法的核心。
15.5 得益於深度的表示
重點摘要: 深度架構(即多層表示)能夠學習到比淺層架構更抽象、更強大的特徵表示。每一層都以前一層的表示為基礎,學習更複雜的組合和抽象。
- 層次化特徵: 深度網路能夠學習到數據的層次化特徵。例如,在圖像識別中,第一層可能學習邊緣和角點,中間層可能學習物體的局部部件(如眼睛、輪子),更高層則可能學習完整的物體。
- 指數級的表示增益: 理論研究表明,某些函數如果用深度網路來表示,可能只需要多項式數量的參數,而用淺層網路(如單隱藏層網路)來表示相同的函數,則可能需要指數級數量的參數。這說明深度在表示某些類型的複雜函數時具有根本性的優勢。
- 變化的分佈式表示: 每一層的輸出都是一種分佈式表示。隨著層次的加深,這些表示變得越來越抽象,越來越與輸入數據的原始形式不同,但可能更接近於完成特定任務(如分類)所需的表示。 圖 15.9 展示了一個概念性的例子,說明深度如何從簡單的局部特徵(如性別、是否戴眼鏡)逐步組合出更複雜的概念(如特定人物)。
Q: 為什麼說深度架構能夠學習到比淺層架構更抽象的表示?
A: 因為深度架構是層次化的。每一層都以前一層學習到的表示(特徵)作為輸入,並對這些特徵進行非線性變換和組合,從而形成更高級別、更抽象的特徵。這個過程逐層進行,使得網路能夠從原始的、低級別的感官輸入(如像素值)逐步提取出對任務有意義的、高度抽象的概念。例如,在圖像處理中,淺層可能檢測邊緣,中層檢測物體部件,高層檢測整個物體。
Q: 深度表示在表示某些複雜函數時,相較於淺層表示有什麼理論上的優勢?
A: 一些理論研究表明,存在某些類型的函數,如果使用深度神經網路(具有多個隱藏層)來表示它們,可能只需要多項式(相對於輸入維度或複雜度)數量的參數和計算單元。然而,如果試圖用淺層神經網路(例如只有一個隱藏層)來表示同樣複雜程度的這些函數,則可能需要指數級數量的參數和計算單元。這意味著對於這些函數類別,深度架構在表示效率上具有根本性的優勢。
Q: 「深度」如何與「分佈式表示」相結合來學習有用的特徵?
A: 每一層深度網路的輸出都可以被看作是一種分佈式表示。深度架構通過堆疊多個這樣的表示層,使得每一層都在前一層分佈式表示的基礎上學習新的、通常更抽象的分佈式表示。這種逐層的、分佈式的特徵提取和組合過程,使得深度網路能夠有效地從原始數據中學習到對複雜任務(如圖像識別、自然語言理解)至關重要的層次化特徵。
15.6 提供發現潛在原因的線索
重點摘要: 表示學習的一個核心目標是發現數據背後的潛在成因或解釋性因素。本節討論了一些有助於模型發現這些潛在原因的通用線索或假設。這些線索通常作為先驗知識或正則化項被納入模型設計和學習過程中。
- 平滑性 (Smoothness) / 局部不變性 (Local Invariance): 假設相似的輸入應該具有相似的表示,或者小的輸入變化不應導致表示的巨大跳變。這可以通過懲罰表示函數的 Jacobian 范數等方式實現。
- 線性性 (Linearity): 在某些情況下,假設潛在因素之間或潛在因素與觀測數據之間的關係是線性的,可以簡化模型並幫助學習。
- 多個解釋因子 (Multiple Explanatory Factors): 假設觀測數據是由多個潛在因素共同作用產生的。表示學習的目標是將這些因素解耦。
- 因果因子 (Causal Factors): 假設表示應該捕捉到數據生成的真實因果過程中的因素。
- 層次組織 (Hierarchical Organization): 假設潛在因素本身是以層次化的方式組織的,低級別的簡單因素組合成高級別的複雜因素。深度學習模型天然地體現了這種假設。
- 任務間共享因子 (Shared Factors across Tasks): 假設不同的相關任務或數據域共享一些底層的潛在因子。這為遷移學習和多任務學習提供了基礎。
- 流形 (Manifolds): 假設高維觀測數據實際上位於一個嵌入在高維空間中的低維流形上。表示學習的目標是學習這個流形的結構或一個到低維嵌入空間的映射。
- 時間和空間相干性 (Temporal and Spatial Coherence): 假設在時間上相鄰或在空間上相近的數據點可能共享相似的潛在表示或由緩慢變化的潛在因素生成。
- 稀疏性 (Sparsity): 假設對於每個數據點,只有少數潛在因子是活躍的。這有助於學習更簡潔和可解釋的表示。
- 簡潔性 (Simplicity) / 奧卡姆剃刀 (Occam’s Razor): 傾向於選擇能夠以最簡單方式解釋數據的模型和表示。
Q: 為什麼「平滑性」或「局部不變性」被認為是學習良好表示的一個有價值的線索?
A: 「平滑性」假設相似的輸入應該映射到相似的表示,或者說表示函數不應該對輸入的微小擾動過於敏感。「局部不變性」則更強調表示應該對某些與任務無關的局部變化(如圖像中的微小平移、旋轉或光照變化)保持不變。 這些特性之所以有價值,是因為: 1. 提高魯棒性: 使模型對輸入中的噪聲或不重要的變化不那麼敏感。 2. 促進泛化: 如果模型學習到對局部變化不敏感的表示,它更容易將從訓練數據中學到的知識泛化到未見過的、但與訓練數據相似(經過微小變換)的數據上。 3. 簡化決策邊界: 在分類任務中,平滑的表示空間可能使得不同類別之間的決策邊界更簡單、更平滑。
Q: 「層次組織」的假設如何體現在深度學習模型中?
A: 「層次組織」的假設是指現實世界中的概念和特徵通常是以層次化的方式組織的,即簡單的、低級別的特徵組合成更複雜的、高級別的特徵。 深度學習模型(特別是深度神經網路)通過其多層結構天然地體現了這種假設: * 網路的每一層都可以被看作是在學習一個特定抽象級別的特徵表示。 * 較低層次(靠近輸入)的單元學習檢測簡單的局部模式(如圖像中的邊緣、角點)。 * 較高層次的單元則將低層次特徵組合成更複雜、更全局的模式(如物體的部件、完整的物體)。 這種層次化的特徵提取和組合過程使得深度模型能夠有效地學習數據中複雜的層次結構。
Q: 「稀疏性」假設在表示學習中有何作用?它如何幫助學習?
A: 「稀疏性」假設是指對於給定的輸入數據,其潛在表示中只有少數幾個特徵(或因子)是活躍的(即具有非零值),而大多數特徵是不活躍的(值為零或接近零)。 稀疏性在表示學習中的作用包括: 1. 信息瓶頸: 迫使模型只用少數幾個最重要的特徵來表示數據,從而提取更本質、更緊湊的信息。 2. 可解釋性: 稀疏表示中,每個激活的特徵可能對應一個更明確、更可解釋的數據屬性。 3. 計算效率: 處理稀疏向量可能比處理稠密向量更快。 4. 避免過擬合: 作為一種隱式的正則化,有助於模型學習更泛化的特徵。 例如,在稀疏編碼中,通過 L1 正則化來鼓勵潛在表示的稀疏性。
希望這些詳細的摘要和Q&A對您有所幫助!