OpenAI 研究線性網絡的非線性行為,數值計算的玄機帶來全新的網絡...

2021-01-08 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論按:不管是一般的編程還是機器學習,凡是計算機中的數據都是以一定的數據格式表示的。但有些情況下數據格式會帶來明顯的限制,造成計算結果的異常。

不過在 OpenAI 的研究人員們看來,這種「計算結果的異常」可以成為給神經網絡帶來新的可能性的落腳點。在這篇博文中,他們就介紹了一種異常的來源以及如何運用,還取得了不錯的效果。雷鋒網 AI 科技評論把文章編譯如下。

之前已經有證據表明,深度線性網絡如果用浮點數值運算實現的話,結果是不完全線性的,會展現出一些非線性的計算特點。在這項研究中,OpenAI的研究人員們使用了進化計算的策略,在線性網絡中找到帶來非線性特點的參數,希望能夠幫助一些疑難問題。

神經網絡是由許多線性層和其後的非線性層堆疊起來形成的,常見的非線性函數有 tanh 或者 ReLU。如果沒有這些非線性的部分,連續的幾個線性層在數學理論上應當等效於單獨一個線性層。所以浮點數的計算具有足夠的非線性程度,以至於這樣也能形成一個可訓練的深度神經網絡,這就有點出乎意料。

背景

計算機中使用的數字並不是理想的數學化的對象,而是用有限位的0和1近似地表示的。計算機中常用的一類數學對象表示方法就是浮點數。每個浮點格式的數據都可以分為小數和指數兩個部分。在 IEEE 的32位浮點數標準中,其中的23位用來表示小數部分,8位用來表示指數部分,還有一位用來表示符號。

根據浮點數的定義和其中使用的2進位位的表示範圍限制,它所能表示的最小非零數字就是(二進位)1.000...0 x 2^-126,這裡把這個值稱為 min。然而,可表示的數字裡面第二小的是 1.000...01 x 2^-126,這個數字可以用 min + 0.000...01 x 2^-126 表示。可以明顯看到, min 和第二小的數之間的差距,只有 min 和0之間差距的 2^-20 那麼大,還不到一百萬分之一倍。在32位浮點數中,如果要需要表示的數字比 min 還要接近0,那麼這個數就會直接被表示為0。由於這種「下溢」(underflow)的影響,所有在0附近進行的浮點數運算都會變成非線性的。

「非規格化數」(denormal numbers)就不受這些限制的影響,不過某些計算硬體上是不支持這種數據格式的。雖然 GPU 和 cuBLAS 默認都是可以使用非規格化數的,TensorFlow 在構建模型的時候卻是默認把非規格化數選項關閉的(對於 ftz=true 標誌集)。這就意味著,在TensorFlow中編寫的所有非矩陣乘法操作都帶有隱含的非線性(假設參與計算的數量級在 e^-38 附近)。

所以,雖然總體來說任何一個數字的真實值和用浮點格式表示以後的值之間的區別都很小,但是當這個數字非常接近0的時候,這一部分近似誤差就會變得非常顯著。

這件事的後果就是我們熟悉的數學規律不再適用,接下來就會有很多奇怪的事情發生。比如 (a + b) x c 就不再和 a x c + b x c 相等。

舉例說明,令 a = 0.4 x  min ,b = 0.5 x  min ,c = 1/ min

那麼, (a+b) x c = (0.4 x min + 0.5 x min ) x 1 / min = (0 + 0) x 1 / min = 0

然而 (a x c) + (b x c) = 0.4 x min / min + 0.5 x min x 1 / min = 0.9

再舉一個例子,這次令 a = 2.5 x min, b = -1.6 x min , c = 1 x min

那麼 (a+b) + c = (0) + 1 x min = min

然而 (b+c) + a = (0 x min) + 2.5 x min = 2.5 x min

在這樣的數量級上,連最基本的結合律都變得非線性了!

藉助進化策略利用非線性

