算法之「算法」:所有機器學習算法都可以表示為神經網絡

2020-08-14   讀芯術

原標題:算法之「算法」:所有機器學習算法都可以表示為神經網絡

全文共2660字,預計學習時長7分鐘

圖源:unsplash

大概從20世紀50年代的早期研究開始,機器學習的所有工作就都是隨著神經網絡的創建積累而來的。隨後出現了一個又一個新算法,從邏輯回歸到支持向量機。但是眾所周知,神經網絡是算法的算法及機器學習的巔峰。我們可以說,神經網絡是對機器學習的普遍概括,而不是僅僅一次嘗試。

與其說神經網絡是簡單的算法,不如說是框架和概念,這是顯而易見的,因為在構建神經網絡時有很大的自由度——比如對於隱藏層&節點個數、激活函數、優化器、損失函數、網絡類型(卷積神經網絡、循環神經網絡等)以及特殊層(批歸一化、隨機失活等)。

如果把神經網絡看作是概念而非嚴格的算法,一個有趣的推論就應運而生了:任何機器學習算法,無論是決策樹還是k近鄰,都可以用神經網絡表示。直覺上,我們可以通過幾個例子理解,更嚴謹地講,這種說法也可以通過數學方法證明。

我們先來定義一下什麼是神經網絡:它是一個體系結構,包括輸入層、隱藏層和輸出層,各層的節點之間互相連接。信息通過線性變換(權重和偏置)和非線性變換(激活函數)從輸入層轉換到輸出層,有一些方法可以更新模型的可訓練參數。

邏輯回歸可以簡單定義為一個標準回歸,每個輸入的乘法係數和附加截距都要通過一個sigmoid函數,這可以通過不包括隱藏層的神經網絡來建模,結果是通過sigmoid輸出神經元的多元回歸;線性回歸也可以通過將輸出神經元激活函數替換為線性激活函數來建模(線性激活函數只是映射輸出f(x)= x,換句話說,它什麼也不做)。

支持向量機(SVM)算法試圖通過所謂的「核技巧」將數據投影到一個新的空間,從而優化數據的線性可分性。數據轉換完成後,該算法繪製出沿組界最佳分離數據的超平面。超平面簡單定義為現有維度的線性結合,很像是二維的直線和三維的平面。

這樣說來,可以將SVM算法看成是將數據投影到一個新的空間,隨後進行多元回歸。神經網絡的輸出可以通過某種有界輸出函數來實現機率結果。

可能需要進行一些限制,比如限制節點間的連接,並固定某些參數,當然這些變化不會影響「神經網絡」標籤的完整性,也許還需要添加更多層來確保支持向量機的表現與實際情況一樣。

基於樹的算法會更加複雜一些,如決策樹算法。至於如何構建此類神經網絡,在於它如何劃分自己的特徵空間。當一個訓練點穿過一系列分割節點時,特徵空間被分割成幾個超立方體;在二維空間示例中,垂直線和水平線構成了正方形。

圖源:DataCamp社區

因此,沿著這些線分割特徵空間的類似方式可以用更嚴格的激活函數來模擬,如階躍函數,其中輸入值本質上是分割線。可能需要限制權重和偏置的值,因此它們僅用於通過拉伸、收縮和定位來確定分界線的方向。為了得到機率結果,其結果可以通過激活函數傳遞。

儘管在技術上神經網絡對算法的表示和實際算法有很多差異,但是重點在於神經網絡表達了相同的思想,並且可以運用相同的策略處理問題,其表現與實際算法也是一樣的。

然而一些人或許並不滿足於粗略地將算法轉換為神經網絡的形式,或者希望看到對於更複雜算法的通用應用,如k近鄰和樸素貝葉斯,而不是具體情況具體分析。

通用逼近定理(UniversalApproximation Theorem)可以解決這個問題,它是神經網絡巨大成功背後的數學解釋,從本質上表明一個足夠大的神經網絡可以以任意精度模擬任何函數。假設有一個代表數據的函數f(x),對於每個數據點(x, y),f(x)總是返回一個等於或非常接近y的值。

建模的目的是找到這個有代表性的或標註正確的函數f(x),並用p(x)來表示預測。所有機器學習算法都以不同的方法處理這個任務,將不同的假設視為有效,並且給出最佳結果p(x)。如果寫出創建p(x)的算法,你可能會得到從條件列表到純數學運算之間的任何結果。描述函數如何將目標映射到輸入的函數實際上可以採用任何形式。

這些函數有時有用,有時沒用——它們有固定數量的參數,是否使用它們是一個需要思考的問題。然而,不同的神經網絡在尋找f(x)的方法上有點不同。任何函數都可以用許多類似階梯的部分進行合理的逼近,階梯越多,逼近就越準確。

每層階梯都用一個神經網絡來表示,它們是隱藏層中具有sigmoid激活函數的節點,sigmoid激活函數本質上是機率階躍函數。本質上,每個節點都被「分配」給f(x)的一部分。

然後通過權重和偏置系統,網絡可以決定節點的存在,使sigmoid函數的輸入值達到正無窮(輸出值為1),如果對於特定的輸入值需要激活神經元,則輸出值為負無窮。這種使用節點尋找數據函數特定部分的模式不僅可以在數字數據中觀察到,在圖像中也可以。

雖然通用逼近定理已經擴大範圍到適用於其他激活函數,如ReLU和神經網絡類型,但是其原理依然是正確的:神經網絡是完美的。

神經網絡不再依賴複雜的數學方程和關係系統,而是將自身的一部分委派給數據函數的一部分,並機械記憶其指定區域內的歸納。當這些節點聚合成一個巨大的神經網絡時,結果看似是智能模型,實際上是設計巧妙的逼近器。

如果神經網絡可以構建——至少在理論上——一個精度符合你預期的函數(節點越多,逼近就越精確,當然不考慮過擬合的技術性),一個結構正確的神經網絡可以模擬其他任何算法的預測函數p(x)。對於其他任何機器學習算法來說,這是不可能的。

圖源:unsplash

神經網絡運用的方法不是優化現有模型中的一些參數,如多項式曲線和節點系統,而是對數據建模的一種特定視角,它不尋求充分利用任何獨立系統,而是直接逼近數據函數;我們如此熟悉的神經網絡架構僅僅是將思想進行建模展現。

有了神經網絡的力量和對於深度學習這一無底洞領域的持續研究,數據——無論是視頻、聲音、流行病學數據,還是任何介於兩者之間的數據——將能夠以前所未有的程度建模,神經網絡確實是算法的算法。

留言點贊關注

我們一起分享AI學習與發展的乾貨

如轉載,請後台留言,遵守轉載規範