1. 程式人生 > >教你怎麽用“Excel”搞定一個生成網絡

教你怎麽用“Excel”搞定一個生成網絡

bsp 作者 相關性 簡單的 減法 基本 有助於 -i 分享圖片

編程不是人人都會,但Excel電子表格就是當代白領的必備技能啊!如果用Excel實現圖像生成,那豈不是。。。

最近還真有人發明了一種SpaceSheet工具,它就是簡單的電子表格界面,即使你完全不會編寫代碼,也能借助它理解生成對抗網絡(GAN)是如何制造圖像的。

技術分享圖片

作者把它設計成了一個網頁Demo,供用戶直接訪問:

https://vusd.github.io/spacesheet/

到底怎麽玩?

SpaceSheet應用程序由兩部分組成:

左側是數據選擇器,右側是電子表格界面。

以生成面部圖像為例。在右側的表格個中選中某個位置,再點擊點擊左側的元素來選擇人臉。

技術分享圖片

通過電子表格頂的按鈕,可以對填入的人臉進行以下一系列操作。

面部特征的連續變化

通過線性插值(Linear interpolation,LERP),可以按一個值到另一個值的的“距離”,等間距地插入一些圖片。

頂部操作欄中的LERP按鈕使可以在電子表格中的選定單元格之間進行線性插值。

通過線性插值的方法,產生兩張人臉之間的平滑過渡圖像,可以幫助我們理解面部特征的連續過程:

技術分享圖片

它不僅支持一維插值,還只支持二維插值。指定四個頂點,可以形成一個插值的“矩陣”,展示4張面部圖片之間的連續變化:

技術分享圖片

另外,除了在兩個面部圖像的“中點”插值,還能通過滑動條(SLIDER)調節偏移的量。

技術分享圖片

如果說前面的線性插值是離散的,那麽滑動條就給我們提供了一種連續變化的圖像。它與兩張已知圖像之間“差異”是人為可控的。

提取“金發”屬性

這套應用程序還可以分離出人臉中的“屬性向量”(Attribute Vectors),

何謂屬性向量?以人的面部特征為例。

首先,選擇一個黑發的人臉,再選擇一個金發的人臉。對二者求差(MINUS),這個差值就是“金發”特征,於是我們獲得了一個金發的屬性向量。

技術分享圖片

獲得了這個屬性向量後,我們就可以通過求和操作(SUM)給任何人加上金發了:

技術分享圖片

同樣的,我們也可以給人減去(MINUS)屬性向量,獲得一個黑發的面部圖像:

技術分享圖片

其他基本操作

除了以上幾項操作外,我們還能對面部圖像求“距離”、求“乘積”等。

面部圖像明明是一張圖片,為何能做加減法、求距離呢?

這就不得不提潛在空間,每張面部圖像都是在這個空間中的一個個向量,我們當然可以對這些向量做四則運算。運算的結果是這個空間中的另一個向量,我們可以把它解碼成一張圖片。

技術分享圖片

用表格理解網絡模型空間

潛在變量

面部圖像組成的潛在空間是由生成神經網絡生成的。

生成神經網絡是一類機器學習算法,從一組訓練數據中學習,並構建廣義模型。 然後我們可以對這些模型進行采樣,以生成新數據樣本,其結果則是基於我們的訓練數據。

這是通過在比原始數據本身參數更少的參數集上訓練神經網絡來實現的。 這樣做,模型學習到了更緊湊的訓練數據表征。這些表征被稱為潛在變量。

從潛在空間采樣的潛在變量可以被解碼成可觀察的數據樣本。

舉個例子,如果我們要設計一個紅酒杯,由兩個維度可以進行放大操作,讓它變得更寬,或者更高。變大就可以理解為一個潛在變量。

技術分享圖片

我們可以在這個空間中探索,但是遇到更復雜的圖像,比如人臉怎麽辦呢?SpaceSheet能直觀地幫助我們理解變量在潛在空間中的連續變化。

技術分享圖片

屬性向量

通過減法,可以從潛在變量中分離出特定屬性。 通過減法求得的差被稱為屬性向量,並且可以應用於其他潛在變量,轉移它的屬性。

例如,通過計算笑臉圖像的平均矢量並減去沒有笑容的臉部圖像的平均矢量,在臉部的潛在空間中構建“微笑矢量”。

然後可以將該向量添加到潛在變量中或從潛在變量中減去該向量以使它們或多或少地“笑臉”。

技術分享圖片

盡管提取屬性向量被證明是有效的,但是它還會受到其他“相關屬性”的影響,說明屬性之間存在著強相關性。

例如,從上圖中我們可以發現,“微笑矢量”的應用導致為人臉添加更多女性屬性(女性更愛微笑?)。

SpaceSheet就是讓用戶在這個空間中執行計算,在電子表格裏實時顯示,使用戶能夠立即觀察到操作結果並采取相應措施。

利用這套功能強大的電子表格界面,能夠幫助設計者在潛在空間內進行設計實驗。即使非專業人士也能簡單上手。

對於面部圖像這樣更復雜的空間,SpaceSheet還有一些“高級玩法”更有助於我們理解生成網絡的工作過程。

推理

在線性插值是在兩個變量之間插入一個變量。如果在兩個變量之外,按照線性的方式外推,我們就能夠推理出面部圖片演化的方向。

技術分享圖片

以上表格圖像中,左上、右上、左下三張人臉圖像都是從左側數據庫中選取,在選中它們後選擇“LERP”,就可以得出右下角人臉圖像。這張圖是根據前3張圖推理得出的。

創建可調節人臉

用戶還能根據已有圖像,創建一個可調節圖像,它與已知圖像的“差異”是認為可控的。

技術分享圖片

如上圖,MOD單元格中有一個“控制桿”,使用戶能夠圍繞給定的潛在變量進行調整,以獲得類似的潛在變量。

二者的差異程度可以通過控制桿與單元格中心的角度和距離來控制,想怎麽變就怎麽變。

教你怎麽用“Excel”搞定一個生成網絡