back to index
GAN Lecture 10 (2018): Evaluation & Concluding Remarks

link |
下週會請中研院的曹育博士講一下GAN在語音上的應用。除了GAN在語音上的應用以外,這個影片就是GAN的最後要跟大家講的東西,就是怎麼做evaluation。
link |
講完這個部分,其實GAN的地方就講完了,我們今天就提早下課。那這個evaluation是要做什麼呢?我們要講的是說,怎麼evaluate你用GAN產生出來的object的好壞。
link |
比如說今天在作業一二三裡面,你用GAN產生的image,那怎麼知道你的image是好還是不好?其實我覺得最準的方法就是人來看。
link |
但是在人來看,其實往往當然不一定是很客觀。如果你今天在看那個文獻上的話,很多papers它就只是秀幾張它產生的圖,然後加一個comment說,你看看我今天產生的圖,我覺得這應該是我在文獻上看過最清楚的圖了,然後就結束了。你也不知道說是真的還是假的。
link |
所以今天要探討的就是說,有沒有哪一些比較客觀的方法來衡量說你產生出來的object到底是好還是不好。那在傳統上,怎麼衡量一個generator呢?
link |
傳統的衡量generator的方法是算generator產生data的likelihood,也就是說你已經認了一個generator以後,接下來給這些generator一些real的data。
link |
假設你今天做的是image的生成,你已經有一個image的生成的generator,你接下來拿一堆image出來,這些image當然是在training的時候,在看generator的時候,generator沒有看過的image。
link |
然後你去計算這個generator產生這些image的機率,這個東西叫做likelihood。
link |
這邊有一大堆的image Xi,然後你算Pg這個generator產生Xi這張image的機率,你算出Pg of Xi,你可能會取log,然後把所有的這些real的data,這些其實是你的testing data的image的likelihood統統算出來都平均,你就得到一個likelihood。
link |
這個likelihood就代表了generator的好壞,因為假設這個generator它有很高的機率產生這些real的data,那就代表說這個generator可能是一個比較好的generator。
link |
但是你今天如果是Pan的話,假設這個generator是一個network用Pan秤出來的話,你會遇到一個問題就是你沒有辦法計算Pg of Xi,為什麼?
link |
因為你想想看,你秤完一個generator以後,它是一個network,這個network你可以丟一些vector進去讓它產生一些data,但是你無法算出它產生某一筆特定data的機率,對不對?
link |
它可以產生東西,但你說指定你要產生這張圖片的時候,它根本不可能產生你指定出來的圖片,所以根本算不出它產生某一張指定圖片的機率是多少。
link |
所以今天如果是一個以network所構成的generator,你要算它的likelihood是有困難的。
link |
假設你這個generator不是network所構成的,舉例來說這個generator就是一個Gaussian distribution,我想大家應該都知道吧,或者這個generator是一個Gaussian mixture model,大家應該知道吧。
link |
那如果是一個Gaussian mixture model,給它一個x,Gaussian mixture model可以推出它產生這個x的機率,但是那是因為那是Gaussian mixture model,它是一個比較簡單的model。
link |
如果你今天generator不是一個簡單的model,是一個複雜的network,你求不出它產生某一筆data的機率,但是我們今天又不希望我們的generator就只是Gaussian mixture model,我們希望我們的generator是一個比較複雜的模型。
link |
所以我們今天遇到的困難就是,如果是一個複雜的模型,我們就不知道怎麼去計算likelihood,不知道怎麼計算這個複雜的模型產生某一筆data的機率。
link |
那怎麼辦呢?在文獻上的一個fucked solution叫做kernel density estimation,也就是說,把你的generator拿出來,讓你的generator產生很多很多的data,接下來再用一個Gaussian distribution去逼近你產生的data。
link |
什麼意思?假設你今天有一個generator,你讓它產生一大堆的vector出來,假設你是做image generation的話,產生出來的image就是high dimensional的vector嘛,對不對?
link |
你用你的generator產生出一堆vector出來,接下來你把這些vector當作Gaussian mixture model的mean,然後每一個mean它有一個固定的variance,然後你再把這些mixture,這些Gaussian統統都疊在一起,你就得到了一個Gaussian mixture model。
link |
有了這個Gaussian mixture model以後,你就可以去計算說這個Gaussian mixture model產生那些real data的機率,你就可以估測出這個generator它產生出那些real data的likelihood是多少。
link |
但是你現在的問題就是,講到這邊大家有問題嗎?大家OK嗎?你說你說,要幾個Gaussian對不對?你的問題就是說,我們現在想要做的事情是,我們先讓那個generator先生一大堆的data,然後再用Gaussian去fit那個generator的output,那到底要幾個Gaussian呢?32個嗎?64個嗎?還是一個點一個呢?
link |
問題就是你不知道,所以這就是一個難題。而且另外一個難題就是,你不知道generator應該要sample多少個點,才估得準它的distribution,要sample六百個點嗎?還是六萬個點嗎?你不知道。
link |
所以這招在實作上也是有問題的。在文獻上你會看到說,有人做這招,結果就會出現一些怪怪的結果。比如怪怪的結果就是,舉例來說,你可能會發現說你的model算出來的likelihood比real data還要大什麼之類的,你會算出很多奇奇怪怪的結果就對了。
link |
總之這個方法也是怪怪的,因為裡面問題太多了,你不知道要sample幾個點,然後你不知道要怎麼估測一個Gaussian的mixture,有太多的問題在裡面了。
link |
而且接下來還有一個更糟的問題,我們就算退一步講說,你真的想出了一個方法可以計算likelihood,likelihood本身也未必代表了你的generator的quality。為什麼這麼說?因為有可能低的likelihood卻有高的quality。
link |
舉例來說,你今天有一個generator,它很厲害,它產生出來的圖都非常的清晰。所謂likelihood的意思是說,計算這個generator產生某張圖片的機率。
link |
也許這個generator雖然它產生的圖很清晰,但產生出來的都是良工村的頭像而已。如果今天是其他人物的頭像,它從來不會生成,但是你的testing data就是其他人物的頭像。
link |
所以如果你算likelihood的話,likelihood很小,因為它從來不會產生這些圖,所以likelihood很小。但是你又不能說它做得不好,它其實做得很好,它產生的圖是high quality的,只是算出來likelihood很小而已。
link |
所以likelihood並不代表quality,它們兩者是不等價的。反過來說,高的likelihood也並不代表說你產生的圖就一定很好,因為一個model的likelihood很高,它仍然有可能產生的圖很糟,怎麼說呢?
link |
這邊舉一個例子,裡面有一個generator 1,generator 1很厲害,它的likelihood很大。假設我們今天不知道怎麼回事,3號想了一個方法可以估測likelihood,
link |
像我們之前的前期的短片已經告訴你說,估測likelihood也是很麻煩,不知道怎麼做,但現在先說3號想了一個方法可以估測likelihood。
link |
現在有一個很強的generator,它的likelihood是大L,它產生這些圖片的機率很高。現在有另外一個generator,generator 2有99%的機率產生random noise,它有1%的機率它做的事情跟generator 1一樣。
link |
如果我們今天計算generator 2的likelihood,generator 2產生每一張圖片的機率是generator 1的1%。假設generator 1產生某張圖片xi的機率是pg of xi,
link |
generator 2產生那張圖片的機率就是pg of xi乘以100,因為generator 2有兩個model,它有99%的機率會整個壞掉,但它有1%的機率會跟generator 1一樣。
link |
所以generator 1產生某張圖片的機率如果是pg,generator 2產生某張圖片的機率就是pg除以100。
link |
現在問題來了,假設我們把這個likelihood每一項都除以100,你會發現你算出來的值也差不了多少,因為今天除以100這項你把它提出來就是-log100,-log100才-4.6而已。
link |
所以那個likelihood,你如果看那個文獻,它們likelihood算出來都是幾百的,差了4,你可能會覺得說沒什麼差別。
link |
但是如果你看實際上的generator 2跟generator 1比的話,generator 1你會覺得它應該是比generator 2好一百倍的,只是你看不出來而已,從數字上看不出來。
link |
所以likelihood跟產生這個generator真正的能力,其實也未必是有關係的。
link |
那今天這個文獻上,你常常看到的一種evaluation的方法,常常看到的一種客觀的evaluation的方法,是拿一個已經算好的classifier來評價你現在產生出來的object的好壞。
link |
假設你今天要產生出來的object是那個影像的話,那你就拿一個影像的classifier來判斷這個object的好壞。
link |
就好像說我們今天在作業裡面,我們是拿一個人臉辨識的系統來看說你產生的圖片,這個人臉辨識系統能不能夠辨識出來,如果可以就代表說你產生出來的是還可以的,如果不行就代表你產生出來的真的很弱。
link |
那今天的這個道理其實是一樣的,假設你要分辨今天機器產生出來的一張影像好還是不好,那你就拿一個image的classifier出來。
link |
那這個image classifier通常是已經事先train好的,舉例來說它是一個VGG,它是一個Inception Map。今天你把這個image的classifier丟一張你的機器產生出來的image給它,那它會產生一個class的distribution,對不對?
link |
它是一個已經train好的image的classifier,給它一張圖,它會產生一個class的distribution,它會給每一個class一個機率。
link |
如果今天產生出來的機率越集中,代表說你產生出來的圖片的品質越高,因為今天這個classifier它可以輕易地判斷說現在這張圖片它是什麼樣的東西,它是個狗還是貓還是人,它可以輕易地判斷出這張圖片是什麼樣的東西。
link |
所以它給某一個看起來機率特別高,那代表你產生出來的圖片是這個model看得懂的。
link |
那這個只是一個衡量的方向而已,你同時還要衡量另外一件事情,因為我們今天知道說要track gain的時候,你會遇到一個問題就是mode collapse的問題。
link |
你的機器可能可以產生某張很清晰的圖,但它就只能夠產生那一張圖而已,這個不是我們要的。
link |
所以今天在evaluate你的gain的時候,你還要從另外一個方向,你要從diverse的方向去衡量它。什麼叫做從diverse的方向去衡量它呢?
link |
你讓你的機器產生一把圖,這邊舉例的時候就產生三張,你把這三張圖通通丟到CNN裡面,讓它產生三個distribution。
link |
接下來,你把這三個distribution平均起來。
link |
如果今天這個平均後的distribution平均完以後,它仍然很平均的話,那就意味著說每一種不同的class都有被產生到,代表說你產生出來的output是比較diverse。
link |
如果平均完以後你發現說某一個class的分數特別高,就代表說它的output,你的model傾向於產生某個class的東西,就代表它產生出來的output不夠diverse。
link |
所以今天我們可以從兩個不同的面向,用某一個image,確保事先調整image classifier來衡量你的image。
link |
你可以只給它一張圖,然後看說產生出來的圖清不清楚。接下來給它一把圖,看看是不是各種不同的class都有產生到。
link |
好,那有了這些原則以後,你就可以訂出一個score,那現在一個常用的score叫做inception score。
link |
那至於為什麼叫inception score呢?當然是因為它用inception net去evaluate,所以叫做inception score。
link |
那我們之前有講說,我們今天怎樣的generator叫做好,好的generator它產生的單一的圖片,丟到inception net裡面,某一個class的分數越大越好,它是非常的sharp的。
link |
把所有的output都丟到classifier裡面,產生一堆distribution,把所有distribution都平均,它會是越平滑越好。
link |
那根據這兩者,你就訂一個inception score,把這兩件事考慮進去。
link |
在inception score裡面,第一下要考慮的是說,submission over所有你產生出來的x,每一個x丟到你的classifier裡面去算它的distribution,然後你就計算negative entropy。
link |
negative entropy就是拿來衡量說這個distribution它夠不夠sharp,但如果越sharp的話,每一張image,它output的distribution越sharp的話,就代表產生的圖越好。
link |
那同時你要衡量另外一項,另外一項就是把所有的distribution平均起來,如果這個平均的結果,它的entropy越大也代表越好,所以就同時衡量這兩項,把這兩項加起來就是inception score。
link |
那其實還有其他衡量的方法,但就是一個客觀的方法,就是拿一個虔誠的model來衡量你的結果,這邊就是介紹inception score給大家參考。
link |
還有另外一個在train game的時候你要注意的問題,有時候就算你train出來的結果非常的清晰,也並不代表你的結果是好的,為什麼?
link |
因為有可能你的generator只是印記了training data裡面的某幾張image而已,這不是我們要的,因為假設generator要印記image的話,那直接從database裡面sample一張圖不是更好嗎?
link |
幹嘛還要train一個generator,所以我們希望generator它是有創造力的,它產生出來的東西不要是database裡面本來就已經現存的東西。
link |
但是怎麼知道現在你的game產生出來的東西是不是database已經現存的東西呢?這是另外一個issue,因為你沒有辦法把你的database每張圖片都一個一個去看過,
link |
因為database裡面圖片有上萬張你根本沒辦法一張一張看過,所以根本不知道你generator產生出來的東西是不是database裡面有的。
link |
所以說我可以用自動的方法去,就game產生一張圖片的時候,就把這張圖片拿去跟database裡面每張圖片都算,比如說L1或L2的相似度,但光算L1或L2的相似度是不夠的。
link |
為什麼?以下是文件上舉的一個例子,這個例子是想要告訴大家說,今天光算相似度,尤其是只算這種pixel level的相似度,是非常不夠的。
link |
為什麼這麼說?今天這個例子是這樣,假設你有一隻羊的圖,今天這個羊的圖跟誰最像?
link |
它當然是跟自己最像,跟database裡面一模一樣的那張圖最像。
link |
好,那現在呢,今天這個圖上面有很多很多的線,這些線代表什麼?每一個就把0這邊看0這邊,每一個點就代表database裡面某一張圖片跟現在的羊這張圖片的相似的程度。
link |
那黑色這條線代表的是羊這張圖片,羊這張圖片跟自己的距離當然是0,跟其他圖片的距離是比較大的,那這邊每一條橫線就代表一張圖片。
link |
好,那現在把羊那張圖的pixel往左邊移一格,那還是跟自己最像,你會發現說把羊這張圖片的pixel都往左邊移一格,還是跟自己最像。
link |
但是如果往左邊移兩格,你會發現說最像的圖片就變成紅色這一張,移三格就變成綠色這一張,移四格就變成這個看起來也不知道什麼,是魚嗎?還是海豚?看不出來是什麼,反正就是這個羊跟這個圖變得最像。
link |
所以今天假設你的generator學到怪怪的東西,就是把所有的pixel都往左移兩格,這個時候就算它cover your database,你也看不出來,因為你的檢測的方法檢測不出這個case。
link |
和這邊也是一樣,就是把卡車的圖片往左移一個pixel跟自己最像,往左移兩個pixel跟他最像,移三個pixel就變成跟飛機最像,移四個pixel就變成跟船最像。
link |
所以你很難算兩張圖片的相似度,所以今天GAME產生一個圖片的時候,你很難知道說它是不是就是copy的database裡面的specific的某一張圖片,這個也都是上代解決的問題就是了。
link |
所以有時候你GAME產生出來的結果很好,你也不用太得意,因為它搞不好就是copy某一張圖片而已。
link |
這邊是另外一個issue,我們說在測GAME的時候,會有一個問題叫做mode的dropping,就是說GAME產生出來的,假設是人臉的話,它產生出來的人臉的多樣性不夠,那怎麼檢測你產生出來的東西它的多樣性夠不夠呢?
link |
舉例來說,假設你train了一個DC GAME,那我發現我上一課還沒講過DC GAME,DC GAME是什麼?DC GAME是Bit Convolutional GAME的縮寫,其實就是它的training的方法跟Ian Goodfellow一開始提出來的方法是一樣的,只是在DC GAME那篇paper裡面,那個作者報收了各種不同的參數,
link |
然後告訴你說怎麼樣train GAME的時候結果會比較好,比如說不同的network架構,不同的exclamation function,還有有沒有加batch什麼之類的,各種方法都報收一遍,然後告訴你說怎麼樣做事比較好。總之DC GAME就是某一種GAME,Bit Convolutional GAME。
link |
那怎麼知道DC GAME在這個GAME,它train一個人臉,產生人臉的DC GAME的時候,它產生出來的人臉的多樣性是夠的呢?一個檢測的方法是,你從DC GAME裡面sample一堆image,讓DC GAME產生一堆image,然後去確認說產生出來的image裡面有沒有非常像的,有沒有人會覺得是同一個人的,那怎麼知道說是不是同一個人呢?
link |
這個結果是來自於IKEA 2018的一篇paper,它叫《Do GAMES Learn the Distribution》。它裡面的做法是說,我們今天讓機器產生一堆的圖片,然後接下來我們先用一個classify去決定說,有沒有兩張圖片看起來真的很像,
link |
然後再把長得很像的圖片拿給人看,問人說你覺得這兩個是不是同一個人,如果是,那就代表說今天DC GAME產生了重複的圖片。雖然說你今天產生的圖片每一張都略有不同,但人可以看出說,這個看起來算不算是同一個人。
link |
然後這邊是列出一些,就是找出來被人判斷是感覺是同一個人的圖片,就是說DC GAME會產生那種很像的圖片。那今天這邊還找右邊這個虛線裡面是說,把這個圖片拿去database裡面找一張最像的圖,
link |
你會發現說其實這個最像的圖跟這個圖其實沒有完全一樣,代表說DC GAME其實並沒有真的硬背了training data裡面的圖,但是不知道為什麼它會產生很像的圖就是了。它會產生很像的圖,但這個圖並不是從database裡面背出來的。
link |
而且你的做法就是,它要衡量說,那DC GAME到底可以產生多少不一樣的圖片呢?它發現說,今天如果sample四百張圖片的時候,有大於50%的機率,你可以從四百張圖片裡面找到兩張人覺得是一樣的人臉。
link |
那藉由這個機率,你就可以反推,到底整個database裡面,整個DC GAME可以產生的人臉裡面,有多少不同的人臉。詳細反推的細節,你再check一下paper。
link |
今天這個推法,其實你回去自己想一下,誰都想得出來,這個國中數學而已。你有一個database,它裡面有N張image,這個N到底應該多大,才會讓你sample四百張image的時候,有大於50%的機率sample到重複的。
link |
這個問題就是這樣,然後就反推,到底這個database有幾張image。它反推出來說,DC GAME它可以產生的各種不同image,其實只有0.16個million而已,只有十六萬張圖而已,那覺得說其實太少了。
link |
好,那接下來有另外一個做法叫做ALI,它就算說,嗯,ALI比較強,反推出來有可以產生一百萬張各種不同的人臉就是了。所以ALI看起來可以產生的人臉的多樣性是比較多的。
link |
但是無論是哪些方法都覺得說,它們產生的人臉的多樣性跟真實的人臉比起來還是有一定程度的差距的,感覺GAME沒有辦法真的產生人臉的distribution。
link |
好,那我們知道GAME的一個issue就是它產生出來的distribution不夠大,它產生distribution太narrow,那有一些solution,比如說有一個方法現在比較少人用,因為它implement起來很複雜,預算量很大,叫做RAW GAME。
link |
那我沒有打算講它,為什麼要放在這邊呢?等一下你就知道。然後有另外一個方法叫做mini-batch的discrimination,它的方法是這個樣子的,我們也就簡單講一下就好了。
link |
一般我們在train discriminator的時候,discriminator只看一張image,決定它是好的還是不好的。那mini-batch discriminator是說,讓discriminator看一把image,決定它是好的還是不好的。看一把image跟看一張image有什麼不同呢?
link |
今天看一把image的時候,你不只要check每一張image是不是好的,你還要check說這些image它們看起來像不像。
link |
那今天discriminator會從training data裡面,從data bank裡面sample一把image出來,會讓generatorsample一把image出來。
link |
如果今天generator每次sample的都是一樣的image,發生multicollider的情形,discriminator就會抓到這件事。
link |
因為在training data裡面每張圖都差很多,如果generator產生出來的圖都很像,那discriminator因為它不是只看一張圖,它是看一把圖,它就會抓到說這把圖看起來不像是realistic的。
link |
這個大家可以了解嗎?就改了一下discriminator,讓它看一把圖。
link |
那其實還有另外一個也是看一把圖的方法,叫做optical transport game,它的圖是彩色的話就不錯,就把它放在這裡。
link |
好,那其實game的東西我們就講到這裡啦,那在下課之前我們就是為game的部分下一個結論,我們說這個是game的from A to Z。
link |
from A to Z是什麼意思?你google一下這個英文片語,A to Z的意思就是從頭到尾的意思,但是我們這邊的A to Z就是字面上的意思,就是A to Z這樣子。
link |
你知道世界上有各式各樣的game,當你發明一種新的game的時候,你就可以在前面加一個英文的字母,所以你其實可以跟朋友玩一個遊戲,就是誰可以說出最多的game這樣子。
link |
我今天早上才查了一下game的字母,有一個game的字母,我發現現在其實已經有超過,就在課堂開始的時候我們說有三百種不同的game,那我剛才查了一下已經有三百六十種不同的game了,那數目是不斷的在增加了。
link |
所以我們今天就來複習一下我們在這門課裡面提過的game,然後從A開始講起這樣子,如果A開頭的game有什麼呢?有什麼呢?
link |
你想得到A開頭的game嗎?這是一個你可以回去跟朋友玩的遊戲啊,雖然我覺得應該是沒有人要跟你玩這個遊戲的。
link |
A的game有什麼呢?有AC game,數目標在講三之二的時候,condition generation會講到AC game。B有什麼呢?你想得到B有什麼嗎?B game,百game是嗎?有百game,對,有百game,其實也有B game,真的有B game,而且B game還有兩個這樣子。
link |
你去查一下文獻,現在所有的名字都已經混在一起了,你去看那個game的入框,什麼S game就有四個這樣子,你搞不清楚,就說S game,你搞不清楚它到底是什麼東西了,所以現在非常的混亂。
link |
D有什麼呢?C有psycho game,對不對?還有別的嗎?conditional game這樣子,我忘了放conditional game,那D有什麼呢?對,DC game,那其實還有dual game,我說dual game跟psycho game其實就是一模一樣的東西。
link |
還有dragon,它叫dragon,其實你看一下它的名字我覺得還頗牽強,根本是想要先湊梗才想方法。它的title是how to train your dragon,而且它後來真的投到ICOR的時候,它把它的title改掉了。
link |
那E有什麼呢?E有EV game,其實EV game還有一個變形,沒有講到叫做BE game,就把EV改過來,就BE game,就B game這樣子,還有什麼?還有什麼別的?F還有什麼呢?F就是F game這樣子,對啊,有F game。
link |
那G有什麼呢?而且G有game,就是G game這樣子。那H有什麼呢?H game,其實我覺得H好像應該還蠻好湊的,但不知道為什麼沒有H,就等著你propose這樣子,等著你湊梗。
link |
我覺得H應該還蠻好湊的,因為你propose什麼hierarchical game,它縮寫的就是H game了,就等著你propose而已。I有什麼呢?info game,J有什麼呢?J還真的是沒有這樣子,J還真的是沒有,K有什麼呢?K還真的是沒有這樣子。
link |
其實你查game的入友,有什麼一些比較奇怪,有一些比較特別的,所以我們今天就太specific,所以就沒有講。有什麼K game,KE game之類的,當然太specific,所以就沒有講。
link |
那L有什麼?有兩個Ls game,好,N有什麼?你想得出來嗎?有七種NN game,NN game就是我們一開始有講,在講game的第二輪的時候,我們說有一個叫做minmax game,然後其實還有另外一個N開頭的就是non-saturation game。
link |
然後Ian Goodfellow有說,當你提到說什麼,因為大家在PayPal裡面都會說original game,我們跟original game比,你都不好好講說那個original game到底指的是NN game還是Ns game,只要特別幫他們取了名字,告訴我們說以後最早的game叫做NN game,但實際上一開始NN game就Ian Goodfellow勸不起來,只要用的是Ns game。
link |
那O有什麼呢?O就是OT game,為了硬湊梗才放了OT game。好,那P有什麼呢?P有一個,不是沒講過progressive game嗎?沒講過progressive game,現在講一下progressive game是什麼,progressive game就是說,我們不是有講過state game嗎?就可以說小張的image產生大張的image。
link |
那progressive game是NVIDIA做的,它的概念完全一樣,就從小張的image一直升一直升,升到大張的,它從4乘4升到8乘8到16乘16,最後升到1024乘1024,超大張的image,然後連毛細孔都看得到的那一種,非常的realistic,產生非常驚人,產生非常大張的,Q有什麼呢?Q還真的是沒有。
link |
我覺得Q應該還蠻好湊的,你要把它用在一些reinforced learning上,就可以產生一些什麼Q learning based game,什麼之類的的learning proposal。
link |
那R有什麼呢?R有rank game,就是在講sequence generation,硬是提了一個rank game,就只是想要湊梗而已。
link |
那S有什麼呢?S有sequence game,其實還有很多,state game有star game,還有sequence game這樣子,star game就是在講style transfer的時候,有講到star game。
link |
那T有什麼呢?T有嗎?其實在講by game的時候,我順便提說,還有一個triple game這樣子,這也是為了硬湊梗而已。那U有什麼呢?Unlaw game,為了硬湊梗,所以硬放了一個unlaw game。
link |
D有什麼呢?D有VAE game這樣子,W大家都知道,我們有W game。X呢?X有出現在某個地方,真的真的真的真的,其實有一個X game這樣子。
link |
就在講style transfer的時候,兩個encoder兩個decoder那個東西,它就是X game。那Y呢?Y還真的是沒有,Z其實也沒有這樣子。我覺得Y應該還蠻容易湊梗的嘛,Y的詞彙很少,所以你很難propose一個跟Y有關的game。
link |
但是你可以從形狀來想,X game都是從形狀來想的,所以Y你一定可以從形狀來想的。這是一個encoder,然後有兩個decoder,然後就是一個one in ten什麼之類的,怎麼會沒有呢?我覺得這應該是很好湊啊。
link |
好,那其實我覺得今天要講的就是這個樣子,所以我們電就講得差不多了,那我們就下課。