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