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