機器學習、深度學習和神經網絡
術語及相關概念
在深入了解人工智能(AI)的工作原理以及它的各種應用之前,讓我們先區分一下與AI密切相關的一些術語和概念:人工智能、機器學習、深度學習和神經網絡。這些術語有時會被交替使用,但它們并不指代同樣的東西:
- 人工智能是計算機科學的一個分支,處理智能行為的模擬。AI系統通常會展示與人類智能相關的行為,如規劃、學習、推理、問題解決、知識表示、感知、運動和操控,較少涉及社會智能和創造力。
- 機器學習是AI的一個子集,它使用計算機算法分析數據,并根據所學做出智能決策,而無需明確編程。機器學習算法通過大量數據進行訓練,并從示例中學習。它們不遵循基于規則的算法。機器學習使機器能夠自己解決問題,并使用提供的數據做出準確的預測。
- 深度學習是機器學習的一個專門子集,它利用分層的神經網絡模擬人類決策。深度學習算法能夠標記和分類信息,識別模式。這使得AI系統能夠在工作中不斷學習,并通過判斷決策是否正確,改進結果的質量和準確性。
- 人工神經網絡,通常簡稱神經網絡,受生物神經網絡的啟發,盡管它們的工作原理有所不同。AI中的神經網絡是由小型計算單元(稱為神經元)組成,它們接受輸入數據并隨著時間的推移學習做出決策。神經網絡通常有多層,它們是深度學習算法在數據集增加時變得更加高效的原因,而與其他機器學習算法不同,后者可能會在數據增加時出現平臺效應。
現在,你已經對一些關鍵AI概念的區別有了廣泛的理解,接下來還有一個重要的區分,即人工智能與數據科學的區別:
- 數據科學是從大量不同的數據中提取知識和洞察的過程和方法。它是一個跨學科的領域,涉及數學、統計分析、數據可視化、機器學習等。它使我們能夠從大量數據中獲取信息、看到模式、找出意義,并用它來做出推動業務決策的判斷。
- 數據科學可以使用許多AI技術來從數據中提取洞察。例如,它可以使用機器學習算法甚至深度學習模型來提取意義并做出推論。AI和數據科學之間有一些交集,但它們并不是彼此的子集。相反,數據科學是一個涵蓋整個數據處理方法論的廣泛術語,而AI包括所有允許計算機學習如何解決問題并做出智能決策的技術。
- AI和數據科學都可以涉及使用大數據,也就是極為龐大的數據量。后面我們將更詳細地討論機器學習、深度學習和神經網絡的相關術語。
機器學習
機器學習是人工智能的一個子集,它使用計算機算法分析數據,并根據所學做出智能決策。與基于規則的算法不同,機器學習通過構建模型來對數據進行分類和預測:
- 讓我們通過一個問題來理解機器學習的應用:如果我們想判斷一個人的心臟是否會衰竭,機器學習能否解決這個問題?答案是肯定的。
- 假設我們有一些數據,比如每分鐘心跳數、身體質量指數(BMI)、年齡、性別以及結果(心臟是否衰竭)。通過機器學習,給定這些數據集,我們能夠學習并創建一個模型,基于輸入預測結果。
- 那么,這與使用統計分析創建算法有什么區別呢?算法是一種數學技術。傳統編程中,我們會拿到數據和規則,并使用它們來開發一個算法,給出答案。在前面的例子中,如果使用傳統算法,我們會利用如心跳數和BMI等數據,創建一個算法來判斷心臟是否會衰竭。這本質上是一個if-then-else語句。當我們提交輸入時,基于我們確定的算法得到結果,而這個算法不會改變。
- 而機器學習則不同,它接受數據和答案,并創建算法。機器學習不直接給我們最終答案,而是給我們一組規則,確定模型會是什么樣的。模型確定規則,當它收到輸入時,會通過這些規則來做出判斷。與傳統算法不同,機器學習模型可以不斷訓練,并將來用于預測結果。
機器學習依賴于通過檢查和比較大量數據集來定義行為規則,找到共同模式。例如,我們可以向機器學習程序提供大量鳥類的圖片,并訓練模型在看到鳥類圖片時標記為“鳥”。同樣,我們也可以為“貓”創建標簽,并提供貓的圖片進行訓練。當機器模型看到貓或鳥的圖片時,它會根據一定的置信度標記圖片:
- 這種機器學習類型被稱為監督學習,即通過人工標注的數據訓練算法。你提供更多的樣本,監督學習算法會變得更加精確地對新數據進行分類。
- 另一種機器學習類型是無監督學習,它依賴于提供未標注的數據,并讓算法自己發現數據中的模式。你提供輸入數據,但不提供標簽,讓機器自行推斷數據的特征。這種學習方式對于聚類數據很有用,即根據數據與鄰近數據的相似性,將數據分組。在數據聚類之后,可以使用不同技術來探索數據,尋找模式。例如,你可以提供一個持續的網絡流量數據流,機器學習算法會自主學習網絡的正常活動以及異常行為和可能的惡意行為。
- 第三種機器學習算法是強化學習,它依賴于給機器學習算法提供一組規則和約束條件,并讓它學會如何實現目標。你定義狀態、目標、允許的行動和約束條件。算法通過嘗試不同的組合來實現目標,并根據決策的好壞給予獎勵或懲罰。算法會盡力在給定的約束下最大化獎勵。例如,你可以使用強化學習來教機器玩棋類游戲或通過障礙物。機器學習模型是一種用于在數據中發現模式的算法,而不需要程序員顯式編程這些模式。
機器學習技術與訓練
機器學習是一個廣泛的領域,我們可以將其分為三種不同的類別:監督學習、無監督學習和強化學習。通過這些方法,我們可以解決許多不同的任務:
- 監督學習是指當我們在數據集中有類別標簽時,使用這些標簽來構建分類模型。也就是說,當我們接收到數據時,它已經有標簽,告訴我們數據代表的是什么。例如,在之前的例子中,我們有一個包含年齡、性別等標簽的表格。
- 無監督學習則不同,我們沒有類別標簽,必須從無結構的數據中發現類別標簽。這通常涉及深度學習等技術,例如通過觀察圖片來訓練模型,通常采用聚類的方式進行。
- 強化學習是另一種子集,它使用獎勵函數來懲罰不好的行為或獎勵好的行為。
監督學習的細分
監督學習可以進一步細分為回歸(Regression)、分類(Classification)和神經網絡(Neural Networks)三類。
- 回歸模型通過觀察特征x與結果y之間的關系來構建,其中y是一個連續變量。本質上,回歸用于估算連續值。
- 神經網絡指的是模仿人類大腦結構的結構。
- 分類則側重于識別離散值。我們可以根據許多輸入特征x為輸出y分配離散的類別標簽。例如,在之前的例子中,給定一組特征x(如每分鐘心跳、身體質量指數、年齡和性別),算法將輸出y分類為兩個類別:True或False,預測心臟是否會衰竭。
在其他分類模型中,我們可以將結果分類為多個類別。例如,預測一個菜譜是印度菜、中國菜、日本菜還是泰國菜。一些分類方法包括決策樹、支持向量機、邏輯回歸和隨機森林。
通過分類,我們可以從數據中提取特征。在這個例子中,特征可能是每分鐘心跳或年齡。特征是輸入模式的獨特屬性,幫助確定輸出類別或類標簽。每一列是一個特征,每一行是一個數據點。分類是預測給定數據點所屬類別的過程。我們的分類器使用一些訓練數據來理解輸入變量與類別之間的關系。
訓練模型
那么,訓練到底意味著什么呢?訓練是指使用學習算法來確定和開發模型的參數。雖然有許多算法可以做到這一點,用通俗的話來說,如果你正在訓練一個預測心臟是否衰竭的模型(True或False的值),你會向算法展示一些標記為True的實際數據,然后再次向算法展示一些標記為False的數據,你會不斷重復這個過程,直到算法學會從標記為True的心臟衰竭數據中識別出來,標記為False的數據則相反。
數據集劃分
在機器學習中,我們通常將數據集分為三部分:訓練集、驗證集和測試集。
- 訓練集是用于訓練算法的數據。
- 驗證集用于驗證結果并微調算法的參數。
- 測試集是模型從未見過的數據,用于評估模型的效果。
通過這些評估方法,我們可以使用如準確率、精確度和召回率等指標來表示模型的好壞。
深度學習
機器學習是人工智能(AI)的一個子集,深度學習則是機器學習的一個專門子集。深度學習通過分層算法創建神經網絡,這是一種人工復制大腦結構和功能的方式,使得AI系統能夠在工作中持續學習,并提高結果的質量和準確性。這就是為什么深度學習可以讓系統從非結構化數據中學習,例如照片、視頻和音頻文件。例如,深度學習使得AI系統具備自然語言理解的能力,能夠理解傳達的信息的上下文和意圖。
- 深度學習算法并不直接將輸入映射到輸出。相反,它們依賴于多個處理層。每一層將其輸出傳遞給下一層,下一層再處理這些輸出并傳遞給下一層。由于有很多層,因此稱之為深度學習。
- 在創建深度學習算法時,開發人員和工程師配置層數和連接每一層輸出與下一層輸入的函數類型。然后,他們通過提供大量帶注釋的示例來訓練模型。例如,你可以給深度學習算法提供成千上萬張圖片和與每張圖片內容對應的標簽。算法會通過其分層的神經網絡運行這些示例,并調整每一層神經網絡中變量的權重,從而能夠檢測出定義相似標簽的圖片的共同模式。
深度學習解決了舊版本學習算法中的一個主要問題。盡管機器學習算法的效率和性能在數據集增長時會達到瓶頸,深度學習算法在數據不斷增加時仍然能持續改進。深度學習在多個任務中已經證明了其高效性,包括圖像字幕生成、語音識別與轉錄、人臉識別、醫學影像和語言翻譯等。深度學習也是自動駕駛汽車的主要組成部分之一。
神經網絡
人工神經網絡
人工神經網絡是由一組較小的單元稱為神經元組成的計算單元,這些神經元模擬了人類大腦處理信息的方式。人工神經網絡借鑒了生物神經網絡的一些思想,目的是近似其處理結果。這些單元或神經元像生物神經網絡一樣,接受輸入數據,并隨著時間的推移學習做出決策。
- 神經網絡通過反向傳播(Backpropagation)進行學習。反向傳播使用一組訓練數據,將已知的輸入與期望的輸出匹配。首先,輸入數據被傳入網絡并產生輸出。然后,誤差函數會計算給定輸出與期望輸出之間的差距。最后,網絡會進行調整,以減少誤差。
- 神經網絡中的一組神經元被稱為層,每一層接受輸入并提供輸出。每個神經網絡至少有一個輸入層和一個輸出層,它還可能包含一個或多個隱藏層,這些隱藏層模擬了人腦中的活動。隱藏層接受一組加權輸入,并通過激活函數產生輸出。如果一個神經網絡有多個隱藏層,它就被稱為深度神經網絡(Deep Neural Network)。
- 感知機(Perceptrons)是最簡單且最早的神經網絡類型,它是單層神經網絡,由輸入節點直接連接到輸出節點。輸入層將輸入值通過乘以權重并求和的方式傳遞給下一層。隱藏層接收來自其他節點的輸入,并將其輸出傳遞給其他節點。隱藏層和輸出層的節點具有一種叫做偏置(Bias)的屬性,它是應用在節點上的一種特殊類型的權重,用來在考慮其他輸入后進行調整。
- 最后,激活函數決定了節點如何響應其輸入。激活函數會根據輸入值的總和和偏置進行計算,結果將作為輸出傳遞。激活函數有不同的形式,選擇合適的激活函數是神經網絡成功的關鍵。
卷積神經網絡CNNs
卷積神經網絡(Convolutional Neural Networks,CNNs)是多層神經網絡,它們受到動物視覺皮層的啟發。CNNs在圖像處理、視頻識別和自然語言處理等應用中非常有用。卷積(Convolution)是一種數學運算,將一個函數應用于另一個函數,結果是兩個函數的混合。卷積非常擅長檢測圖像中的簡單結構,并將這些簡單特征結合起來構建更復雜的特征。
在卷積神經網絡中,這一過程通過一系列層進行,每一層對前一層的輸出進行卷積。CNNs擅長從較簡單的特征中構建復雜的特征。
遞歸神經網絡RNNs
遞歸神經網絡(Recurrent Neural Networks,RNNs)之所以叫做“遞歸”神經網絡,是因為它們對每個序列元素執行相同的任務,且前一步的輸出會作為后續階段的輸入。在一般的神經網絡中,輸入通過多層處理后產生輸出,假設兩個連續的輸入是相互獨立的,但在某些情況下,這種假設并不成立。例如,當我們需要考慮一個單詞的上下文時,必須考慮前一步的觀察結果才能產生正確的輸出。
RNNs可以利用長序列中的信息,每一層網絡代表某一時刻的觀察值。
總結
- 機器學習是人工智能的一個子集,它使用計算機算法來分析數據,并根據所學內容做出智能決策。機器學習算法的三個主要類別包括監督學習、無監督學習和強化學習。
-
- 監督學習是指我們在數據集中有類別標簽,并使用這些標簽來構建分類模型。
- 監督學習分為三個類別——回歸、分類和神經網絡。
- 機器學習算法通過使用分為訓練數據、驗證數據和測試數據的數據集進行訓練。
- 深度學習是機器學習的一個專門子集,它通過分層算法創建神經網絡,使人工智能系統能夠從非結構化數據中學習,并在工作中持續學習。
- 神經網絡,一種模仿生物神經元的計算單元集合,隨著時間的推移學習對數據進行決策。不同的神經網絡類型包括感知器、卷積神經網絡或 CNN 以及循環神經網絡或 RNN。
- 進階學習(可選但是推薦)
-
- 機器學習模型Models for Machine Learning
- 神經網絡深度探索A Neural Networks deep dive