性能優於ReLU,斯坦福用周期激活函數構建隱式神經表示,Hinton點讚

2020-12-06 機器之心Pro

機器之心報導

參與:杜偉、小舟、魔王

使用非線性周期函數構建的神經架構效果優於 ReLU?斯坦福的一項研究做出了嘗試。

這個非線性激活函數效果比 ReLU 還好?近日,史丹福大學的一項研究《Implicit Neural Representations with Periodic Activation Functions》進入了我們的視野。這項研究提出利用周期性激活函數處理隱式神經表示,由此構建的正弦表示網絡(sinusoidal representation network,SIREN)非常適合表示複雜的自然信號及其導數。

Geoffrey Hinton 轉發了這項研究,並表示該項目的講解視頻或許有助於理解網格單元。

研究人員在項目主頁上展示了 SIREN 的效果,例如 SIREN 和 ReLU 在處理視頻時的不同表現:

具備像素坐標和時間坐標的 SIREN 可以用於參數化視頻。上圖展示了 SIREN 使用真值像素值進行直接監督,其參數化視頻的效果大大超過基於 ReLU 的多層感知機。

接下來,我們來看研究人員提出 SIREN 的動機和詳細細節。

由神經網絡參數化的隱式定義、連續可微的信號表示已經成為一種強大的範式。與常規表示相比,它具備很多優點。

但是,當前用於隱式神經表示的網絡架構無法對信號進行精細建模,也無法表示信號的時空導數。但實際上,對於許多被隱式定義為偏微分方程的解的物理信號而言,這是十分必要的。

近日,史丹福大學的一項研究提出利用周期性激活函數進行隱式神經表示,即正弦表示網絡(sinusoidal representation network,SIREN),並展示了它們非常適合表示複雜的自然信號及其導數。

論文地址:https://arxiv.org/pdf/2006.09661.pdf項目主頁:https://vsitzmann.github.io/siren/研究者分析了 SIREN 激活統計數據,提出了一種有原則的初始化方案,並展示了圖像、波場、視頻、聲音及其導數的表示。

此外,研究者還展示了如何利用 SIREN 來解決具有挑戰性的邊值問題,比如特定的程函方程(Eikonal equation)、泊松方程(Poisson equation)、亥姆霍茲方程(Helmholtz equation)以及波動方程。

最後,研究者將 SIREN 與超網絡相結合,來學習 SIREN 函數空間的先驗知識。

SIREN 概述

研究者將研究重點放在了能夠滿足以下方程式的函數 Φ:

該研究旨在解決公式 (1) 中的問題。研究者將該問題看作一個可行性問題,即找出函數 Φ 滿足 M 約束集合

,其中每一個 M 將函數 Φ 及其導數與量 a(x) 關聯起來:

於是,該問題可以寫成損失函數的形式,即懲罰域 _m 上每個約束的偏差:

研究者將函數 Φ_θ 參數化為全連接神經網絡,並使用梯度下降解決優化問題。

用於隱式神經表示的周期激活函數

該研究提出了一種簡單的神經網絡架構 SIREN 來處理隱式神經表示。SIREN 使用正弦作為周期激活函數:

有趣的是,SIREN 的任意導數都是 SIREN,就像正弦的導數是餘弦,即相移正弦。因此,SIREN 的導數繼承了 SIREN 的特性,使得研究者使用「複雜」信號監督 SIREN 的任意導數。

該研究將展示,SIREN 可以通過對激活分布的控制進行初始化,這可以使研究者創建深層架構。

此外,SIREN 的收斂速度遠遠超過基線架構,例如它在一塊現代 GPU 上擬合單張圖像數百次僅需數秒,同時圖像保真度還更高,如下圖 1 所示:

激活分布、頻率,以及合理的初始化機制

該研究展示了一種有助於高效訓練 SIREN 的合理初始化機制。其核心思想是:保存網絡中的激活分布,使得初始化的最終輸出不依賴於層數。注意:構建 SIREN 需要精心挑選均勻分布權重,否則準確率和收斂速度都會很糟糕。

