這些都會讓我們看到神經(jīng)網(wǎng)絡算法似乎能夠與很多其他學科算法搭起聯(lián)系。下面由Matthew P. Burruss的博文中《 Every Machine Learning Algorithm Can Be Represented as a Neural Network》 更是將這個觀點進行了詳細的梳理。
從1950年代的早期研究開始,機器學習的所有工作似乎都隨著神經(jīng)網(wǎng)絡的創(chuàng)建而匯聚起來。 從Logistic回歸到支持向量機,算法層出不窮,毫不夸張的說,神經(jīng)網(wǎng)絡成為算法的算法,為機器學習的頂峰。 它也從最初不斷嘗試中成為機器學習的通用表達形式。
在這個意義上,它不僅僅簡單的是一個算法,而是一個框架和理念,這也為構建神經(jīng)網(wǎng)絡提供了更加廣泛的自由空間:比如它包括不同的隱層數(shù)量和節(jié)點數(shù)量、各種形式的激活(傳遞)函數(shù)、優(yōu)化工具、損失函數(shù)、網(wǎng)絡類型(卷及、遞歸等)以及一些專用處理層(各種批處理模式、網(wǎng)絡參數(shù)隨機丟棄:Dropout等)。
由此,可以將神經(jīng)網(wǎng)絡從一個固定算法展拓到一個通用觀念,并得到如下有趣的推文:任何機器學習算法,無論是決策樹還是k近鄰,都可以使用神經(jīng)網(wǎng)絡來表示。
這個概念可以通過下面的一些舉例得到驗證,同樣也可以使用數(shù)據(jù)進行嚴格的證明。
首先讓我們定義什么是神經(jīng)網(wǎng)絡:它是一個由輸入層,隱藏層和輸出層組成的體系結構,每一層的節(jié)點之間都有連接。 信息從輸入層輸入到網(wǎng)絡,然后逐層通過隱層傳遞到輸出層。在層之間傳遞過程中,數(shù)據(jù)通過線性變換(權重和偏差)和非線性函數(shù)(激勵函數(shù))變換。 存在很多算法來對網(wǎng)絡中可變參數(shù)進行訓練。
支持向量機(SVM)算法嘗試通過所謂的"核函數(shù)技術"將數(shù)據(jù)投影到新的高維空間中,從而提高數(shù)據(jù)的線性可分離性。 轉換完數(shù)據(jù)后,算法可在高位空間獲得兩類之間最優(yōu)的分類超平面。 超平面被簡單地定義為數(shù)據(jù)維度的線性組合,非常像2維空間中的直線和3維空間中的平面。
從這個意義上講,人們可以將SVM算法看作是數(shù)據(jù)到新空間的投影,然后是 多重回歸。 神經(jīng)網(wǎng)絡的輸出可以通過某種有界輸出函數(shù)傳遞,以實現(xiàn)概率結果。
諸如決策樹算法之類的基于樹的算法有些棘手。 關于如何構建這種神經(jīng)網(wǎng)絡的答案在于分析它如何劃分其特征空間。 當訓練點遍歷一系列拆分節(jié)點時,特征空間將拆分為多個超立方體。 在二維示例中,垂直線和水平線創(chuàng)建了正方形。
盡管算法的神經(jīng)網(wǎng)絡表示與實際算法之間存在許多技術差異,但重點是網(wǎng)絡表達的思想相同,并且可以與實際算法相同的策略和性能來解決問題。
也許您不滿意將算法簡單地轉換為神經(jīng)網(wǎng)絡形式,也許希望看到通用過程可以將所有棘手的算法都進行這種轉換,例如k近鄰算法或樸素貝葉斯算法等,而不是針對每個算法都手工進行轉換。
這種同樣算法轉換的答案就在于通用函數(shù)逼近定理,這也是在大量神經(jīng)網(wǎng)絡工作原理背后的支撐數(shù)學原理。它的主要含義是:足夠大的神經(jīng)網(wǎng)絡可以以任意精度對任何函數(shù)建模。
假設有一些函數(shù) f ( x ) f\left( x \right) f(x)代表數(shù)據(jù)背后的規(guī)律: 對于每個數(shù)據(jù)點 ( x , y ) \left( {x,y} \right) (x,y), f ( x ) f\left( x \right) f(x)始終返回等于或非常接近 y y y 的值。
建模的目的是找到該內(nèi)部映射關系 f ( x ) f\left( x \right) f(x)一個有效表示,我們將其記為預測函數(shù) p ( x ) p\left( x \right) p(x)。 所有機器學習算法對這個任務的處理方式都大不相同,采用不同用于驗證結果有效的假設條件,并給出具體算法來獲得最優(yōu)結果 p ( x ) p\left( x \right) p(x)。 這些獲得優(yōu)化結果p(x)的算法,可說從在這些假設條件限制下,利用純粹的數(shù)學推導獲得。 描述函數(shù)如何將目標映射到輸入的函數(shù)實際上可以采用任何形式,下面給出幾種典型的情況:
有的時候通過數(shù)學推導可以對表達式進行求解。但面對大量待定函數(shù)參數(shù),往往需要通過不停的試湊來搜索。 但是,神經(jīng)網(wǎng)絡在尋找 f ( x ) f\left( x \right) f(x)的方式上有些不同。
任何函數(shù)都可以由許多類似階梯的部分合理地逼近,劃分的區(qū)間步數(shù)越多,逼近的精度就越高。
每一個區(qū)間都對應神經(jīng)網(wǎng)絡中的一些節(jié)點,即隱層中具有S型激活函數(shù)的節(jié)點。激活函數(shù)本質(zhì)上是概率階躍函數(shù)。 實際上每個節(jié)點都代表函數(shù) f ( x ) f\left( x \right) f(x) 的一個局部。 然后,通過系統(tǒng)中的權重和偏差,網(wǎng)絡為特定輸入來激活不同的神經(jīng)元,使其輸出為1),否則輸出0。于是便可以將不同函數(shù)的局部最后合并成整個函數(shù)。
這種處理模式不僅對應上面的一維函數(shù)有效,在圖像中也觀察到了這種通過激活不同節(jié)點以尋找數(shù)據(jù)中特定的模式。
通用逼近定理已擴展為適用于其他激活函數(shù)(如ReLU和神經(jīng)網(wǎng)絡類型),但原理仍然適用。神經(jīng)網(wǎng)絡是實現(xiàn)通用逼近定義的最佳表現(xiàn)形式。
相對于通過復雜方程和關系數(shù)學形式來描述通用逼近定理,神經(jīng)網(wǎng)絡則通過構建特殊的網(wǎng)絡結構,并通過訓練數(shù)據(jù)來獲得結構中的參數(shù)。這個過程就好像是通過蠻力記憶將函數(shù)存儲在網(wǎng)絡中。 這個匯集眾多節(jié)點的網(wǎng)絡結構,通過訓練過程來逼近任意函數(shù)過程就表現(xiàn)為某種聰明特征的智能系統(tǒng)了。
假設神經(jīng)網(wǎng)絡至少可以在理論上構造出一個函數(shù),該函數(shù)基本上具有所需的精度(節(jié)點數(shù)越多,近似值越準確,當然不考慮過擬合的技術性),具有正確結構的神經(jīng)網(wǎng)絡可以 對任何其他算法的預測函數(shù)p(x)建模。 關于其他任何機器學習算法,都不能這么說。
神經(jīng)網(wǎng)絡使用的方法并不是對一些現(xiàn)有的優(yōu)化模型,比如多項式回歸或者節(jié)點系統(tǒng),只是對少量參數(shù)進行優(yōu)化,它是直接去逼近數(shù)據(jù)內(nèi)部所蘊含的規(guī)律,而不是基于某種特定的模型來描述數(shù)據(jù)。這種理念是那些常見到的網(wǎng)絡模型結構與其它機器學習之間最為不同之處。
借助神經(jīng)網(wǎng)絡的力量以及對深度學習的無底領域的不斷研究,無論是視頻,聲音,流行病學數(shù)據(jù)還是兩者之間的任何數(shù)據(jù),都將能夠以前所未有的程度建模。 神經(jīng)網(wǎng)絡確實可以被成為算法之算法。
聯(lián)系客服