作者 | 陳大鑫
編輯 | 叢 末
在深度神經網絡大行其道的今天,誰還不認識幾個激活函數呢?
下圖就是一些我們經常使用的激活函數,從這些激活函數的圖像可以看出它們有的是局部線性的有的是非線性的,有的是一個函數表達式下來的,有的是分段的。但其表達式好像都不是很常見,給人一種應湊的感覺有沒有?
比如在Relu出現之後,有人覺得x軸坐标都是0(神經元不激活)不太好,那就有了Leaky Rulu的出現,之後又有人提出線性的不太好,那就出現了ELU等等吧。總之Relu的變體一直增多,難道就不能換個花樣嗎?難道激活函數就得是分段函數去湊嗎?
那有意思的就來了,近日斯坦福大學研究員Vincent Sitzmann 等人合作發表了一篇論文:
論文位址:https://arxiv.org/pdf/2006.09661.pdf
項目首頁:https://vsitzmann.github.io/siren/
開源代碼:https://github.com/vsitzmann/siren
在這篇論文中研究人員在隐形神經表示中使用了正弦函數來替代以往的激活函數,那效果如何呢?
上圖是一張狗狗的圖檔,我們把它放進兩個5層的神經網絡進行訓練并求其梯度圖,這兩個神經網絡除了激活函數不同其它都一樣,得到的結果如下圖所示。
可以很明顯的看出,使用了ReLU激活函數得到的梯度圖隻是勾勒了原圖梯度圖的輪廓,而使用了本論文中的正弦周期激活函數(SIREN)得到的梯度圖表現幾乎與原圖梯度圖一樣好(實際上充當了 Sobel過濾器)。
下圖則可以看出正弦周期激活函數(SIREN)在二階梯度圖/拉普拉斯算子下表現得更好。
那究竟正弦周期激活函數(SIREN)是怎樣得到這樣良好的性能呢?
在回答這個問題之前我們先來明确一下這個激活函數的應用場景:隐式神經表示。
簡單來說,Φ隻與x有關,即Φ是由F隐式定義的,我們将這種隐式定義函數參數化的神經網絡稱為隐式神經表示。而科學領域中的各種各樣的問題都是以這種隐式神經表示形式存在的,例如在圖像、視訊和音頻進行中使用連續的可微表示來模組化許多不同類型的離散信号,通過符号距離函數學習三維形狀表示,以及更廣泛的求解邊界值問題:如泊松方程、亥姆霍茲方程或波動方程。
由神經網絡參數化的隐式、連續、可微的信号表示已成為一種強有力的範式,與傳統的表示相比,它提供了許多可能的好處。然而目前用于這種隐式神經表示的網絡結構無法對信号進行精細的模組化,并且無法表示信号的空間和時間導數,盡管事實上,這些導數對于許多隐含定義為偏微分方程解的實體信号是必不可少的。我們建議利用周期激活函數來表示隐式神經網絡,并證明這些網絡,稱為正弦表示網絡或SIREN ,非常适合于表示複雜的自然信号及其導數。
1
ReLU的不足
基于以上一些原因,隐式神經表示在過去的一年裡引起了廣泛的研究興趣。然而這些最新的研究大多建立在基于ReLU的多層感覺器(mlp)上,盡管這些架構很有前途,但它們缺乏在底層信号中表示精細細節的能力,而且它們通常不能很好地表示目标信号的導數/梯度。
這部分是由于ReLU網絡是分段線性的,其二階導數處處為零,是以無法對自然信号的高階導數中包含的資訊進行模組化。雖然替代激活如tanh或softplus能夠表示高階導數,但它們的導數通常表現不好,也不能表示精細的細節。
2
SIREN的提出
為了解決這些局限性,作者利用具有周期性激活函數的mlp進行隐式神經表征。作者證明,這種方法不僅比ReLU-MLP更好地表示信号中的細節,而且這些性質還獨特地适用于導數,可微意味着梯度和高階導數可以解析地計算,例如使用自動微分,利用良好的導數,隐式神經表示還可以為求解微分方程等反問題提供一個新的工具箱。
那就來看看SIREN在各方面應用的表現效果吧
1、圖像
将2D像素坐标映射到顔色的SIREN可用于參數化圖像。在這裡,我們直接使用ground truth像素值來監督SIREN。與所有baseline架構相比,SIREN不僅具有高10 dB的PSNR(峰值信噪比)和更少的疊代次數來拟合圖像,而且它還是唯一能夠準确表示圖像的一階和二階梯度的的MLP(多層神經網絡)。
2、音頻
具有單個時間坐标輸入和标量輸出的SIREN可以參數化音頻信号,SIREN是唯一能夠成功再現音樂和人聲音頻信号的網絡體系結構。
3、視訊
具有像素坐标和時間坐标的SIREN可用于參數化視訊。在這裡,SIREN受到ground truth像素值的直接監督,并且比ReLU MLP更好地參數化視訊。
4、泊松圖像重建和編輯
5、解泊松方程
通過僅監督SIREN的導數,可以求解泊松方程,SIREN警報器再次成為唯一能夠準确,快速地拟合圖像,梯度和拉普拉斯域的架構。
6、解決亥姆霍茲方程問題
7、求解波動方程
在時域中,SIREN成功解決了波動方程,而基于Tanh激活函數的體系結構卻未能找到正确的解決方案。
8、用符号距離函數表示形狀
3
SIREN的奧妙:求梯度不變性
對SIREN求梯度得到的是另一個SIREN:
在求梯度時用到了求導鍊式法則,且易知對正弦函數求n階導仍然是正/餘弦函數,如下圖所示,大家感興趣可以多看兩眼。
4
讨論與結論
如何表示信号的問題是許多科學和工程問題的核心。與傳統的連續和離散表示相比,隐式神經表示可能為其中許多方法提供了一種新的工具。作者證明周期激活函數非常适合用隐式神經表示來表示複雜的自然信号及其導數。作者還原型了幾個邊值問題,其架構能夠穩健地解決這些問題。對于未來的工作有幾個令人興奮的途徑,包括探索其他類型的反問題以及在隐式神經表示之外的領域的應用。
一些思考:
正弦周期函數在隐式神經表示領域中是最好的一簇激活函數嗎?在深度學習别的領域是否也存在一種比Relu之類更好的一簇激活函數?聯系到人類大腦,難道說大腦在解決不同任務的時,内部神經元(突觸)的激活表達方式也是不唯一的嗎?
固然說人工智能和腦科學是兩回事,這二者的内部作用機制也不必等同。但是就像愛因斯坦至死都在追求大統一理論一樣,我們相信對于神經網絡來說也是存在着一套通用、統一的運作機制:前後兩層的作用方式(乘法網絡或加法網絡或者别的)應該是統一的,激活函數(我猜肯定不是Relu)應該是統一的,超參數的排列方式的産生規律應該是統一的、記憶力和注意力應該是統一的,有無dropout機制等也是統一的......
或許、或許除了要求非線性、強表達之外,上面的一切元件都不是必須的呢?也許有其他的元件可以替代以上呢?
我想這大概就是人工智能的“人工”所在吧,也許我們目前所作的真的隻是在拟合資料而已。
那智能又展現在哪裡的?智能都是人類賦予機器的,機器隻是來滿足我們的人類的各種需要而已,從這個角度來說,隻要機器能更高效更省電地完成任務不就得了,還要什麼自行車?
總的來說,怎麼能高效地“人工”即是一種挑戰也是一種魅力。
參考連結:https://medium.com/@sallyrobotics.blog/sirens-implicit-neural-representations-with-periodic-activation-functions-f425c7f710fa