SignalPlus:生成式AI簡介

2023-08-02 00:08:22

原文作者:Steven Wang

“What I cannot create, I do not understand.”

-Richard Feynman

前言

你左擁右抱着 Stable Diffusion 和 MidJourney 創造美輪美奐的圖片。

你熟練使用着 ChatGPT 和 LLaMa 創造辭致雅贍的文字。

你來回切換着 MuseNet 和 MuseGAN 創造高山流水的音樂。

毋庸置疑,人類最獨特的能力就是創造,但在科技日新月異發展的今天,我們通過創建機器來創造!機器可以給定風格繪制原創藝術品 (draw),可以編寫一長篇連貫文章 (write),可以創作悅耳的音樂 (compose),還可以為復雜遊戲制定獲勝策略 (play)。這個科技就是 生成式人工智能 (Generative Artificial Intelligence , GenAI),現在只是 GenAI 革命的开始,現在是學習 GenAI 的最佳時機。

1.生成和判別模型

GenAI 是一個 buzzword,其背後本質是 生成模型 (generative model),它是機器學習的一個分支,目標是訓練模型以生成與給定數據集相似的新數據。

假設我們有一個馬的數據集。首先,我們可以在此數據集上訓練生成模型,以捕獲控制馬圖像中像素之間復雜關系的規則。 然後,從此模型中進行採樣,以創建原始數據集中不存在的但是逼真的馬圖像,過程如下圖所示。

為了真正理解生成模型的目標和重要性,將其與 判別模型 (discriminative model) 進行比較是必要的。其實機器學習裏大多數的問題都是由判別模型解決的,看以下例子。

假設我們有一個繪畫數據集,一些是梵高畫的,一些是其他藝術家畫的。有了足夠的數據,我們就可以訓練一個判別模型來預測一幅給定的畫是否由梵高所作,過程如下圖所示。

當使用判別模型時,訓練集中每個示例都有一個標籤 (label),對於以上二分類問題,通常梵高的畫的標籤為 1 ,非梵高的畫的標籤為 0 。 上圖中模型最後預測的概率是 0.83 ,那么它很有可能是由梵高所作。和判別模型不同的是,生成模型不需要示例裏含有標籤,因為它的目標是生成新數據,而不是給數據預測標籤。

例子看完,讓我們用數學符號來精准定義生成模型和判別模型:

  • 判別模型對 P(y|x) 建模,給定特徵 x 來估計標籤 y 的條件概率。

  • 生成模型對 P(x) 建模,直接估計特徵 x 的概率,從這個概率分布中採樣即可生成新的特徵。

需要注意的是,即使我們能夠建立一個完美來識別梵高的畫的判別模型,它仍然不知道如何創作一幅看起來像梵高的畫,它只能輸出一個概率,即圖像是否來自梵高之手的可能性。由此可見,生成模型比判別模型要困難很多。

2.生成模型的框架

了解生成模型框架之前,讓我們先玩一個遊戲。假設下圖的點是由某種規則產生,我們稱該規則為 P data,現在讓你生成一個不同的 x = (x 1, x 2) 使得這個點看起來是由相同的規則 P data 產生的。

你會如何生成這個點?你可能利用已給的點在腦海裏產生一個模型 P model,而這個模型佔的位置上都可能生成你想要的點。由此可知,模型 P model 就是 P data 的估計。那么一個最簡單的模型 P model 如下圖的橙色方框,點只可能生成於方框內,而不可能生成於方框外。

要生成新的點,我們可以從方框內隨機選一個點,更嚴謹地說,從模型 P model 分布中採樣 (sampling)。這就是一個極簡的生成模型。你從訓練數據 (黑點) 中創建一個模型 (橙框),然後你可以從模型中採樣,希望生成出來的點和訓練集中的點看起來相似。

現在我們可以正式提出生成學習的框架了。

現在讓我們揭示真實的數據生成分布 P data,並了解如何應用以上框架於此示例。 從下圖中我們可以看到,數據生成規則 P data 是點只是在陸地上均勻分布,而不會出現在海洋中。