我們先來看使用均勻分布輸入 x U(1, 1) 的單個正弦神經元的輸出分布。該研究提出的初始化機制使用 ADAM 優化器在所有實驗中均實現了快速、穩健的收斂。

SIREN 效果如何

在實驗部分,研究者將 SIREN 與 ReLU、TanH、Softplus、ReLU P.E 等網絡架構的效果進行了比較。結果顯示,SIREN 的性能顯著優於所有這些基準方法,收斂速度明顯加快,並且成為唯一一個準確表示信號梯度的架構,從而使其可用於解決邊值問題。

下面我們來看 SIREN 在處理泊松方程、亥姆霍茲方程、波動方程,以及利用符號距離函數表示形狀和學習隱函數空間等五個方面的具體表現。

解決泊松方程問題

研究者表示,通過監督 SIREN 的導數,他們可以解決基於泊松方程的圖像問題。實驗結果顯示,SIREN 同樣是唯一一個能夠準確快速擬合圖像、梯度和拉普拉斯域的架構。

SIREN 與其他幾種基準方法的展示效果圖如下所示:

就具體細節來說,下圖 3 展示了使用 SIREN 方法的擬合效果以及圖像無縫融合到梯度域(gradient domain)的效果。

圖 3:泊松圖像重建和泊松圖像編輯。

利用符號距離函數表示形狀

如下圖 4 所示,該研究提出的周期性激活函數顯著增加了物體的細節以及可用神經 SDF 表示的場景複雜度,並且僅使用單個五層全連接神經網絡即實現了整個房間的參數化表示。

圖 4:SIREN 與 ReLu 基準方法的形狀表示細節展示。

解決亥姆霍茲方程問題

以下動圖為利用 SIREN、ReLU 和 TanH 基準架構解決不均勻 Helmholtz 問題的效果展示:

研究者利用 SIREN 解決不均勻亥姆霍茲方程問題,並與基於 ReLU 和 Tanh 等的網絡架構進行了比較,具體細節如下圖 5 所示:

學習隱函數空間

下圖 6 展示了基於不同數量的像素觀察結果進行的測試時重建。以下所有修復結果均使用相同的模型和相同的參數值生成。

下表 1 給出了與 [50] 的定量比較,表明對 SIREN 表示的泛化至少與對圖像的泛化同樣有效。

解決波動方程問題

在時間域中,SIREN 成功地解決了波動方程問題,而基於 Tanh 的網絡架構卻未能找出正確的解。兩者的實現動圖展示如下:

利用 SIREN 與基於 Tanh 網絡架構解決波動方程初始值問題的細節如下:

