機器學習算法分類
機器學習是計算機理論和計算電子學的未來。在過去十年中,機器學習、深度學習和人工智能的進步改變了計算能力的使用方式。將來,開發(fā)人員可能不會編寫特定的用戶定義程序。相反,他們將編造算法讓計算機獨立執(zhí)行分配的任務。計算機、微控制器和專用處理器將不會運行預定義的軟件/固件例程。相反,它們將成為觀察、學習和自主完成有價值任務的實時機器。
機器學習和人工智能旨在使計算機和微控制器成為具有類似人類認知能力的自主機器。機器學習作為狹義的人工智能,現(xiàn)在被廣泛應用于所有平臺和應用程序,包括網(wǎng)絡服務器、桌面應用程序、移動應用程序和嵌入式系統(tǒng)。
我們已經(jīng)討論過,要開始機器學習,需要選擇一種編程語言。我們還討論了每種編程語言在一個或另一個業(yè)務領域中也占主導地位。然而,編程語言的選擇仍然無關緊要,因為無論選擇何種編程語言或語言特定的工具、包或框架,機器學習問題和算法的概念仍然是基本的。Python 是初學者最友好的編程語言,可以幫助初學者開始使用機器學習和深度學習解決方案。Python 在語法上很簡單,并且擁有經(jīng)過時間考驗的工具和框架來解決任何機器學習問題。Pythonic 機器學習甚至可以應用于運行在微型計算機和微控制器上的簡單設備。
下一步是學習使用所選編程語言的工具、庫和框架進行機器學習。這些工具和包通常與準備數(shù)據(jù)集、獲取數(shù)據(jù)集(從傳感器數(shù)據(jù)、在線數(shù)據(jù)流、CSV 文件或數(shù)據(jù)庫)、清理數(shù)據(jù)(稱為數(shù)據(jù)整理)、歸納和規(guī)范化數(shù)據(jù)集、數(shù)據(jù)可視化以及最終應用學習數(shù)據(jù)有關到機器學習模型,該模型可能遵循一種或多種機器學習算法。
在本文中,我們將討論對各種機器學習算法進行分類,這樣可以更輕松地選擇特定算法或推導出適用于給定問題的算法列表。ML 算法的分類在任何方面都不是基礎的。它是一種任意分類,經(jīng)常隨著新算法的發(fā)明和機器學習技術的進一步發(fā)展而改變。盡管如此,分類有助于廣泛理解各種算法,并更清楚地了解它們對不同機器學習問題的適用性。
廣泛分類機器學習算法最廣泛的分類是基于機器學習技術完成的。這也可以作為算法的基本分類,因為幾乎所有種類的算法本質(zhì)上都屬于以下四種機器學習技術之一。
監(jiān)督學習
無監(jiān)督學習
半監(jiān)督學習
強化學習
在監(jiān)督學習中,機器有望提供已知結(jié)果。訓練數(shù)據(jù)已經(jīng)提供了預定義的標簽或結(jié)果。該算法必須識別引用預定義標簽/結(jié)果的訓練數(shù)據(jù)之間的匹配特征或共同特征。訓練后,將相同的特征/屬性與標簽未知數(shù)據(jù)進行比較。
例如,可以為微型計算機提供溫度、光照和濕度的傳感器數(shù)據(jù)集。然后,可以對其進行建模以預測白天或黑夜或估計一天中的時間。在這種情況下,與典型的嵌入式程序例程相比,機器學習模型更有可能提出傳感器故障和傳感器變化,因為機器可以通過嚴格的監(jiān)督學習過程自主處理錯誤的輸入數(shù)據(jù)。經(jīng)過全面的測試和驗證過程后,模型被認為是可部署的
監(jiān)督學習通常解決的兩個最常見的學習問題是分類和回歸。分類處理使用預定義標簽標記輸入數(shù)據(jù)?;貧w處理基于訓練數(shù)據(jù)和已知結(jié)果之間的學習相關性來推導未知輸入數(shù)據(jù)的結(jié)果。導出的結(jié)果是數(shù)值或結(jié)果。
一些屬于監(jiān)督學習的常見機器學習算法包括 K 最近鄰、隨機森林、邏輯回歸、決策樹和反向傳播神經(jīng)網(wǎng)絡。
在無監(jiān)督學習中,機器預計會產(chǎn)生未知的結(jié)果。機器暴露于未標記的原始數(shù)據(jù)樣本,它必須推斷出輸入數(shù)據(jù)中存在的結(jié)構(gòu)。這通常是通過提取相似性或去除冗余來在數(shù)學上完成的。機器學習的結(jié)果不是類別/標簽或數(shù)字輸出;相反,輸出是通過對相似的數(shù)據(jù)樣本進行分組或識別奇數(shù)樣本來提供的。
通過無監(jiān)督學習解決的一些常見問題是聚類、關聯(lián)規(guī)則挖掘和降維。屬于無監(jiān)督學習的一些常見機器學習算法包括 K-均值聚類、Apriori 算法、KNN、層次聚類、奇異值分解、異常檢測、主成分分析、神經(jīng)網(wǎng)絡和獨立成分分析。
在半監(jiān)督學習中,機器使用標記的數(shù)據(jù)集進行訓練,然后暴露于未知數(shù)據(jù)樣本,以推導屬于同一類的數(shù)據(jù)之間的共同特征/關聯(lián)。或者,機器首先在未標記的數(shù)據(jù)上進行訓練以派生出自己的類別,然后通過提供標記的數(shù)據(jù)集來改進訓練。在這兩種情況下,機器都必須預測預期結(jié)果(類別或數(shù)值)以及推斷輸入數(shù)據(jù)中的固有模式。半監(jiān)督學習也處理與監(jiān)督學習相同的問題(即分類和回歸),盡管半監(jiān)督學習的結(jié)果有望更好。
屬于半監(jiān)督學習的一些常見機器學習算法包括連續(xù)性假設、生成模型、拉普拉斯正則化、聚類假設、啟發(fā)式方法、低密度分離、離散正則化、標簽傳播、二次準則和流形假設。
在強化學習中,開發(fā)了一個稱為代理的系統(tǒng)以在特定環(huán)境中進行交互,以便其執(zhí)行某些任務的性能從交互中得到提高。代理從一組預定義的初始策略、規(guī)則或策略開始,然后暴露于特定環(huán)境以觀察環(huán)境及其當前狀態(tài)。基于對環(huán)境的感知,它選擇最佳策略/策略并執(zhí)行操作。為響應每個動作,代理會以獎勵或懲罰的形式從環(huán)境中獲得反饋。它使用懲罰/獎勵來更新其策略/策略,并再次與環(huán)境交互以重復操作。
屬于強化學習的一些常見機器學習算法包括 Q-Learning (State-Action-Reward-State)、SARSA (
State-Action-Reward-State-Action)、Lambda Q-Learning、Lambda SARSA、Deep Q Network , NAF (Normalized Advantage Functions), DDPG (Deep Determinant Policy Gradient), TD3 (Twin Delayed Deep Deterministic Policy Gradient), PPO (Proximal Policy Optimization), A3C (Asynchronous Advantage Actor-Critic Algorithm), SAC (Soft Actor Critic),和 TRPO(Trust Religion Policy Optimization)。
基于學習技術的 ML 算法分類可以根據(jù)它們的功能或相似性進行篩選,給出可用于特定學習問題的可能算法列表。為特定問題選擇特定算法的其余部分取決于入圍算法的內(nèi)在細節(jié)和工作原理,以及開發(fā)人員自己對哪種算法最適合給定問題的判斷。機器學習算法可以根據(jù)功能或相似性入圍如下。
貝葉斯算法這些是專門應用貝葉斯定理解決監(jiān)督學習問題(即分類或回歸)的算法。屬于這一類別的一些算法包括樸素貝葉斯、平均單相關估計器 (AODE)、高斯樸素貝葉斯、多項樸素貝葉斯、貝葉斯網(wǎng)絡 (BN) 和貝葉斯信念網(wǎng)絡 (BNN)。
回歸算法的重點是根據(jù)輸入數(shù)據(jù)導出數(shù)值輸出。機器根據(jù)已知結(jié)果的數(shù)據(jù)進行訓練。訓練完成后,機器會嘗試通過冗余測量結(jié)果預測中的錯誤來改善結(jié)果?;貧w基本上是一個機器學習問題和統(tǒng)計方法,也是一種算法。屬于此類的一些算法包括線性回歸、逐步回歸、邏輯回歸、普通最小二乘回歸、局部估計散點圖平滑 (LOSS) 和多元自適應回歸樣條 (MARS)。
基于實例的算法通常用于解決分類問題。樣本訓練數(shù)據(jù)存儲在數(shù)據(jù)庫中,通過使用各種相似性度量,將輸入數(shù)據(jù)樣本與存儲的實例進行比較。當存儲的實例被標記時,那些與給定實例最匹配的實例被分配到與輸入數(shù)據(jù)樣本相同的類。這也稱為基于記憶的學習。屬于此類的一些算法包括 K 最近鄰 (KNN)、自組織映射 (SOM)、學習向量量化 (LVQ)、支持向量機 (SVM) 和局部加權學習 (LWL)。
正則化算法類似于回歸算法,盡管它們有根據(jù)模型的復雜性對模型進行懲罰的規(guī)定。這樣的算法在概括結(jié)果方面非常出色。屬于此類的一些常見算法包括最小絕對收縮和選擇算子 (LASSO)、最小角度回歸 (LARS)、嶺回歸和彈性網(wǎng)絡。
在決策樹算法中,匹配輸入數(shù)據(jù)的特定和明確定義的屬性以最終得出決策。這些算法非??焖偾腋叨葴蚀_,因為決策是根據(jù)明確定義的參數(shù)逐步做出的。這些算法用于機器人分類和回歸問題。屬于此類的一些常見算法包括決策樹樁、條件決策樹、分類和回歸樹 (CART)、M5、C4.5、C5.0、迭代二分法 3 (ID3) 和卡方自動交互檢測(柴德)。
聚類算法通常旨在解決分類問題。然而,這些算法經(jīng)過調(diào)整以處理未標記的數(shù)據(jù)。他們專注于提取數(shù)據(jù)樣本的固有模式,并將數(shù)據(jù)樣本分組到不同的類中。屬于此類的一些常見算法包括 K-Means、K-Medians、層次聚類和期望最大化 (EM)。
降維算法類似于聚類算法。不同之處在于這些算法不會嘗試在不同的標簽下對數(shù)據(jù)進行分類。相反,這些算法專注于探索內(nèi)在模式,以簡化和總結(jié)數(shù)據(jù)點。這些算法用于解決分類和回歸問題。屬于此類的一些常見算法包括 Sammon 映射、主成分分析 (PCA)、主成分回歸 (PCR)、投影追蹤、偏最小二乘回歸 (PLSR)、多維縮放、線性判別分析 (LDA)、二次方判別分析 (QDA)、混合判別分析 (MDA) 和靈活判別分析 (FDA)。
這些算法側(cè)重于推導控制數(shù)據(jù)變量之間關系的規(guī)則。最流行的關聯(lián)規(guī)則學習算法是 Eclat 算法和 Apriori 算法。
這些算法基于人工神經(jīng)網(wǎng)絡 (ANN) 的使用,用于解決分類和回歸問題。人工神經(jīng)網(wǎng)絡是由多層組成的數(shù)據(jù)結(jié)構(gòu),其中包括輸入層、輸出層和一個或多個隱藏層。隱藏層操縱輸入數(shù)據(jù)以導出數(shù)據(jù)樣本的有用表示。在多個隱藏層中調(diào)整表示,直到在輸入數(shù)據(jù)和輸出值之間建立適當?shù)年P聯(lián)?;镜?ANN 算法包括感知器、反向傳播、Hopfield 網(wǎng)絡、多層感知器、隨機梯度下降和徑向基函數(shù)網(wǎng)絡。實際上,有數(shù)百種這樣的算法。ANN 的靈感來自于生物神經(jīng)網(wǎng)絡的功能,并且具有相似的結(jié)構(gòu)。
深度學習算法也使用人工神經(jīng)網(wǎng)絡;但是,它們不同于傳統(tǒng)的基于 ANN 的算法。深度學習算法經(jīng)過調(diào)整以執(zhí)行大量簡單計算。這些算法通常處理模擬數(shù)據(jù),例如圖像、視頻、文本和傳感器值。一些流行的深度學習算法包括卷積神經(jīng)網(wǎng)絡 (CNN)、遞歸神經(jīng)網(wǎng)絡 (RNN)、深度信念網(wǎng)絡 (DBN)、長短期記憶網(wǎng)絡 (LSTM)、深度玻爾茲曼機 (DBM) 和堆疊自動編碼器。
在這些算法中,多個模型被獨立訓練,并將它們的結(jié)果組合起來得出最終結(jié)果。它們非常強大,因為多個模型被仔細組合以最大限度地提高整體準確性和性能。屬于此類別的一些算法包括隨機 Forrest、梯度提升機 (GBM)、加權平均混合、自舉聚合或裝袋、梯度提升回歸樹 (GBRT)、堆疊、AdaBoost 和提升。
有數(shù)百種算法可用,選擇一種機器學習算法來解決給定問題可能是一項艱巨的任務。通過首先了解機器學習的性質(zhì)或機器學習技術,選擇變得更簡單。可以通過列出所需功能或任務的算法來進一步細化對適當算法的搜索。從那里開始,必須考慮適用性、優(yōu)點、缺點和可用資源以選擇正確的算法。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。