很明顯,我們的模型 P model 是規則 P data 的一個簡化。通過檢查上圖的 A、B 和 C 點可以幫助我們理解模型 P model 是否成功模仿了規則 P data。

  • 點 A 不符合規則 P data,因為它出現在海裏,但可能由模型 P model 生成,因為它出現在橙框之內。

  • 點 B 不可能由模型 P model 生成,因為它出現在橙框之外,但符合規則 P data,因為它出現在陸地上。

  • 點 C 由模型 P model 生成,而又符合規則 P data。

這個例子展示了生成建模背後的基本概念,雖然現實中用生成模型要復雜很多,但其基本框架是相同的。

3.第一個生成模型

假設你是一家公司的首席時尚官 Chief Fashion Officer (CFO),你的職責是創造新的時髦的衣服。今年你收到 50 個關於時尚搭配的數據集 (如下圖),而你需要創造 10 個新的時尚搭配。

雖然你是首席時尚官,但是你也是一個數據科學家,因此你決定用生成模型來解決此問題。看完上面 50 張圖片,你決定用五個特徵, 配件類型 (accessies type)、 服裝顏色 (clothing color)、 服裝類型 (clothing type)、 頭發顏色 (hair color) 和 頭發類型 (hair type),來描述時尚搭配。

前 10 個圖像數據特徵如下。

每個特徵也有不同數目的特徵值:

  • 3 種配件類型 (accessies type):

    Blank , Round, Sunglasses

  • 8 種服裝顏色 (clothing color):

    Black, Blue 01, Gray 01, PastelGreen, PastelOrange, Pink, Red , White

  • 4 種服裝類型 (clothing type):

    Hoodie, Overall, ShirtScoopNeck, ShirtVNeck

  • 6 種頭發顏色 (hair color) :

    Black, Blonde, Brown, PastelPink, Red, SilverGray

  • 7 種頭發類型 (hair type):

    NoHair, LongHairBun, LongHairCurly, LongHairStraight, ShortHairShortWaved, ShortHairShortFlat, ShortHairFrizzle

這樣有 3 * 8 * 4 * 6 * 7 = 4032 種特徵組合,所以可以想成樣本空間裏面包含着 4032 個點。從給出的 50 個數據點可以看出, P data 對於不同特徵會偏好某些特徵值。從上表看出圖像中白色服裝顏色和銀灰色頭發顏色就比較多。由於我們不知道真實的 P data,我們只能通過這 50 個數據來建一個 P model ,使其能夠和 P data 相近。

3.1 極簡模型

一個最簡單的方法就是給 4032 個特徵組合中每個點賦予一個概率參數,那么該模型包含 4031 個參數,因為所有概率參數加起來等於 1 。現在我們來一個個檢查 50 個數據,然後更新該模型的參數 θ 1 ,θ 2 ,…,θ 4031 ,每個參數的表達式為:

其中 N 是觀測數據的個數即 50 , n j 是第 j 個特徵組合在 50 個數據中出現的個數。

比如 (LongHairStraight, Red, Round, ShirtScoopNeck, White) 的特徵組合 (稱為組合 1) 出現了兩次,那么

比如 (LongHairStraight, Red, Round, ShirtScoopNeck, Blue 01) 的特徵組合 (稱為組合 2) 沒有出現,那么

按照上面的規則,我們將 4031 個組合都計算出一個 θ 值,不難看出有很多 θ 值都是 0 ,更糟的是我們不可能生成新的沒見過的圖片 ( θ = 0 意味着從未觀測到擁有該特徵組合的圖片)。為了解決此問題,只需在分母加上特徵數目的總數 d 和在分子加上 1 ,該技巧叫做拉普拉斯平滑。

現在,每個組合 (包括那些不在原始數據集中的組合) 都有非 0 的採樣概率,然而這仍然不是一個令人滿意的生成模型,因為不在原始數據集中的點的概率是一個常數。如果我們嘗試使用這樣的模型來生成梵高的畫,那么它會以相同概率來操作一下兩種畫:

  1. 梵高原作的復制畫 (不在原始數據集)

  2. 隨機像素拼湊的畫 (不在原始數據集)

