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

2020-12-25 量子位

蕭簫 發自 凹非寺量子位 報導 | 公眾號 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,一文概覽神經網絡的激活函數
    根據每一層前面的激活、權重和偏置,我們要為下一層的每個激活計算一個值。但在將該值發送給下一層之前,我們要使用一個激活函數對這個輸出進行縮放。本文將介紹不同的激活函數。在閱讀本文之前,你可以閱讀我前一篇介紹神經網絡中前向傳播和反向傳播的文章,其中已經簡單地提及過激活函數,但還未介紹其實際所做的事情。
  • 大貝貝,激活函數 sigmoid、tanh、relu
    激活函數(activation functions)的目標是,將神經網絡非線性化。
  • TF2.0-五種優化器,激活函數(sigmoid,tanh,relu,leaky relu的優缺點),損失函數,正則化等
    】我們構建神經網絡模型的時候(此處使用TF2.0),是層和層的堆疊。,採用的激活函數relu第7行:最後的輸出層,採用的激活函數sigmoid第9~11行:compile彙編器中,optimizer優化器用的:Adam,損失函數用的二分類的交叉熵binary_crossentropy。
  • Pytorch_第九篇_神經網絡中常用的激活函數
    神經網絡中常用的激活函數Introduce理論上神經網絡能夠擬合任意線性函數,其中主要的一個因素是使用了非線性激活函數(因為如果每一層都是線性變換,那有啥用啊,始終能夠擬合的都是線性函數啊)。本文主要介紹神經網絡中各種常用的激活函數。以下均為個人學習筆記,若有錯誤望指出。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    什麼是人工神經網絡?典型的人工神經網絡(ANN)是受人腦工作啟發而設計的受生物啟發的電腦程式。 這些ANN稱為網絡,因為它們由不同的功能組成,這些功能通過使用過去稱為訓練示例的經驗來檢測數據中的關係和模式來收集知識。 數據中的學習模式通過適當的激活函數進行修改,並作為神經元的輸出呈現,如下圖所示:什麼是激活函數?在神經網絡模型中怎麼使用?
  • Relu函數的優點是啥
    問題引入常見的激活函數有sigmoid, relu,Leaky ReLU等,上次我們介紹了sigmoid
  • 神經網絡中的激活函數解析:Sigmoid, tanh, Softmax, ReLU, Leaky ReLU
    就是在神經網絡的輸出後面加的一個東西(節點)。也就是轉換函數,也可以加在兩層神經網絡之間。我們為什麼要在神經網絡中使用激活函數?用來決定神經網絡的輸出,就像是和否一樣,將結果映射到0到1或者-1到1之間(根據不同的函數)。
  • 總結|激活函數之sigmoid、ReLU、ELU 以及更新的 Leaky ReLU、SELU、GELU
    :書籍與論文激活函數是神經網絡中一個至關重要的部分。sigmoid 這樣的函數常被稱為非線性函數,因為我們不能用線性的項來描述它。很多激活函數都是非線性或者線性和非線性的組合(有可能函數的一部分是線性的,但這種情況很少見)。
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 一文看盡26種神經網絡激活函數(從ReLU到Sinc)
    ,並附上了神經網絡的相關屬性,為大家了解激活函數提供了很好的資源。在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。
  • 資源 | 從ReLU到Sinc,26種神經網絡激活函數可視化
    在本文中,作者對包括 Relu、Sigmoid 在內的 26 種激活函數做了可視化,並附上了神經網絡的相關屬性,為大家了解激活函數提供了很好的資源
  • 人工神經網絡的驅動者:激活函數是什麼?
    圖源:unsplash激活函數是人工神經網絡的驅動因素,其位於神經元之上,並管理著神經元行為,比如是否需要處理某個輸入數據,若需要,又以何種程度處理等等。從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,並輸出一個確定值,這個值繼而指導後續節點如何發動來響應特定輸入信號。本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,並簡要介紹幾種常用的激活函數。神經網絡的結構作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。
  • 神經網絡為何非激活函數不可?
    激活函數是神經網絡中一個至關重要的概念,決定了某個神經元是否被激活,判斷該神經元獲得的信息是否有用,並決定該保留還是該去掉此神經元。本文作者 Vandit Jain 對激活函數的相關知識進行了一個較為全面的總結,重點聚焦於以下幾個方面:一、激活函數是什麼?簡單地說,激活函數就是加入到人工神經網絡中的一個函數,目的在於幫助神經網絡從數據中學習複雜模式。
  • Mish:一個新的SOTA激活函數,ReLU的繼任者
    >對激活函數的研究一直沒有停止過,ReLU還是統治著深度學習的激活函數,不過,這種情況有可能會被Mish改變。(FastAI論壇@ Seb)Mish已經在70多個基準上進行了測試,包括圖像分類、分割和生成,並與其他15個激活函數進行了比較。
  • 乾貨|通過函數圖像,理解26種神經網絡激活函數
    ,並附上了神經網絡的相關屬性,為大家了解激活函數提供了很好的資源。在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。
  • 斯坦福CS231N深度學習與計算機視覺第六彈:神經網絡結構與神經元激勵函數
    頂級講師課程設計理論結合實際更有五大福利提供點擊文末「閱讀原文」查看詳細內容翻譯:寒小陽&龍心塵編者按:本期文章是我們為讀者帶來斯坦福課程文章第二個系列的【斯坦福深度學習與計算機視覺課程】專題六期。文章內容為斯坦福CS231N系列,供有興趣的讀者感受、學習。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 這個激活函數超越ReLU卻鮮為人知,BERT、GPT-2等都在用!
    作為決定神經網絡是否傳遞信息的「開關」,激活函數對於神經網絡而言至關重要。不過今天被人們普遍採用的 ReLU 真的是最高效的方法嗎?最近在社交網絡上,人們找到了一個看來更強大的激活函數:GELU,這種方法早在 2016 年即被人提出,然而其論文迄今為止在 Google Scholar 上的被引用次數卻只有 34 次。其實,GELU 已經被很多目前最為領先的模型所採用。
  • 通過函數圖像,了解26種神經網絡激活函數都長啥樣.
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。因此,神經網絡傾向於部署若干個特定的激活函數(identity、sigmoid、ReLU 及其變體)。