OpenAI 的研究人員們很想知道這種固有的非線性可否作為計算中的非線性得到利用,如果可行的話就可以讓深度線性網絡實現非線性的計算操作。其中的挑戰是,用到的現代微分庫通常都對如此小尺度下的非線性視而不見。這樣以來,就非常困難、甚至沒有可能通過反向傳播的方法訓練一個神經網絡來利用這些非線性。

OpenAI 的研究人員們決定使用進化策略(evolution strategies)來估計梯度,不再依靠微分一類的方法。通過進化策略,他們確實能夠把32位浮點數在零值附近的非線性行為加以利用,發展為計算性的非線性。以 MNIST 數據集的訓練為例,用反向傳播算法訓練的深度線性網絡可以達到94%的訓練準確率和92%的測試準確率;相比之下,同一個線性神經網絡可以達到超過99%的訓練準確率和96.7%的測試準確只,就是用進化策略訓練得到的,同時保證激活權重都足夠小,在32位浮點數的非線性行為能夠產生影響的範圍內即可。這種訓練表現的提升就是因為進化策略發現並充分利用了32位浮點數表示中的非線性。這些強有力的非線性行為可以讓任意一個層根據低層特徵的非線性組合產生全新的特徵。這個網絡的結構如下:

x = tf.placeholder(dtype=tf.float32, shape=[batch_size,784])
y = tf.placeholder(dtype=tf.float32, shape=[batch_size,10])

w1 = tf.Variable(np.random.normal(scale=np.sqrt(2./784),size=[784,512]).astype(np.float32))
b1 = tf.Variable(np.zeros(512,dtype=np.float32))
w2 = tf.Variable(np.random.normal(scale=np.sqrt(2./512),size=[512,512]).astype(np.float32))
b2 = tf.Variable(np.zeros(512,dtype=np.float32))
w3 = tf.Variable(np.random.normal(scale=np.sqrt(2./512),size=[512,10]).astype(np.float32))
b3 = tf.Variable(np.zeros(10,dtype=np.float32))

params = [w1,b1,w2,b2,w3,b3]
nr_params = sum([np.prod(p.get_shape().as_list()) for p in params])
scaling = 2**125

def get_logits(par):
   h1 = tf.nn.bias_add(tf.matmul(x , par[0]), par[1]) / scaling
   h2 = tf.nn.bias_add(tf.matmul(h1, par[2]) , par[3] / scaling)  
   o =   tf.nn.bias_add(tf.matmul(h2, par[4]), par[5]/ scaling)*scaling
   return o

除了 MNIST 之外,OpenAI 的研究人員們相信未來還會有更多有意思的實驗把這種思想拓展到循環神經網絡,或者把非線性計算運用在提升複雜語言建模和翻譯之類的機器學習任務表現中。他們非常期待可以和廣大研究人員們一起探索其中的可能性。