這顯然不是我們想要的生成模型,我們希望它能從數據中學到一些固有的結構,從而能夠增加樣本空間中它認為更有可能的區域的概率權重,而不是把所有概率權重放在數據集中存在的點上。

3.2 次簡模型

樸素貝葉斯模型 (Naive Bayes) 可以將上面特徵組合的次數大大減少,根據其模型假設每個特徵之間都是相互獨立的。回到上面的數據,一個人的頭發顏色 (特徵 x j ) 和其衣服顏色 (特徵 x k ) 沒有聯系,用數學表達式表示就是:

p( x j | x k ) = p( x k )

有了這個假設,我們可以計算出

樸素貝葉斯模型將原始問題“對每個特徵組合做概率估計”簡化成對“每個特徵做概率估計”,原來我們需要用 4031 ( 3 * 8 * 4 * 6 * 7) 個參數,現在只需要 23 ( 3 + 8 + 4 + 6 + 7) 個參數,每個參數的表達式為:

其中 N 是觀測數據的個數即 50 , n kl 是第 k 個特徵取其下第 l 個特徵值的個數。

通過統計 50 個數據,下表給出樸素貝葉斯模型的參數值。

要計算模型生成某數據特徵的概率,只需要連乘上表中的概率, 比如:

以上這個組合沒有出現在原始數據集中,但模型仍然為它分配非零的概率,因此它仍然能夠被模型生成。因此,樸素貝葉斯模型能夠從數據中學習一些結構,並使用它來生成原始數據集中未見過的新示例。下圖是模型生成的 10 張新的時尚搭配的圖片。

在此問題中,特徵只有 5 個屬於低維數據,樸素貝葉斯模型假設它們相互獨立還算是合理,因此模型生成的結果還不錯,下面來看一個模型崩塌的例子。

4. 生成模型的難點

4.1 高維數據

作為首席時尚官,你成功用樸素貝葉斯生成了 10 套全新的時尚搭配,你信心爆棚了,覺得自己的模型無敵,直到遇到下面這套數據集。

該數據集不再是用五個特徵來表示了,而是由 32* 32 = 1024 個像素來表示,每個像素值可以去 0 到 255 中的一個, 0 表示白, 255 表示黑。下表列出前 10 張圖像像素 1 到 5 的值。

用同樣的模型生成 10 套全新的時尚搭配,下面是模型生成的結果,每張醜得都很類似,而且無法區分不同的特徵,為什么會這樣呢?

首先,由於樸素貝葉斯模型是獨立採樣像素,但是相鄰像素之間其實非常相似。對於衣服,其實像素應該大致相同,但是模型隨機採樣,因此得到上圖中的衣服都是五顏六色的。其次,高維樣本空間中的可能性太多,其中只有一小部分是可識別的。如果樸素貝葉斯模型直接處理這種高度相關的像素值,那么它找到令人滿意的值組合的機會非常小。

綜上所述,對於低維度而且特徵低相關的樣本空間,樸素貝葉斯效果通過獨立採樣的產生的效果很好;但對於高維度而且特徵高相關的樣本空間,通過獨立採樣像素來找到有效人臉幾乎是不可能的。

這個例子強調了生成模型要想成功必須克服的兩個難點:

  1. 模型如何處理高維特徵之間的條件依賴關系?

  2. 模型如何從高維樣本空間中找到滿足條件的極小比例觀察結果?

生成模型要想在高維度而且特徵高相關的樣本空間中成功,必須要利用深度學習模型。我們需要一個可以從數據中推斷出相關結構的模型,而不是被告知要提前做出哪些假設。深度學習可以在低維空間中形成自己的特徵,而這就是 表徵學習 (representation learning) 的一種形式。

4.2 表徵學習

表徵學習就是學習高維數據的表示的含義。

假設你去見一個從未見過面的網友,到達相約地點人很多根本找不到她,你打電話給她描述你的樣子。相信你不會說你圖像中像素 1 的顏色是黑,像素 2 的顏色是淡黑,像素 3 的顏色是灰等等。相反你會認為網友會對普通人的外貌有一個大概的了解,然後給予這個了解再描述像素組的特徵,比如,你有一頭烏黑亮麗的短發,戴着一雙金光閃閃的眼鏡等等。通常不超過 10 個這樣的描述,網友就可以從腦海中生成你的圖像,該圖像可能很粗糙,但不妨礙網友從幾百個人中找到你,即便她從來沒有見過你。

