?

從隱空間領會解碼器

2023-08-02 08:33高煥堂
電子產品世界 2023年7期
關鍵詞:微調解碼器編碼器

高煥堂

0 引言

在上1 期里,您已經領會( 理解)Encoder 的涵意和功能了。在本期里,就繼續來領會Decoder 的涵意和功能。由于這兩者是息息相關的。例如在Diffusion 模型里,就含有文本編碼器(text encoder)、圖像編碼器(imagedecoder)、以及解碼器(decoder) 等。

于是,當您已經深入理解編碼器了,就能輕易繼續理解另一名詞:解碼器(Decoder)。茲回憶上1 期的說明:Encoder 負責從有招的世界,萃?。?過濾)& 沉淀于無招世界( 即AI 的潛藏空間),然后由Decoder 來生成千變萬化的新招式。例如,上1 期所舉的< 換臉> 范例( 圖1)。

1 Decoder如何生成?

Decoder 的無中生有技能是它經由機器學習(Machine Learning) 過程,而獲得的知識和智能;基于這學來的智慧來進行< 生成>。我們先從簡單的例子出發。例如,讓它( 即Decoder) 學習:< 輸入1 個數值--1,而輸出3 個數值( 紅色RGB 的數值) -- [255, 0, 0]。

茲以圖2 表示。

然后繼續讓學習更多。例如學習:< 輸入一個數值--100,而輸出3 個數值( 綠色RGB的數值) -- [0, 255, 0]。并且學習:< 輸入1 個數值-- 200,而輸出3 個數值( 藍色RGB的數值) -- [0, 0, 255]。共學習了3項智能(圖3)。

俗語說:學而時習之。讓它重復學習更多回合,它就掌握上述的3 項生成< 規律> 了。之后,只要我們輸入[1] 給這Decoder,它就會生成很接近于[255, 0, 0]的值,但不一定是[255, 0, 0]。同樣地,只要輸入[100]給這Decoder,它就會生成很接近于[0, 255, 0] 的值,但只是近似而已。

請您想一想:此時如果您輸入一個值[95] 給這Decoder,那么它會輸出什么值呢? 這只是一個起點,逐漸地擴大Decoder 的能力,就能做出形形色色的圖像生成了。例如,從上述范例的輸出都是1 個點的顏色RGB 值。我們可以擴大輸出( 生成),例如輸出4 個彩色點的RGB 值。每一個點都有RGB 3 個值,而4 個點共有12 個值。也就是輸出1 個向量,其含有12 個值( 圖4)。

繼續讓它學習更多種配對( 圖5)。

接下來, 還可以擴大輸出( 生成), 例如輸出128x128 彩色點的RGB 值。每一個點都有RGB3 個值,共有128x128x3 個值。也就是輸出1 張JPG 圖像( 圖6)。

然后請試想:此時如果您輸入一個向量值[0.1, 0.1,0.9] 給這Decoder,那么它會生成什么圖像呢?

2 Decoder的生成智慧從哪里來?

以上說明了Decoder 經由數千或數萬回合的重復學習,而學習其對應規律,而擁有生成的技能。而人們透過輸入值來引導它生成不同色彩、形狀的圖像。在上述的說明中,請您勿必留意:人們輸入值〔0, 1, 0〕等只是用來引導Decoder 去微調其所學的知識,來繪出作品。

就如同學生問老師時,從古典的角度而觀之,是老師在幫學生解析問題。其實也是:學生在引導老師去表達其深厚的學問。

所以,Decoder 不是去解析人們的輸入數據,而是Decoder 參考人們的輸入( 指引),來微調Decoder 的所學,而進行生成作品。亦即,AI 不是傳統IT 系統依循人們所寫的程序邏輯去創作,而是依其自己所學習的規律去進行生成。例如,AI 重復觀察Picasso 數百張畫作之后,學會了Picasso 的顏色風格( 規律),AI 就會依循其所學的規律來渲染張大千的畫作。

