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

2021-01-11 讀芯術

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

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

相關焦點

  • 神經網絡算法原理_神經網絡算法的應用_神經網絡算法實例說明
    神經網絡的用途非常廣泛,在系統辨識、模式識別、智能控制等領域都能一展身手。而現在最吸引IT巨頭們關注的就是神經網絡在智能控制領域中的自動學習功能,特別適合在需要代入一定條件,並且信息本身是不確定和模糊的情況下,進行相關問題的處理,例如語音識別。
  • 機器學習算法盤點:人工神經網絡、深度學習
    機器學習算法盤點:人工神經網絡、深度學習 佚名 發表於 2016-08-01 16:26:33   機器學習無疑是當前數據分析領域的一個熱點內容。很多人在平時的工作中都或多或少會用到機器學習的算法。
  • 訓練神經網絡的五大算法
    訓練神經網絡的五大算法 Alberto Quesada 發表於 2017-11-16 15:30:54   神經網絡模型的每一類學習過程通常被歸納為一種訓練算法。
  • 為你的回歸問題選擇最佳機器學習算法
    【IT168 編譯】在處理任何類型的機器學習(ML)問題時,我們有許多不同的算法可供選擇。而機器學習領域有一個得到大家共識的觀點,大概就是:沒有一個ML算法能夠最佳地適用於解決所有問題。不同ML算法的性能在很大程度上取決於數據的大小和結構。
  • 從梯度下降到擬牛頓法:詳解訓練神經網絡的五大學習算法
    選自 Neuraldesigner作者:Alberto Quesada機器之心編譯參與:蔣思源在神經網絡中,系統的學習過程一般是由訓練算法所主導。而現如今有許多不同的學習算法,它們每一個都有不同的特徵和表現。因此本文力圖描述清楚五大學習算法的基本概念及優缺點,給讀者們闡明最優化在神經網絡中的應用。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    原標題:盤點 | 機器學習入門算法:從線性模型到神經網絡 選自Dataconomy 機器之心編譯 參與:王宇欣、吳攀、蔣思源而實際上機器學習是如何工作的呢?答案很簡單:算法(algorithm)。 機器學習是人工智慧(artificial intelligence)的一種,其本質上講,就是計算機可以在無需編程的情況下自己學習概念(concept)。這些電腦程式一旦接觸新的數據,就將會改變它們的「思考」(或者輸出)。為了實現機器學習,算法是必需的。
  • 機器學習算法匯總:人工神經網絡、深度學習及其它
    將算法按照學習方式分類是一個不錯的想法,這樣可以讓人們在建模和算法選擇的時候考慮能根據輸入數據來選擇最合適的算法來獲得最好的結果。 算法類似性根據算法的功能和形式的類似性,我們可以把算法分類,比如說基於樹的算法,基於神經網絡的算法等等。當然,機器學習的範圍非常龐大,有些算法很難明確歸類到某一類。而對於有些分類來說,同一分類的算法可以針對不同類型的問題。這裡,我們儘量把常用的算法按照最容易理解的方式進行分類。
  • 深度學習:神經網絡算法的昨天、今天和明天
    除了前文提到的圍棋軟體,還有自動駕駛系統、智能管家,甚至蘋果手機上的語音助手Siri都是一種人工智慧。而這些應用背後的核心算法就是深度學習(Deep Learning),也是機器學習(Machine Learning)領域最火熱的一個分支。和其他機器學習算法有很大不同,深度學習依賴大量數據的迭代訓練,進而發現數據中內在的特徵(Feature),然後給出結果。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    儘管AI的思路是構建可以自行思考和執行的更智能的系統,但仍然需要對其進行訓練。AI的ML領域是為實現非常精確的目標而創建的,它引入了多種算法,從而可以更順暢地進行數據處理和決策。什麼是機器學習算法?機器學習算法是任何模型背後的大腦,可讓機器學習並使其更智能。
  • 人工智慧之Apriori算法
    人工智慧機器學習有關算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下Apriori算法。^_^Apriori算法是經典的挖掘頻繁項集和關聯規則的數據挖掘算法,也是十大經典機器學習算法之一。
  • 神經網絡學習降噪算法解析
    這次研究與以往的降噪學習不同點在於,一般的神經網絡深度學習需要一個目標值,以圖像降噪處理來說,就是需要一個ISO 100時的高信噪比目標值,讓ISO 12800的輸入值通過算法來達到與之近似的水準。但NVIDIA這一套新算法直接以高噪聲輸入為源進行學習,最終得到的結果與傳統方案幾乎一致,而且因為不需要目標值,結構更簡單,所以速度明顯更快。
  • 模式識別與機器學習(教學大綱)|向量|貝葉斯|算法|神經網絡_網易訂閱
    首先介紹貝葉斯學習基礎、邏輯回歸、概率圖模型基礎、隱馬爾可夫模型和條件隨機場,接著介紹支持向量機、人工神經網絡與深度學習、高斯過程、聚類、主成分分析與相關的譜方法,最後介紹確定性近似推理、隨機近似推理和強化學習。附錄包括傳統的模式識別與機器學習方法,即近鄰法和決策樹,還有向量微積分和隨機變量的變換等與本學科強相關的重要知識點。
  • 聽說你了解深度學習最常用的學習算法:Adam優化算法?
    By蔣思源2017年7月12日  深度學習常常需要大量的時間和機算資源進行訓練,這也是困擾深度學習算法開發的重大原因。雖然我們可以採用分布式並行訓練加速模型的學習,但所需的計算資源並沒有絲毫減少。而唯有需要資源更少、令模型收斂更快的最優化算法,才能從根本上加速機器的學習速度和效果,Adam算法正為此而生!
  • 聯邦學習算法綜述
    加密數據的傳遞、目標函數損失的計算、梯度的計算與傳遞模型參數的傳遞等都對傳統的算法提出了新的要求。2.4 聯邦學習分類聯邦學習的孤島數據有不同的分布特徵。對於每一個參與方來說,自己所擁有的數據可以用一個矩陣來表示。矩陣的每一行表示每一個用戶或者一個獨立的研究對象,每一列表示用戶或者研究對象的一種特徵。同時,每一行數據都會有一個標籤。
  • 業界| 從集成方法到神經網絡:自動駕駛技術中的機器學習算法有哪些?
    這項技術基於機器學習,且能對駕駛員的語音及動作進行識別,同時還有語言翻譯。算法總的來說可以分為監督式學習和非監督式學習兩大類。二者的區別在於學習方式不同監督式學習通過給定的訓練集來學習,該學習過程一直持續到模型達到預設的期望值(即錯誤率達到最小)。監督式學習算法可以分為回歸、分類以及異常數據檢測或降維算法等幾大類。非監督式學習試圖從可用數據集中學習到其內部結構與模式。
  • 前沿| 利用遺傳算法優化神經網絡:Uber提出深度學習訓練新方式
    Stanley、Jeff Clune 機器之心編譯 參與:陳韻竹、劉曉坤 在深度學習領域,對於具有上百萬個連接的多層深度神經網絡(DNN),現在往往通過隨機梯度下降(SGD)算法進行常規訓練許多人認為,SGD 算法有效計算梯度的能力對於這種訓練能力而言至關重要。但是,Uber 近日發布的五篇論文表明,神經進化(neuroevolution)這種利用遺傳算法的神經網絡優化策略,也是訓練深度神經網絡解決強化學習(RL)問題的有效方法。
  • 金融領域裡的機器學習算法介紹:人工神經網絡
    人工智慧的發展在很大程度上是由神經網絡、深度學習和強化學習推動的。這些複雜的算法可以解決高度複雜的機器學習任務,如圖像分類、人臉識別、語音識別和自然語言處理等。這些複雜任務一般是非線性的,同時包含著大量的特徵輸入。我們下面我們將分幾天的時間對這些算法及其在金融領域的應用進行闡述。
  • AutoML新進展:用進化算法發現神經網絡架構
    例如,人類的大腦可以完成各種各樣的活動,其中許多活動都是毫不費力的。例如,分辨一個視覺場景中是否包含動物或建築物對我們來說是微不足道的。為了執行這些活動,人工神經網絡需要專家經過多年的艱難研究仔細設計,並且通常需要處理一項特定任務,例如查找照片中的內容,稱為遺傳變異,或幫助診斷疾病。理想情況下,人們會希望有一個自動化的方法來為任何給定的任務生成正確的架構。
  • 基於神經網絡算法 羊毛_基於pso算法和bp算法訓練神經網絡 - CSDN
    圖神經網絡是用於圖結構數據的深度學習架構,將端到端學習與歸納推理相結合,業界普遍認為其有望解決深度學習無法處理的因果推理、可解釋性等一系列瓶頸問題,是未來 3 到 5 年的重點方向。2019 年圖神經網絡有哪些研究成果值得關注?2020 年它又將朝什麼方向發展?讓我們一起來一探究竟。
  • Pedro Domingos深度解析機器學習五大流派中主算法精髓
    每個神經元可以有一或多個樹突,可以接受刺激並將興奮傳入細胞體。每個神經元只有一個軸突,可以把興奮從胞體傳送到另一個神經元或其他組織,如肌肉或腺體。神經元之間是互相連接的,這樣形成了一個大的神經網絡。人類所學會的知識幾乎都存在神經元之間的突觸中,整個學習過程基本上是出現在一個神經元幫助另一個神經元發射信號的過程。