相關焦點

  • 完勝ReLU!斯坦福的神經網絡用這種激活函數,高保真還原圖像視頻
    相比於ReLU、TanH等非周期性的激活函數來說,SIREN將正弦周期函數用作激活函數,相當於為神經網絡引入了周期性。由於周期性的正弦激活函數處處可微,使得其能夠快速適應複雜信號,很好地對自然圖像空間進行參數化,建模更為精細。這不僅意味著函數能以連續的方式表示圖像,而且能在不丟失任何信息的情況下,以任一種解析度表示它。
  • 從ReLU到GELU,一文概覽神經網絡的激活函數
    在這篇長文中,我將全面介紹六種不同的激活函數,並闡述它們各自的優缺點。我會給出激活函數的方程和微分方程,還會給出它們的圖示。本文的目標是以簡單的術語解釋這些方程以及圖。我會介紹梯度消失和爆炸問題;對於後者,我將按照 Nielsen 提出的那個很贊的示例來解釋梯度爆炸的原因。
  • 如何選擇神經網絡激活函數:有效的改善模型學習模式的能力
    激活函數是神經網絡中用於計算輸入和偏差的加權和的函數,用於確定神經元是否可以釋放。 它通常通過梯度下降法的某種梯度處理來操縱數據,然後產生神經網絡的輸出,該輸出包含數據中的參數。 有時這些激活函數通常稱為傳遞函數。激活函數具有改善數據學習模式的能力,從而實現了特徵檢測過程的自動化,並證明它們在神經網絡的隱藏層中的使用合理性,並且對於跨領域進行分類很有用。
  • Pytorch_第九篇_神經網絡中常用的激活函數
    神經網絡中常用的激活函數Introduce理論上神經網絡能夠擬合任意線性函數,其中主要的一個因素是使用了非線性激活函數(因為如果每一層都是線性變換,那有啥用啊,始終能夠擬合的都是線性函數啊)。本文主要介紹神經網絡中各種常用的激活函數。以下均為個人學習筆記,若有錯誤望指出。
  • 神經網絡為何非激活函數不可?
    激活函數是神經網絡中一個至關重要的概念,決定了某個神經元是否被激活,判斷該神經元獲得的信息是否有用,並決定該保留還是該去掉此神經元。本文作者 Vandit Jain 對激活函數的相關知識進行了一個較為全面的總結,重點聚焦於以下幾個方面:一、激活函數是什麼?簡單地說,激活函數就是加入到人工神經網絡中的一個函數,目的在於幫助神經網絡從數據中學習複雜模式。
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 人工智慧-深度學習-激活函數ReLU,Sigmoid,TanH,ELU,MaxOut
    激活函數:在多層神經網絡中,上層節點的輸出和下層節點的輸入之間具有一個函數關係,這個函數稱為激活函數(又稱激勵函數)激活函數的本質:激活函數是來向神經網絡中引入非線性因素的,通過激活函數,神經網絡就可以擬合各種曲線。
  • Keras入門系列教程:兩分鐘構建你的第一個神經網絡模型
    tf.keras使TensorFlow更易於使用而不犧牲靈活性和性能。='relu',input_shape=(64,)))# 添加另外一個model.add(keras.layers.Dense(64, activation='relu'))# 添加一個具有10個輸出單元且使用softmax為激活函數的全連接層model.add(keras.layers.Dense
  • 超越ReLU卻鮮為人知3年後被挖掘:BERT、GPT-2等都在用的激活函數
    作為決定神經網絡是否傳遞信息的「開關」,激活函數對於神經網絡而言至關重要。不過今天被人們普遍採用的 ReLU 真的是最高效的方法嗎?最近在社交網絡上,人們找到了一個看來更強大的激活函數:GELU,這種方法早在 2016 年即被人提出,然而其論文迄今為止在 Google Scholar 上的被引用次數卻只有 34 次。
  • 代碼詳解:基於Python建立任意層數的深度神經網絡 - 讀芯術
    圖1 神經網絡構造的例子(符號說明:上標[l]表示與第l層;上標(i)表示第i個例子;下標i表示矢量第i項)單層神經網絡圖2 單層神經網絡示例神經元模型是先計算一個線性函數(z=Wx+b),接著再計算一個激活函數。一般來說,神經元模型的輸出值是a=g(Wx+b),其中g是激活函數(sigmoid,tanh, ReLU, …)。
  • 人工神經網絡的驅動者:激活函數是什麼?
    圖源:unsplash激活函數是人工神經網絡的驅動因素,其位於神經元之上,並管理著神經元行為,比如是否需要處理某個輸入數據,若需要,又以何種程度處理等等。從技術上來講,某個節點的激活函數將其在神經網絡中前一個節點的數據輸入,並輸出一個確定值,這個值繼而指導後續節點如何發動來響應特定輸入信號。本文剖析由激活函數組成的神經網絡,以及神經網絡的生物類似物,並簡要介紹幾種常用的激活函數。神經網絡的結構作為一名數據科學愛好者,你一定見過上面的這張圖片或者與之相似的圖片。這張圖片是對雙層神經網絡工作流程的經典描述。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 如何使用Keras構建殘差神經網絡?
    skip connections是這樣做的:它們從網絡中的一個點到另一點添加恆等映射,然後讓網絡僅學習額外的()。如果網絡沒有其他可以學習的東西,那麼它僅將()設為0。事實證明,對於網絡來說,學習一個更接近於0的映射比學習恆等映射更容易。具有skip connection的塊稱為殘差塊,而殘差神經網絡(ResNet)只是這些塊的連接。
  • 用TensorFlow和Keras構建卷積神經網絡
    全文共9940字,預計學習時長20分鐘或更長不同神經網絡結構各有所長。本文主要介紹如何在Python中使用TensorFlow和Keras構建卷積神經網絡。在完全連接層上,每個神經元的輸出將是前一層的線性變換,由非線性激活函數(如ReLu或Sigmoid)組成。 相反,卷積層中每個神經元的輸出僅僅是前一層神經元的子集(通常很小)的函數。
  • 用Hinton的膠囊神經網絡來識別空間關係 Part1: CNNs及其缺點
    但是,這些改進通常都是一些簡單的修改, 例如增加一些層,或者簡單的改進激活函數,但是並沒有引進全新的架構或思路。Geoffery Hinton 是包括神經網絡在內的很多廣泛使用的深度學習算法的創始人之一,考慮到他有著神經科學和人工智慧的雙重背景,取得這些成就也就不會太讓人意外。
  • 代碼詳解:使用NumPy,教你9步從頭搭建神經網絡
    訓練集只用於神經網絡的調整,測試集則是在訓練完成後用來測試性能。每個層(輸入層除外)具有權重矩陣W、偏置矢量b和激活函數。各個層都將被附加到名為neural_net的列表中,從而得到全連接的神經網絡。前向傳播在給定一組權重和偏差的情況下,定義一個前向傳播的函數。各層之間的連接以矩陣形式定義為:σ 是element-wise 激活函數,上標T表示矩陣的轉置。
  • 深度學習激活函數完全指南:在數據科學的諸多曲線上進行現代之旅
    原文:Towards Data Sciencedeephub翻譯組:zhangzc自2012年以來,神經網絡研逐漸成為了人工智慧研究的主流,深度模型迅速取代了之前的各種benchmarks。在這些創新中,激活函數對神經網絡的性能和穩定性起著至關重要的作用。這篇文章將儘可能簡要地概述激活函數研究的最新進展,介紹它們的起源以及何時應該被使用。
  • 微軟推出提點神器動態ReLU,可能是最好的ReLU改進
    作者 | Vincent 來源 | 曉飛的算法工程筆記 簡介ReLU是深度學習中很重要的裡程碑,簡單但強大,能夠極大地提升神經網絡的性能。目前也有很多ReLU的改進版,比如Leaky ReLU和 PReLU,而這些改進版和原版的最終參數都是固定的。所以論文自然而然地想到,如果能夠根據輸入特徵來調整ReLU的參數可能會更好。
  • 算法之「算法」:所有機器學習算法都可以表示為神經網絡
    我們可以說,神經網絡是對機器學習的普遍概括,而不是僅僅一次嘗試。與其說神經網絡是簡單的算法,不如說是框架和概念,這是顯而易見的,因為在構建神經網絡時有很大的自由度——比如對於隱藏層&節點個數、激活函數、優化器、損失函數、網絡類型(卷積神經網絡、循環神經網絡等)以及特殊層(批歸一化、隨機失活等)。
  • Hinton等人新研究:如何更好地測量神經網絡表示相似性
    近期很多研究試圖通過對比神經網絡表示來理解神經網絡的行為。谷歌大腦 Simon Kornblith、Geoffrey Hinton 等人的一項新研究引入了 centered kernel alignment (CKA) 作為相似性指數,並分析 CKA、線性回歸、典型相關分析(CCA)等相關方法之間的關係,證明 CKA 優於其他相似性指數。