完勝ReLU!斯坦福的神經網絡用這種激活函數,高保真還原圖像視頻

2021-01-10 量子位

蕭簫 發自 凹非寺量子位 報導 | 公眾號 QbitAI

一個來自斯坦福團隊研究的、名為SIREN的簡單神經網絡結構,剛引爆了機器學習圈。

不為別的,實在是因為它展現出來的音/視頻及圖像復原效果,太令人驚嘆了(效果展示中,Ground Truth為原始視頻、音頻或圖像數據)。

視頻中對一隻貓咪的動態進行了還原,可以看見,使用SIREN重構的貓咪明顯具有更高的清晰度。

從圖中就能看見,SIREN對音頻的還原幾乎可以用「完全一致」來形容。

對於圖像的還原,SIREN的效率有點高,視頻中可見,SIREN以極少的迭代次數將圖像高度還原了出來。

要問為什麼這個神經網絡架構能表現出這麼好的效果?

接著往下看。

以連續的方式存儲圖像數據

在採樣的過程中,我們所獲得的的數據往往是離散的,這也就意味著,在還原圖像時,需要通過插值的方式來對圖像進行表示。

不僅如此,以離散的形式存儲大量原始數據也需要佔據一定的空間。

SIREN在這個方向上進行了突破,通過採用周期性激活函數Sine代替常見的非線性激活函數(如ReLU、TanH等),以連續的方式進行數據存儲。

相比於ReLU、TanH等非周期性的激活函數來說,SIREN將正弦周期函數用作激活函數,相當於為神經網絡引入了周期性。

由於周期性的正弦激活函數處處可微,使得其能夠快速適應複雜信號,很好地對自然圖像空間進行參數化,建模更為精細。

這不僅意味著函數能以連續的方式表示圖像,而且能在不丟失任何信息的情況下,以任一種解析度表示它。

不僅圖像如此,在3D模型上也是如此。照這樣看,是不是可以3D修復建築物了?

△ 建模效果就像精裝房對比毛坯房一樣

即使原始數據顯然是離散的,通過連續的方式存儲數據也有一個好處,就是不必再擔心採樣的問題。

這對於數據壓縮和圖像修復研究的影響不可忽視。

基於梯度的監督學習

有沒有想過對神經網絡中函數的導數進行監督學習?

SIREN就這麼做了。

之所以它能這麼做,是因為其所採用的正弦激活函數,導數仍然具有周期性(餘弦函數),即SIREN的導數仍然是SIREN。

因此,SIREN的導數繼承了SIREN的特性。這使得在進行監督學習時,我們能夠使用複雜的信號來對SIREN的任何階次的導數進行監督。

下圖是SIREN對海星圖像採用梯度或Laplacians(綠色下劃線表示採用的監督方式)進行監督學習的效果。

與圖左的真值相比,這兩種方式的重構效果都不錯,其中中間的圖像是採用梯度監督、針對原圖進行的重構,而右邊的圖像則是採用Laplacians監督、針對圖像導數進行的重構。

結果證明了當使用導數監督SIREN時,其仍然有良好的表現,這項結論對於解決邊值問題(BVP)的效果非常好。

不僅如此,SIREN相較於其他結構而言,收斂速度更快,往往只需要在GPU上花費幾秒鐘,就能獲得高保真的圖像重構效果。

是突破性創新還是有所局限?

別忘了,周期性正弦激活函數是在隱式表示神經網絡的基礎上使用的。

隱式表示,與之相對的是顯性表示,後者函數的表達式只用自變量表示,前者則無法將函數與自變量很好地區分開來。

隱式表示舉例:f(x)= [f(x)]^2 + x,表達式中仍然包含f(x)

顯式表示舉例:f(x)= x + 2

相較於顯式神經表示,隱式神經表示的研究近年來逐漸興起,這種函數能表達的關係式更豐富多樣,但與此同時也存在著建模不夠精細的問題。

此次斯坦福團隊的研究可以說是在隱式神經表示領域內的一次突破,採用了周期性激活函數和適當的初始化方案,取得了不錯的效果。

研究成果剛出來時,不少網友在Twitter上對這次研究作出了評論,其中大部分表示驚嘆。

這位網友顯然對這次的研究成果非常狂熱。

震驚!必讀!沒時間解釋了,快上車!這是Vincent 無與倫比的作品!

有的網友已經開始重新考量ReLU在當今神經網絡中的地位。

這種周期性正弦激活函數會成為新的「ReLU」嗎?

也有網友表示,相較於整篇論文的研究成果,將正弦激活函數用於神經網絡這個觀點,對機器學習領域的影響顯然更大。

相較於這篇拙劣的論文所進行的研究,將正弦激活用於神經網絡的想法對機器學習的影響應該更大吧。

也有網友認為這次研究依舊具有局限性。

以正弦激活的神經網絡展現的結果令我驚訝,特別是與舊的ReLU相比,它可以非常精確地表示圖像和視頻。但是,與SOTA AFAIK相比,以這種方式表示神經PDE仍然效果不佳。