via OpenAI Blog,雷鋒網 AI 科技評論編譯

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 利用非線性鐵電憶阻器進行低功率線性計算
    東芝公司研發中心和日本Kioxia公司的研究人員最近進行了一項研究,探索使用非線性鐵電隧道結(FTJ)憶阻器進行低功率線性計算的可行性。他們發表在《自然電子》雜誌上的論文,可以為有效運行人工智慧(AI)應用的硬體開發提供信息,比如人工神經網絡。
  • 使用非線性鐵電憶阻器執行低功率線性計算
    日本東芝公司研發中心和日本Kioxia公司的研究人員最近進行了一項研究,探索了使用非線性鐵電隧道結(FTJ)憶阻器執行低功耗線性計算的可行性。他們的論文發表在《Nature Electronics》上,可以為有效運行人工智慧(AI)應用程式的硬體開發提供信息,例如人工神經網絡。
  • 怎樣區分線性和非線性_線性與非線性的區別
    怎樣區分線性和非線性1.線性Line,是指量與量之間按照比例成直線關係,在數學上可理解為一階導數是個常數;   非線性non-line
  • Widrow-Hoff神經網絡學習規則的應用研究
    通過對線性神經網絡的訓練,進一步驗證Widrow-Hoff神經網絡算法的有效性,以及用其進行系統辨識的高精度擬合性。關鍵詞:Widrow-Hoff學習規則;線性神經網絡;Matlab;系統辨識本文引用地址:http://www.eepw.com.cn/article/191985.htm1 引言 利用神經網絡解決實際問題時,必定涉及大量數值計算。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    總有一些線性模型問題,僅能靠線性來辨別。為了讓非線性參與,你不得不增加或改變一些功能,因此就會涉及到大量工作。舉個例子,計算機視覺科學家花了十年時間開發、調試一種名為SIFT的功能,可以支持圖像分類和其他使用線性方法的視覺任務。但之後,神經網絡出現了,篩選功能變得不再必要,作為訓練的一部分,神經網絡的解決方法是讓這些功能自動化。
  • 基於改進神經網絡的非線性系統觀測器設計
    近年來,鑑於神經網絡的特性和發展潛力,神經網絡成為研究的熱點之一。伴隨著控制對象複雜性的提高,系統存在的不確定因素和難以確切描述的非線性特性也隨之增多,神經網絡的研究和發展顯得尤為重要。
  • 用於深度強化學習的結構化控制網絡(ICML 論文講解)
    許多控制應用程式使用通用多層感知器(MLP),用於策略網絡的非視覺部分。在本工作中,我們為策略網絡表示提出了一種新的神經網絡架構,該架構簡單而有效。所提出的結構化控制網(Structured Control Net ,SCN)將通用多層感知器MLP分成兩個獨立的子模塊:非線性控制模塊和線性控制模塊。直觀地,非線性控制用於前視角和全局控制,而線性控制圍繞全局控制以外的局部動態變量的穩定。
  • 神經網絡實現分類與預測的基本原理
    1969年出版的轟動一時的《Perceptrons》一書指出簡單的線性感知器的功能是有限的,它無非解決線性不可分的而分類問題,如簡單的線性感知器不能實現「異或」的邏輯關係,加上神經網絡就和黑夾子一樣,很多東西不透明,模型的解釋性不強,參數過多,容易出錯,容易過擬合,無法保證全局最優等問題,同時70年代集成電路和微電子技術的迅猛發展,使得傳統的Von Neumenn計算機進入全盛時期,基於邏輯符號處理方法的人工智慧得到了迅速發展並取得了顯著的成果
  • 人工神經網絡發展歷程及特點
    1984年,他又提出了連續時間Hopfield神經網絡模型,開創了神經網絡用於聯想記憶和優化計算的新途徑。這項開拓性的研究工作有力地推動了神經網絡的研究。 3) 1985年,有學者提出了波耳茲曼模型,在學習中採用統計熱力學模擬退火技術,保證整個系統趨於全局穩定點。 4) 1986年進行認知微觀結構地研究,提出了並行分布處理的理論。
  • OpenAI發布「顯微鏡」,可視化神經網絡內部結構
    作者 | 蔣寶尚編輯 | 賈偉躺屍接近三個月的OpenAI博客終於有了更新,這次它為AI研究者帶來的作品是「OpenAI Microscope」,中文譯名OpenAI 顯微鏡。意為可以像實驗室中的顯微鏡一樣工作,幫助AI研究人員更好地理解神經網絡的結構和特徵。
  • 電視節目線性與非線性編輯
    二、線性編輯的優點及不足1.線性編輯的技術比較成熟、操作相對於非線性編輯來講比較簡單。線性編輯是使用編放機、編錄機,直接對錄像帶的素材進行操作,操作直觀、簡潔、簡單。使用組合編輯插入編輯,圖像和聲音可分別進行編輯,再配上字幕機、特技器、時基校正器等,能滿足製作需要。
  • 神經網絡中容易被忽視的基礎知識
    也就是說,只要在神經元的輸出端有一個合適的損失函數,就能讓單個神經元變成一個線性分類器。因此說,那些線性的分類器本身就是一個單層神經網絡。但注意,對於非線性的模型:SVM 和神經網絡走了兩條不同的道路:神經網絡通過多個隱層的方法來實現非線性的函數,有一些理論支持(比如說帶隱層的神經網絡可以模擬任何函數),但是目前而言還不是非常完備;SVM 則採用了 kernel trick 的方法,這個在理論上面比較完備(RKHS,簡單地說就是一個泛函的線性空間
  • ...跑遞歸神經網絡!法國研究人員研發新系統識別人類行為,準確率達...
    研究人員在論文中表示,該報告的分類精度為91.3%,可與最先進的數字實現相媲美。同時,由於光子結構能提供的大規模並行處理能力,因此他們預期這項工作將為實時視頻處理的簡單可重構,以及節能解決方案帶來更好的發展。
  • 卷積神經網絡:從基礎技術到研究前景
    多層學習架構為這一問題帶來了不同的前景,這種架構提出不僅要學習分類器,而且要從數據中直接學習所需的變換操作。這種形式的學習通常被稱為「表徵學習」,當應用在深度多層架構中時即被稱為「深度學習」。 多層架構可以定義為允許從輸入數據的多層抽象中提取有用信息的計算模型。
  • 利用LS-SVM回歸算法辨識模型參數實現傳感器非線性校正的研究
    近些年來,隨著神經網絡的發展,又有不少學者利用神經網絡的非線性回歸能力,擬合傳感器輸出與輸入的非線性關係,建立傳感器傳輸特性的逆模型,從而使傳感器亦即神經網絡構成的系統線性化。但是,該方法也存在一定的局限性,主要表現在:1)神經網絡存在局部極小和過學習問題,易影響網絡的泛化能力,因此,對樣本的數量和質量依賴強;2)網絡訓練結果與網絡初值、樣本次序等有關,所建逆模型不具備唯一性;3)一般不能給出非線性校正環節(逆模型)的數學解析表達式。
  • 多變量多因子的非線性模型|BP神經網絡模型
    神經網絡模型的靈感來源於生物體內的神經網絡,大量的神經元(可以理解為變量)之間相互聯繫,共同協作處理問題。神經網絡的訓練目的是為了獲得一組權重,使得輸入量帶入模型得出的輸出量與目標變量誤差最小,若誤差值不符合條件,則返回將權重增加或減小,再次帶入模型驗證,這樣的一個反向修改帶入模型的過程就是BP神經網絡的訓練過程如果輸入神經元與輸出神經元是線性關係,可以直接進行線性回歸,若非線性關係,就可以利用BP神經網絡。
  • 新模型刻畫神經元樹突計算功能—新聞—科學網
    本報訊(記者黃辛)上海交通大學自然科學研究院、數學科學學院李松挺、周棟焯及其合作者通過理論建模分析、數值計算模擬,並結合生物學實驗的方式發展了一個簡潔的神經元模型
  • ReLU到Sinc的26種神經網絡激活函數可視化大盤點
    在神經網絡中,激活函數決定來自給定輸入集的節點的輸出,其中非線性激活函數允許網絡複製複雜的非線性行為。正如絕大多數神經網絡藉助某種形式的梯度下降進行優化,激活函數需要是可微分(或者至少是幾乎完全可微分的)。此外,複雜的激活函數也許產生一些梯度消失或爆炸的問題。
  • 人工神經網絡研究的發展歷程及重要特性
    到20世紀60年代初期,關於學習系統的專用設計方法有威德羅(Widrow)等人提出的 Adaline(adaptive linearelement,自適應線性元)以及斯坦巴克(Steinbuch)等人提出的學習矩陣。由於感知器的概念簡單,因而在開始介紹時人們對它寄予很大希望。
  • 計算MOSFET非線性電容
    雖然這極大地降低了RDS(ON) 和結電容,但電荷平衡使後者非線性進一步加大。MOSFET有效儲存電荷和能量減少,而且顯著減少,但計算或比較不同MOSFET參數以獲得最佳性能變得更加複雜。現在,超級結600 V器件的這一數值下降到65 m 。對於電容來說,對比不同技術RDS(ON)值相似器件更為重要。圖1為平面器件SiHP17N60D與RDSON相似但略低的超級結MOSFET器件SiHP15N60E的電容對比。請注意,圖中的值按對數坐標顯示。  [2] - [9]通過幾種方式解釋COSS非線性的性質,並從新的角度分析對高頻開關的影響。