再舉例說明之,例如有一位媽媽經過許多年學會做早餐便當。今天一早,她的小孩告訴她說:今天便當加個苛包蛋。她就依其小孩指引開始準備便當。她在準備便當的過程中,又聽到其小孩說:蛋不要太咸。于是她就微調,而做出了一個:不咸荷包蛋的早餐便當。

小孩在兩個時間點提供指引:1 個是創作前,1 個是創作中。媽媽也可要求小孩提供更多指引,例如媽媽說:請您給我看看其他同學的便當內容照片。于是她就依循其他同學便當特色來微調腦海中便當的景像,而做出1 個更符合小孩口味的便當。這里也要很留意:她就依循其他同學〈便當特色〉來微調腦海中便當的景像。只是提取特色而已,而不解析其細節。

3 Decoder內部的NN模型

剛才的范例說明了:人們輸入值〔0, 1〕等只是用來引導Decoder 去微調其所學的知識,來繪出作品?,F在繼續來看看Decoder 的內部結構。無論是Encoder 或Decoder,其內部都是一個簡單的計算公式: Y = X *W + B。茲以圖表示之( 圖7)。

看看Decoder 內部的神經網絡(NN:Neural Netwoks)架構( 圖8)。

這結構里含有w[ ] 數組,和b[ ] 向量,也就是AI模型的參數。以圖9 表示之。

其中的計算關系是:

● 當我們輸入X=[1,0],經由Y = X*W+B 的計算,就輸出Y=[255, 0,0];

● 當我們輸入X=[1,1],經由Y = X*W+B 的計算,就輸出Y=[0, 0, 255];

● 當我們輸入X=[0,1],經由Y = X*W+B 的計算,就輸出Y=[0, 255, 0]。

請您試想,上圖里的w[ ] 和b[ ] 為何,才能同時滿足上述的3 項計算呢? 其答案并不是唯一的。亦即,可能有好幾組 W&B 可以滿足上述的要求。例如,可以透過機器學習,來找到一組< 同時> 滿足上述3 項的計算( 圖10)。

當我們輸入X=[1,0],經由Y = X*W+B 的計算,就輸出Y=[255, 0,0]。

其計算過程為:

● y0 = x0 * w00 + x1 * w10 + b0 = 1*0 + 0*-255 +255 = 255;

● y1 = x0 * w01 + x1 * w11 + b1 = 1*-255 + 0*0 +255 = 0;

● y2 = x0 * w02 + x1 * w12 + b2 = 1*255 + 0*255 -255 = 0 。

于是就輸出了:[255, 0, 0]。同理, 當我們輸入X=[1,1],經由Y = X*W+B 的計算,就輸出Y=[0, 0,255]。而且,當我們輸入X=[1,1],經由Y = X*W+B 的計算,就輸出Y=[0, 0, 255]。以圖11 表示之。

于是,這是完美的一組W&B,能同時滿足上述的3 項對應規律。所謂< 機器學習>,或< 訓練模型> 就是AI 在找尋一組完美的W&B。

4 結束語

為了簡單易懂起見,上述的Decoder 都是單層NN架構而已。然而一般的Decoder 都是深度NN 架構( 即含有多個隱藏層)。還有,像Stable Diffusion 在Encoder與Decoder 之間,又添加了更多隱藏層的計算,強化隱空間的創新組合能力,來生成更豐富的內容。

猜你喜歡
微調解碼器編碼器
科學解碼器(一)
科學解碼器(二)
科學解碼器(三)
線圣AudioQuest 發布第三代Dragonfly Cobalt藍蜻蜓解碼器
基于FPGA的同步機軸角編碼器
一種新型微調擠塑模具的設計及應用
靈活易用,結合自動和手動微調達到好效果 StormAudio ISP 3D.16 ELITE/PA 16 ELITE
基于PRBS檢測的8B/IOB編碼器設計
JESD204B接口協議中的8B10B編碼器設計
多總線式光電編碼器的設計與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合