马赛克,克星,真来了!
馬賽克的克星,真的來(lái)了!
今天跟大家聊聊 MAE,何愷明大神的新作。
我們先說(shuō)下 MAE 的任務(wù):
簡(jiǎn)單講:將圖片隨機(jī)遮擋,然后復(fù)原。
并且遮擋的比例,非常大!超過(guò)整張圖的 80% ,我們直接看效果:
第一列是遮擋圖,第二列是修復(fù)結(jié)果,第三列是原圖。
圖片太多,可能看不清,我們單看一個(gè):
看這個(gè)遮擋的程度,表針、表盤(pán)幾乎都看不見(jiàn)了。但是 MAE 依然能夠修復(fù)出來(lái):
這個(gè)效果真的很驚艷!
甚至對(duì)于遮擋 95% 面積的圖片依然 work。
看左圖,你能看出來(lái)被遮擋的是蘑菇嗎??
MAE 卻能輕松修復(fù)出來(lái)。
MAE
MAE 的意義不僅在這個(gè)修復(fù)遮擋,去掉 mask 本身。更在于為 CV 領(lǐng)域大一統(tǒng)的預(yù)訓(xùn)練模型提供了無(wú)限的想象。
做過(guò) NLP 的小伙伴應(yīng)該知道,在 NLP 任務(wù)中,Bert 已經(jīng)一統(tǒng)江湖。各子任務(wù)(如翻譯、生成、文本理解等)均可使用相同的無(wú)監(jiān)督預(yù)訓(xùn)練模型。這保證了每個(gè)任務(wù)都能有非常不錯(cuò)的效果。
但在 CV 任務(wù)中,卻各玩各的,分類任務(wù)有自己的無(wú)監(jiān)督學(xué)習(xí),檢測(cè)任務(wù)有自己的無(wú)監(jiān)督學(xué)習(xí),每個(gè) CV 領(lǐng)域的子任務(wù),都有自己一套無(wú)監(jiān)督學(xué)習(xí),一直無(wú)法統(tǒng)一。
而 MAE 一出,可以想象大一統(tǒng)的 CV 無(wú)監(jiān)督預(yù)訓(xùn)練模型的時(shí)代已不遠(yuǎn)矣。
可能這段話,一些剛?cè)腴T(mén)的小伙伴看不太懂。
沒(méi)關(guān)系,慢慢學(xué)。學(xué)了 Bert,你就明白這意味著什么了。MAE 就是類似 Bert 存在的東西,可以認(rèn)為它就是 Bert 的一個(gè) CV 版。
接下來(lái)簡(jiǎn)單講解下 MAE。
Vit
講解 MAE 之前不得不先說(shuō)下 Vit。
紅遍大江南北的 Vision Transformer,ViT。
領(lǐng)域內(nèi)的小伙伴,或多或少都應(yīng)該聽(tīng)說(shuō)過(guò)。
它將 Transformer 應(yīng)用到了 CV 上面,將整個(gè)圖分為 16 * 16 的小方塊,每個(gè)方塊做成一個(gè)詞,然后放進(jìn) Transformer 進(jìn)行訓(xùn)練。
從 ViT 開(kāi)始,CV 小伙伴們終于可以更優(yōu)雅地使用 Transformer了。
MAE
MAE 結(jié)構(gòu)設(shè)計(jì)得非常簡(jiǎn)單:
將一張圖隨機(jī)打 Mask,未 Mask 部分輸入給 Encoder 進(jìn)行編碼學(xué)習(xí),這個(gè) Encoder 就是 Vit,然后得到每個(gè)塊的特征。
再將未 Mask 部分以及 Mask 部分全部輸入給 Decoder 進(jìn)行解碼學(xué)習(xí),最終目標(biāo)是修復(fù)圖片。
而 Decoder 就是一個(gè)輕量化的 Transformer。它的損失函數(shù)就是普通的 MSE。
所以說(shuō), MAE 的 Encoder 和 Decoder 結(jié)構(gòu)不同,是非對(duì)稱式的。Encoder 將輸入編碼為 latent representation,而 Decoder 將從 latent representation 重建原始信號(hào)。
更詳細(xì)的細(xì)節(jié)大家可以直接看看論文:
https://arxiv.org/abs/2111.06377
算法測(cè)試
官方剛剛開(kāi)源6天,就已經(jīng)獲得了1.5k+的 Star,關(guān)注度可見(jiàn)一斑。
項(xiàng)目地址:
https://github.com/facebookresearch/mae
項(xiàng)目提供了 Colab,如果你能登錄,那么可以直接體驗(yàn):
https://colab.research.google.com/github/facebookresearch/mae/blob/main/demo/mae_visualize.ipynb
如果不能登錄,可以直接本地部署,作者提供了預(yù)訓(xùn)練模型。
一起看下我跑的效果:
這個(gè)修復(fù)效果,你打幾分?
最后
MAE 可以用來(lái)生成不存在的內(nèi)容,就像 GAN 一樣。
很多小伙伴可能又有了一些“大膽”的想法,不過(guò)玩笑歸玩笑,自己玩玩就好,大家還是要遵紀(jì)守法哦~
各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦!(歡迎提建議)推薦閱讀牛逼!Python常用數(shù)據(jù)類型的基本操作(長(zhǎng)文系列第①篇) 牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長(zhǎng)文系列第②篇)牛逼!Python函數(shù)和文件操作(長(zhǎng)文系列第③篇)牛逼!Python錯(cuò)誤、異常和模塊(長(zhǎng)文系列第④篇) 與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的马赛克,克星,真来了!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 抽丝剥茧,深入剖析 Python 如何实
- 下一篇: 最完整的时间序列分析和预测(含实例及代码