新聞中心

EEPW首頁 > 智能計算 > 設計應用 > 從隱空間理解編碼器(Encoder)

從隱空間理解編碼器(Encoder)

作者:高煥堂 時間:2023-06-22 來源:電子產品世界 收藏


本文引用地址:http://butianyuan.cn/article/202306/447898.htm

1 前言

當我們在閱讀關于AIGC 的文章時,常常會看到Encoder和Decoder名詞。它們是AI( 即ML) 的核心模型,如果能深入理解它們的涵意和功能,就能更流暢地理解相關文章的內容,以及圖示。例如,關于Diff usion( 擴張模型) 的文章里??吹饺鐖D1。

1687448711624451.png

(圖1 來源https://www.joaoleal.com/how-stablediffusion-dall-e-2-and-midjourney-work)

圖1 說明諸如Stable Diff usion 里,就含有文本(text encoder)、圖像(img decoder)、以及解碼器(decoder)。這些都是AI 里的基本名詞,處處可見。再如,關于DeepFake( 換臉) 的文章里,也??吹竭@兩個名詞( 圖2)。

1687495490596687.png

(圖2 來源:https://arxiv.org/pdf/1909.11573.pdf)

這圖里就說明了,一般的DeepFake 模型里常含有一個圖像(Eecoder)、以及兩個圖像解碼器( 即Decoder_A 和Decoder_B)。

諸如上述圖片,其中的”Encoder”、”Decoder 名詞是處處常見的。所以把它弄清楚是有必要的。于是,本文就先來解說第1 個名詞:編碼器(Encoder)。當您深入理解編碼器了,就能輕易繼續(xù)理解第2 個名詞:解碼器(Decoder)。

2 從歐式空間出發(fā)

為了充分掌握它,就必需從歐式(Euclidean) 空間來入手。所謂空間就是大家熟悉的坐標空間(Coordinate space)。例如,一維空間就是數(shù)線( 圖3)。

1687495562196625.png

圖3

這圖里有兩個一維空間。人們隨著閱歷增多,逐漸學習,就會連連看,把兩個空間對映起來( 圖4)。

1687495631448652.png

圖4

人們把它記憶于腦海里。看到池塘里有黑色家禽,就會聯(lián)想的< 鴨>??吹匠靥晾镉邪咨仪荩赡芫蜁?lián)想的< 鵝> 或< 雞>。接下來,請您先思考:AI 如何學會上述的連連看呢? 也就是,人們如何當老師,把上述的連連看智能,傳授( 教導) 給AI 模型,讓它也能記憶上述的連連看關系。

其實,它是依賴一個簡單的數(shù)學公式:Y=X*W+B。有時候會再添加激活函數(shù),如:Z = Sigmoid(Y)。于是,拿來X = 0,放入公式計算出Y=4.6 的值( 圖5)。

1687495711637175.png

圖5

AI 就依賴這些參數(shù)( 即WB 值) 來記憶這項連連看的智慧。于是,再拿來X = 255,放入公式計算出Y = 0.5 的值( 圖6)。

1687495756625069.png

圖6

當AI 計算出Y=4.6,很接近于4,就連結到< 鴨> 了,也就憑過去的學習經驗和智慧,拿起畫筆畫出一只黑色鴨了。同樣地,AI 計算出Y = 0.5,很接近于0,就連結到< 雞> 了,也就憑過去的學習經驗和智慧,拿起畫筆畫出一只白色雞了。這就是AI 繪圖創(chuàng)作的源點。

在上述的例子里,白色灰階值為0,只有1 個特征值(Feature),可以是使用1 維空間表示。同理,當x = [255,100] 時,它即是2 維歐式空間里的一個點。

依此類推,當x = [255, 255, 255] 時,它即是3 維歐式空間里的一個點。在AI 里,就拿歐式空間來表達宇宙中的一切事物或現(xiàn)象。例如,拿歐式空間來表達RGB色彩,就成為大家熟知的RGB 色彩空間( 圖7)。

1687495832444797.png

圖7

3 范例演練

此范例里,包含4 張圖像,各章都由4 個像素(Pixel)所組成( 圖8)。

1687495880751830.png

圖8

請您練習想想看,在AI 里如何使用歐式空間來表達這4 件事物( 即4 張圖) 呢? 答案是:每一張圖像有4*3 = 12 個值( 即12 個特征),每一個特征值各在一維度軸上。于是,上述每一張圖在12 維歐式空間里,就是一個點。以此類推,這是1 張512 x512 的JPG 圖像( 圖9)。

image.png

圖9 圖源自《仙劍奇?zhèn)b傳》

請您練習想想看,在AI 里如何使用歐式空間來表達這張圖像呢? 答案是: 每一張圖像有512*512*3 個值( 即特征),每一個特征值各在一維度軸上。于是,上述這張圖在512*512*3維歐式空間里,就是1 個點。

基于上述的基礎,接下來,就可來理解一個常見的名詞:Embedded 及Embedding 。剛才提到,在這12 維空間里,存放( 記載) 這4張圖( 只含4 個點)。似乎有些浪費空間,計算也常比較費時。那么,我們能否把它降維呢?例如,利用5 維空間的4 個點來代表這4 張圖,會更省空間。

答案是:可以的。但是,請想一想:5 維空間的每一個點只能含有5 個值( 特征),而上述每一張圖有12 個值,該怎么辦呢?這個降維過程,就稱為:嵌入(Embedding )。即是:高維空間里的點,對應到低維空間里的點。于是,可將兩個不同的高維空間里的點,嵌入到同一個低維( 如3 維) 空間里( 圖10)。

1687496007592060.png

圖10 內含圖片引自《仙劍奇?zhèn)b傳》

這表達了,仙劍奇?zhèn)b傳里的“趙靈兒”喜歡“圖像-B”,而“李逍遙”喜歡“圖像-A”。負責嵌入的模型叫:編碼器(Encoder)。

人們想象可觀察空間里事物,然后由Encoder 來進行編碼,即嵌入到里,而AI 則對里的嵌入數(shù)據( 通稱為:Embedding code) 進行操作,來組合、生成創(chuàng)新的東西( 仍在里),然后交給Decoder來還原出可觀察空間的事物( 如新圖像、或新文句等)。例如,更多創(chuàng)新組合( 圖11)。

1687496059357532.png

圖11

上圖里的灰色部分就是隱空間,而Diffusion 就是在這隱空間里,進行圖像的組合創(chuàng)新。

4 結束語

深刻領會Encoder 和Decoder 的功能,非常有助于理解AIGC 的涵意。例如,理解Encoder 在進行嵌入到低維空間時,會過濾掉一些訊息。然后Decoder 必需( 依據其所學習的智慧) 把被過濾掉的細節(jié)部分弭補起來。

此時,像Diffusion 在隱空間里的創(chuàng)新組合,以及其Decoder 所添加弭補的部分,就是Diffusion 生成的內容。

(本文來源于《電子產品世界》雜志2023年6月期)



關鍵詞: 202306 隱空間 編碼器

評論


相關推薦

技術專區(qū)

關閉