這個就是表徵學習背後的核心思想,不嘗試直接對 高維樣本空間 (high-dimensional sample space) 進行建模,而是使用一些 低維潛在空間 (low-dimensional latent space) 來描述訓練集中的每個觀察結果,然後學習一個 映射函數 (mapping function),該函數可以獲取潛在空間中的一個點並將其映射到原始樣本空間。換句話說,潛在空間中的每個點都表示着高維數據的特徵。

上面的話如果不好理解,請看下圖由一些灰度罐子圖像組成的訓練集。

不難看出,這些罐子可以僅用兩個特徵來描述:高度和寬度。因此我們可以圖像的高維像素空間轉換成二維潛在空間,如下圖所示。這樣我們可以從潛在空間採樣 (藍點),然後通過映射函數 f 將其轉換成圖像。

認識到原始數據集可以用更簡單的潛在空間來表示這件事情對於機器來說並不容易,首先機器需要確定高度和寬度是最能描述該數據集的兩個潛在空間維度,然後學習映射函數 f 可以在這個空間中取一個點並將其映射到灰度罐圖。 深度學習使我們能夠訓練機器,使其無需人類指導即可找到這些復雜的關系。

5. 生成模型的分類

所有類型的生成模型最終都旨在解決相同任務,但它們對密度函數的建模方法都略有不同, 一般來說有以下兩類:

  • 對密度函數 顯式建模 (explicitly modeling),

    但以某種方式約束模型,以便計算密度函數,比如 標准化流模型 (normalizing FLOW model)

    但是對密度函數做逼近,比如 變分自動編碼器 (variational autoencoder, VAE) 和 擴散模型 (diffusion model)

  • 對密度函數 隱式建模 (implicitly modeling),通過直接生成數據的隨機過程。比如 生成對抗網絡 (generative adversarial network, GAN)

總結

生成式人工智能 (GenAI) 是一種可用於創建新的內容和想法 (包括文字、圖像、視頻和音樂) 的人工智能。與所有人工智能一樣,GenAI 是由深度學習模型基於大量數據進行預訓練的超大型模型,通常被稱為 根基模型 (foundation model, FM)。有了 GenAI,我們能畫出更炫酷的圖像,寫出更優美的文字,譜出更動人的音樂,但第一步需要我們去了解 GenAI 怎么創造新的東西,正如文頭 Richard Feynman 所說的“我不會明白我無法創造的東西”。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

解析 DePIN 競爭格局:頭部項目佔領八成市場但收入甚微,資本入局潮來襲

撰文:Nancy,PANews 作為加密走向主流的重要推手之一,DePIN 生態展現出強勁的發展勢...

PANews
5 13小時前

Matrixport投研:美國進入貨幣寬松政策通道,市場波動性或將進一步增強

9 月 19 日凌晨 2: 00 ,美聯儲宣布降息 50 基點,聯邦基金利率的目標區間從 5.25...

星球日報
5 13小時前

現在還有人看漲以太坊嗎?

以太坊的市場情緒,已經是今年的第四次轉向極度看跌了。 大家逐漸意識到,“超聲波貨幣”的概念已經不再...

星球日報
6 13小時前

新加坡再聚,一文速覽Token2049精彩觀點

今年的Token2049,熱鬧非凡,新加坡,也再度成為Web3聖地。 在一年前,關於新加坡與香港的...

陀螺財經
5 13小時前

SignalPlus波動率專欄(20240920):ETH站起來了

FOMC 決議降息後的第二天,日本央行宣布維持利率政策不變,BTC 繼續攀升至 63000 上方,...

星球日報
5 13小時前

套利交易,加密市場繁榮的隱形推手

要點總結: 金融和加密貨幣中的套利交易:套利交易是指借入低利率貨幣來投資高收益資產。這種策略在傳統...

星球日報
5 13小時前