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

2020-12-10 讀芯術

全文共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學習與發展的乾貨

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

相關焦點

  • 算法的算法:人工神經網絡
    在上周的人工神經網絡課程中介紹了機器學習中的支持向量機(SVM:Support Vector Machine)與前饋網絡RBF的之間的聯繫,而對於由傳遞函數為線性函數組成的單層網絡的代表自適應線性單元(ADLINE:Adaptive  Linear Element)更是和傳統信號處理中的自適應濾波器相類似。
  • 神經網絡分析算法
    神經網絡算法原理由於神經網絡算法的設計面太大,我們此處暫且只分析Microsoft神經網絡算法的原理,在Microsoft神經網絡算法中,我們可以簡化成下面這個圖片:而這個過程可以描述為學習的過程。權重可為負值,表示輸入抑制而不是促進某一特定結果。輸出層:輸出神經元代表數據挖掘模型的可預測屬性值。數據從輸入經過中間隱含層到輸出,整個過程是一個從前向後的傳播數據和信息的過程,後面一層節點上的數據值從與它相連接的前面節點傳來,之後把數據加權之後經過一定的函數運算得到新的值,繼續傳播到下一層節點。這個過程就是一個前向傳播過程。
  • 人工智慧之機器學習算法體系匯總
    Github開源機器學習系列文章及算法源碼1. 人工智慧之機器學習體系匯總【直接上乾貨】此處梳理出面向人工智慧的機器學習方法體系,主要體現機器學習方法和邏輯關係,理清機器學習脈絡,後續文章會針對機器學習系列講解算法原理和實戰。
  • 訓練神經網絡的五大算法
    訓練的算法有很多,它們的特點和性能各不相同。➤問題的抽象人們把神經網絡的學習過程轉化為求損失函數f的最小值問題。一般來說,損失函數包括誤差項和正則項兩部分。誤差項衡量神經網絡模型在訓練數據集上的擬合程度,而正則項則是控制模型的複雜程度,防止出現過擬合現象。損失函數的函數值由模型的參數(權重值和偏置值)所決定。
  • 前饋神經網絡——深度學習之神經網絡核心原理與算法
    因上幾次讀者反映,公式代碼有亂碼和不規整的問題,小編有改善喲,這篇文章開始親們會看到效果的喲~Feedforward Neural Network網絡結構(一般分兩種)BP網絡是所有的神經網絡中結構最為簡單的一種網絡。一般我們習慣把網絡畫成左邊輸入右邊輸出層的結構。
  • 《機器學習-原理、算法與應用》出版了
    SIGAI微信公眾號自去年4月份發布第一篇文章「機器學習-波瀾壯闊40年」起,到今天為止,已經累計發布文章164篇,在各個平臺的閱讀次數超過超過300萬次,深受人工智慧學習者和從業者的喜愛,其中不乏大量的精品文章。此公眾號創立之初的目的是為了幫助大家學習和掌握人工智慧技術,用於學術研究和產品研發,傳播人工智慧技術。
  • 什麼是神經網絡算法?
    人工智慧的底層模型是"神經網絡"(neural network)。許多複雜的應用(比如模式識別、自動控制)和高級模型(比如深度學習)都基於它。學習人工智慧,一定是從它開始什麼是神經網絡呢?網上似乎缺乏通俗的解釋。
  • 從梯度下降到擬牛頓法:詳解訓練神經網絡的五大學習算法
    選自 Neuraldesigner作者:Alberto Quesada機器之心編譯參與:蔣思源在神經網絡中,系統的學習過程一般是由訓練算法所主導。而現如今有許多不同的學習算法,它們每一個都有不同的特徵和表現。因此本文力圖描述清楚五大學習算法的基本概念及優缺點,給讀者們闡明最優化在神經網絡中的應用。
  • 機器學習算法匯總:人工神經網絡、深度學習及其它
    以下為原文: 學習方式根據數據類型的不同,對一個問題的建模有不同的方式。在機器學習或者人工智慧領域,人們首先會考慮算法的學習方式。在機器學習領域,有幾種主要的學習方式。將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。
  • 人工神經網絡算法及其簡易R實現
    在是否拖欠銀行貸款的例子中,我們的輸入是有房(1)無房(0)、已婚(1)未婚(0)收入區間這樣的一個向量;垃圾郵件分類中我們的輸入向量是一些0/1值,表示每一個單詞是否出現。分類器的輸出也是數值,拖欠貸款輸出為1,不拖欠輸出為0;垃圾郵件輸出為1,非垃圾郵件輸出為0。
  • 新譯科技:混合神經網絡算法使智能機器翻譯實現顛覆性突破
    新譯科技:混合神經網絡算法使智能機器翻譯實現顛覆性突破時間:2017-05-19 14:09   來源:中華網   責任編輯:青青 川北在線核心提示:原標題:新譯科技:混合神經網絡算法使智能機器翻譯實現顛覆性突破 在智能化的今天,傳統語言翻譯迎來智能化浪潮。
  • 深度學習:神經網絡算法的昨天、今天和明天
    除了前文提到的圍棋軟體,還有自動駕駛系統、智能管家,甚至蘋果手機上的語音助手Siri都是一種人工智慧。而這些應用背後的核心算法就是深度學習(Deep Learning),這也是機器學習(Machine Learning)領域最火熱的一個分支。和其他機器學習算法有很大不同,深度學習依賴大量數據的迭代訓練,進而發現數據中內在的特徵(Feature),然後給出結果。
  • 【綜述】介紹這些常用機器學習算法的優缺點
    樹模型中的目標是可變的,可以採一組有限值,被稱為分類樹;在這些樹結構中,葉子表示類標籤,分支表示表徵這些類標籤的連接的特徵。當用於分析因變量和一個 多個自變量之間的關係時,該算法能提供很多建模和分析多個變量的技巧。具體一點說,回歸分析可以幫助我們理解當任意一個自變量變化,另一個自變量不變時,因變量變化的典型值。最常見的是,回歸分析能在給定自變量的條件下估計出因變量的條件期望。回歸算法是統計學中的主要算法,它已被納入統計機器學習。
  • 從淺層模型到深度模型:概覽機器學習優化算法
    該論文從淺層模型到深度模型縱覽監督學習中常用的優化算法,並指出了每一種優化算法的優點及局限性,同時其還包括了一階和二階等各種算法的形式化表達。機器之心主要對本論文選擇性地編譯了優化算法的部分,更詳細的推導及介紹請查看原論文。
  • 神經網絡算法使機器學習透明化
    這個算法的目的是創造 「透明訪問」系統,以呈現機器學習是如何做出預期(expectations)的。OptimizingMind 的負責人 Tsvi Achler 說:「該系統以人腦的神經模型為基礎,能把任何深度網絡 (deep networks)轉化為該系統的模式。
  • 「人工神經網絡」人工神經網絡之BP算法
    人工神經網絡(Artificial Neural Network,ANN)是在受到了生物學的啟發後創建的,在某種程度上它是對生物大腦的一種模擬。人們仿照生物神經網絡的結構,使用簡單運算單元模擬神經元,並將大量運算單元按某種形式密集連接,便構成了人工神經網絡。結構如圖:人工神經網絡(ANN)模型帶有權重值(w1,w2,...
  • 深度學習最常用的學習算法:Adam優化算法
    聽說你了解深度學習最常用的學習算法:Adam優化算法?-深度學習世界。深度學習常常需要大量的時間和機算資源進行訓練,這也是困擾深度學習算法開發的重大原因。雖然我們可以採用分布式並行訓練加速模型的學習,但所需的計算資源並沒有絲毫減少。而唯有需要資源更少、令模型收斂更快的最優化算法,才能從根本上加速機器的學習速度和效果,Adam 算法正為此而生!
  • 基於機器學習的自適應碼率算法的進一步探索與改進
    另一類則是採用機器學習的方式,讓播放器通過與現實中的網絡交互,「自主地」學習出一個適應當前網絡狀態的ABR算法。任何算法在落地前都需要經歷漫長從理論到實踐的調試與優化,特別是解決各種各樣「實驗室中認為不重要但是在落地階段非常重要」的問題。
  • 【乾貨】深度學習需要了解的四種神經網絡優化算法
    其中考慮了四種神經網絡訓練的優化方法:SGD,Nesterov Momentum,RMSProp和Adam,並用TensorFlow進行訓練。作者最終得出結果:使用Nesterov Momentum和Adam的SGD產生的結果更好。如果您對神經網絡的優化算法還不是很了解,那麼相信這篇文章將會給您很好的啟發!專知內容組編輯整理。
  • 神經網絡的BP算法學習
    圖-2對於任意的x節點,找到所有與x節點直接關聯的節點p,q,x 只能通過p,q去影響z。那麼z和x的關係可以表示如下z=z(p,q),p=p(x),q=q(x),根據複合函數求導法則:記(∂C/∂w)表示C關於w節點輸出的導數,這是回傳算法要求的。