在Reddit上,一名網友在對論文進行仔細研讀後,更是毫不留情地提出了自己的質疑。

我認為論文中有許多難以解釋的漏洞,以至於極大地降低了結論的可信度……(舉出6點質疑)我的看法是,儘管這篇論文給我帶來了新奇感,但作者實際上並沒有將太多心思放在論文觀點的證明、以及判斷研究成果的實用價值上。

立刻有網友表示同意。

這些用MNIST或CelebA數據集作為測試結果的圖像重構論文都非常具有誤導性,沒有實例能證明這些神經網絡算法可以用於實際生活中的圖像處理。

由此看來,這項研究的實際應用價值,也許還需要更多的考量。

目前,已經有專業的網友對論文進行了詳細解析,在不到一個小時的時間裡,清晰易懂地介紹了論文核心內容。

論文解析時間軸如下,如果你對其中某一部分感興趣的話,可以了解一下~(視頻連結在文章末尾哦)

0:00 - 概要介紹2:15 - 隱式神經表達9:40 - 圖像示例14:30 - SIREN網絡18:05 - 初始化方案20:15 - SIREN導數23:05 - 泊松圖像重構28:20 - 泊松圖像編輯31:35 - 符號距離函數(SDF)45:55 - 研究網站48:55 - 其他應用50:45 - SIREN中的超網絡54:30 - 廣泛影響

研究團隊

△ Vincent Sitzmann

主作者Vincent Sitzmann是剛畢業於史丹福大學的博士,目前在麻省理工學院攻讀博士後,主要研究的方向包括神經場景表示、計算機視覺和深度學習。

這是一個人均博士水平的研究團隊,對於計算機視覺方向的研究非常深入。

在計算機視覺日漸發達的今天,行業希望機器達成的遠不僅是「像照相機一樣,能夠對圖像進行簡單的二維複製」,而是像人類一樣,能夠擁有視覺感知能力。

傳送門

論文連結https://arxiv.org/pdf/2006.09661.pdf

項目介紹https://vsitzmann.github.io/siren/

論文解析https://www.youtube.com/watch?v=Q5g3p9Zwjrk&feature=youtu.be

相關焦點

  • 性能優於ReLU,斯坦福用周期激活函數構建隱式神經表示,Hinton點讚
    機器之心報導參與:杜偉、小舟、魔王使用非線性周期函數構建的神經架構效果優於 ReLU?斯坦福的一項研究做出了嘗試。這個非線性激活函數效果比 ReLU 還好?近日,史丹福大學的一項研究《Implicit Neural Representations with Periodic Activation Functions》進入了我們的視野。這項研究提出利用周期性激活函數處理隱式神經表示,由此構建的正弦表示網絡(sinusoidal representation network,SIREN)非常適合表示複雜的自然信號及其導數。
  • 從ReLU到GELU,一文概覽神經網絡的激活函數
    根據每一層前面的激活、權重和偏置,我們要為下一層的每個激活計算一個值。但在將該值發送給下一層之前,我們要使用一個激活函數對這個輸出進行縮放。本文將介紹不同的激活函數。在閱讀本文之前,你可以閱讀我前一篇介紹神經網絡中前向傳播和反向傳播的文章,其中已經簡單地提及過激活函數,但還未介紹其實際所做的事情。
  • Pytorch_第九篇_神經網絡中常用的激活函數
    神經網絡中常用的激活函數Introduce理論上神經網絡能夠擬合任意線性函數,其中主要的一個因素是使用了非線性激活函數(因為如果每一層都是線性變換,那有啥用啊,始終能夠擬合的都是線性函數啊)。本文主要介紹神經網絡中各種常用的激活函數。以下均為個人學習筆記,若有錯誤望指出。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    什麼是人工神經網絡?典型的人工神經網絡(ANN)是受人腦工作啟發而設計的受生物啟發的電腦程式。 這些ANN稱為網絡,因為它們由不同的功能組成,這些功能通過使用過去稱為訓練示例的經驗來檢測數據中的關係和模式來收集知識。 數據中的學習模式通過適當的激活函數進行修改,並作為神經元的輸出呈現,如下圖所示:什麼是激活函數?在神經網絡模型中怎麼使用?
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 人工神經網絡的驅動者:激活函數是什麼?
    圖源:unsplash激活函數是人工神經網絡的驅動因素,其位於神經元之上,並管理著神經元行為,比如是否需要處理某個輸入數據,若需要,又以何種程度處理等等。從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,並輸出一個確定值,這個值繼而指導後續節點如何發動來響應特定輸入信號。本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,並簡要介紹幾種常用的激活函數。神經網絡的結構作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。
  • 神經網絡為何非激活函數不可?
    激活函數是神經網絡中一個至關重要的概念,決定了某個神經元是否被激活,判斷該神經元獲得的信息是否有用,並決定該保留還是該去掉此神經元。本文作者 Vandit Jain 對激活函數的相關知識進行了一個較為全面的總結,重點聚焦於以下幾個方面:一、激活函數是什麼?簡單地說,激活函數就是加入到人工神經網絡中的一個函數,目的在於幫助神經網絡從數據中學習複雜模式。
  • 要想了解卷積神經網絡,首先需要了解三種基本架構
    基本的比如人臉識別,人臉關鍵點,全景圖像的重建等等一般的可以用於圖像的物體識別(如人臉和汽車圖像),以及圖像的圖像變換(如人臉和人臉圖像),視頻編碼(如視頻監控和圖像目標識別)等。通過卷積神經網絡提取數據表徵特徵。要想了解卷積神經網絡,首先需要了解三種基本架構:全連接,池化和卷積。基於全連接架構的卷積神經網絡用於圖像和3d立體視覺等識別問題,可直接使用relu激活函數。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 通過函數圖像,了解26種神經網絡激活函數都長啥樣.
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。
  • 人工智慧算法:訓練神經網絡中的批量歸一化(附代碼)
    激活層:這對神經網絡內的輸入執行指定的操作。該層在網絡內引入了非線性。本文實現的模型將利用激活函數:整流線性單元(ReLU)和softmax。ReLU激活功能將神經元的任何負值鉗制為0,而正值保持不變。這種數學轉換的結果被用作當前層的激活,並用作下一層的輸入。
  • 人工智慧-深度學習-激活函數ReLU,Sigmoid,TanH,ELU,MaxOut
    激活函數:在多層神經網絡中,上層節點的輸出和下層節點的輸入之間具有一個函數關係,這個函數稱為激活函數(又稱激勵函數)激活函數的本質:激活函數是來向神經網絡中引入非線性因素的,通過激活函數,神經網絡就可以擬合各種曲線。
  • 超越ReLU卻鮮為人知3年後被挖掘:BERT、GPT-2等都在用的激活函數
    作為決定神經網絡是否傳遞信息的「開關」,激活函數對於神經網絡而言至關重要。不過今天被人們普遍採用的 ReLU 真的是最高效的方法嗎?最近在社交網絡上,人們找到了一個看來更強大的激活函數:GELU,這種方法早在 2016 年即被人提出,然而其論文迄今為止在 Google Scholar 上的被引用次數卻只有 34 次。
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    蕭簫 發自 凹非寺量子位 報導 | 公眾號 QbitAI還在為圖像加載犯愁嗎?最新的好消息是,谷歌團隊採用了一種GANs與基於神經網絡的壓縮算法相結合的圖像壓縮方式HiFiC,在碼率高度壓縮的情況下,仍能對圖像高保真還原。
  • 神經網絡中的各種損失函數介紹
    我們的目標是通過優化神經網絡的參數(權重)來最大程度地減少神經網絡的損失。通過神經網絡將目標(實際)值與預測值進行匹配,再經過損失函數就可以計算出損失。然後,我們使用梯度下降法來優化網絡權重,以使損失最小化。這就是我們訓練神經網絡的方式。均方誤差當你執行回歸任務時,可以選擇該損失函數。
  • 代碼詳解:基於Python建立任意層數的深度神經網絡 - 讀芯術
    圖1 神經網絡構造的例子(符號說明:上標[l]表示與第l層;上標(i)表示第i個例子;下標i表示矢量第i項)單層神經網絡圖2 單層神經網絡示例神經元模型是先計算一個線性函數(z=Wx+b),接著再計算一個激活函數。一般來說,神經元模型的輸出值是a=g(Wx+b),其中g是激活函數(sigmoid,tanh, ReLU, …)。
  • 人工智慧之卷積神經網絡
    神經網絡的概念和組成部分人工神經網絡(Artificial Neural Networks,簡寫為ANNs)也簡稱為神經網絡(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經網絡行為特徵,進行分布式並行信息處理的算法數學模型。這種網絡依靠系統的複雜程度,通過調整內部大量節點之間相互連接的關係,從而達到處理信息的目的。
  • 使用神經網絡為圖像生成標題
    我們都知道,神經網絡可以在執行某些任務時複製人腦的功能。神經網絡在計算機視覺和自然語言生成方面的應用已經非常引人注目。本文將介紹神經網絡的一個這樣的應用,並讓讀者了解如何使用CNNs和RNNs (LSTM)的混合網絡實際為圖像生成標題(描述)。
  • 神經網絡中的損失函數正則化和 Dropout 並手寫代碼實現
    在深度神經網絡中最常用的方法是Regularization和dropout。 在本文中,我們將一起理解這兩種方法並在python中實現它們Regularization 正則化正則化通過在損失函數的末尾添加額外的懲罰項來幫助防止模型過度擬合。
  • 如何使用Keras構建殘差神經網絡?
    什麼是殘差神經網絡?原則上,神經網絡的層數越多,應獲得越好的結果。一個更深層的網絡可以學到任何淺層的東西,甚至可能更多。如果對於給定的數據集,網絡無法通過添加更多的層來學習更多東西,那麼它就可以學習這些其他層的恆等映射(identity mappings)。這樣,它可以保留先前層中的信息,並且不會比較淺的層更糟糕。