機器學習,從人工智慧起源,它讓機器實現傳統程式設計無法做到的能力,如:自動駕駛、人臉識別、計算機視覺、資料探勘等。
機器學習的演算法,是一段程式碼,可幫助使用者探索、分析、尋找複雜資料集中的意義。每種演算法都是一組能明確指示,讓電腦依照步驟達到特定目標。
在機器學習模型中,主要目標是要建立或探索,讓使用者進行預測或分類資訊的模式。演算法使用以訓練資料為基礎的參數,而所謂的訓練資料是代表較大型集合的資料。隨著訓練資料的擴充,演算法可算出更精確的結果。
而不同演算法也會使用不同方式來分析資料,通常依據使用何種機器學習技術來分組,有四種學習方式:監督式學習、非監督式學習、半監督式學習和增強式學習。最常使用的演算法則使用迴歸和分類來預測目標類別、找出不尋常的資料點、預測值,以及探索相似之處。
以下將分為兩部分進行介紹,一是學習方式、二是演算法的類似性。
學習方式
將演算法按照學習方式分類,能讓人在建模和演算法選擇時,考慮該如何輸入資料,選擇最合適的演算法,獲得最好的結果。我們在Q29有談及這四種學習方式,以下將針對它們進行更深入的說明。
1、監督式學習 Supervised Learning(給數據、給標籤)
在訓練電腦的過程中,有給標準答案,類似於認知感知中的「概念學習」(concept learning)。
在監督學習中,輸入資料被稱為「訓練資料」,每組訓練資料有一個明確的類標。建立預測模型的時候,監督學習建立一個學習過程,將預測結果與「訓練資料」的結果相比,不斷調整預測模型,直到模型的預測結果達到一個預期的準確率。
- 常見應用場景:分類、迴歸分析
- 常見演算法:線性回歸、邏輯回歸、神經網路、SVMs
2、非監督式學習 Un-supervised learning(給數據,沒給標籤)
沒有給電腦標準答案,只提供範例,讓它自己在範例中找到潛在規則。
在非監督學習中,資料沒有被特別標籤,學習模型是為了推斷出資料的內在結構。
- 常見的應用場景:關聯規則的學習、集群。
- 常見演算法:K-means、叢集分析 Clustering、Principal Component Analysis、Anomaly Detection
3、半監督式學習 Semi-supervised learning
介於監督學習與非監督學習之間,會先將有標籤資料、無標籤資料,畫出分界線,再將無標籤資料依據整體分佈,調整出兩大類的新分界。
少部分資料有標準答案,可提供機器學習輸出時,判斷誤差使用。但多數資料仍沒有標準答案,機器必須自己尋找答案。但此方法預測時比較精準,目前最常被使用。
在此學習方式下,輸入資料部分被標籤,部分沒有。這種學習模型用來進行預測,但模型需要先學習資料的內在結構,才能讓組織資料合理地進行預測。
- 應用場景:分類、迴歸
- 演算法:圖論推理演算法 Graph Inference 、拉普拉斯支援向量機 Laplacian SVM.
*註:一些對常用監督式學習演算法的延伸,這些演算法首先試圖對未標識資料進行建模,在此基礎上再對標籤的資料進行預測。
4、增強式學習 Reinforcement learning(透過環境和經驗修正)
在增強學習中,輸入資料作為對模型的反饋,不像監督模型那樣,輸入資料只是作為一個檢查模型對錯的方式。在增強學習中,輸入資料直接反饋到模型,模型必須對此立刻作出調整。
- 常見的應用場景:動態系統、機器人控制
- 常見演算法:Q-Learning、時間差學習 Temporal difference learning
在企業資料應用的場景下, 人們最常用的可能就是監督式學習和非監督式學習的模型。 在影像識別等領域,由於存在大量的非標籤的資料和少量的可標籤資料, 目前半監督式學習是熱門話題,而強化學習更多應用在機器人控制及其他需要進行系統控制的領域。
使用機器學習演算法達到的目標
使用機器學習演算法,可協助回答過於複雜而無法透過手動分析來回答的問題。雖然機器學習演算法有不同類型,但是使用案例通常是以下這幾種方式。
1、預測目標分類
(1) 二元分類演算法
將資料分為兩個類別,這些演算法適用於只有兩個彼此互斥答案的問題,包括「是/否」問題。
如:
- 這個輪胎會在接下來的 1,000 英哩發生故障嗎:是或否?
- 哪個能吸引更多的推薦次:1000元台幣或85折?
(2) 多元分類演算法
將資料分為三個或更多類別,這些演算法適用於有互斥的三個或更多可能解答的問題。
如:
- 大部分的旅客會在哪一個月購買航空公司機票?
- 這張相片中的人有什麼表情?
2、找出不尋常的資料點
異常偵測演算法能識別出定義為「正常」參數以外的資料點。
如,可以使用異常偵測演算法來回答如下問題:
- 此批次中哪些部分有缺陷?
- 哪些信用卡交易可能是詐騙?
3、預測價值
迴歸演算法可根據歷程記錄資料,來預測新資料點的值。這些演算法可協助您回答如下問題:
- 在我居住的城市,普通兩間臥室的住家,明年的價格會是多少?
- 有多少病患會在星期二進入診所?
4、查看值在一段時間內的變化
時間序列演算法顯示指定值在一段時間內的變化。
有了時間序列分析和時間序列預測,可以在一段時間內定期收集資料,用這些資料來預測並識別趨勢、季節性、週期性和不規則性。
時間序列演算法可用於回答以下這類問題:
- 特定股票的股價,在明年可能會漲或跌?
- 明年支出費用的情形為何?
5、探索相似處
叢集演算法可判斷資料點之間的相似性等級,將資料分為多個群組。叢集演算法適用於回答下列問題:
- 哪些觀眾喜歡同一種類型的電影?
- 哪些印表機型號故障的情況相同?
6、分類
分類演算法使用預測計算,將資料指派給預設的分類。
分類演算法透過輸入資料進行訓練,並可用於回答以下這類問題:
- 這封電子郵件是垃圾郵件嗎?
- 特定文字屬於何種情感 (正面、負面或中性)?
演算法類似性
1、迴歸演算法
線性迴歸演算法,是試圖採用對誤差的衡量來探索變數間的關係的一類演算法,該線條通常會以平方誤差成本函式來計算。線性迴歸是最熱門的迴歸分析類型之一。
在機器學習領域,人們說起迴歸,有時候指一類問題,有時候指一類演算法,常常會使初學者有所困惑。
- 常見的迴歸演算法:最小二乘法 Ordinary Least Square、邏輯迴歸 Logistic Regression、逐步式迴歸 Stepwise Regression、多元自適應迴歸樣條 Multivariate Adaptive Regression Splines、本地散點平滑估計Locally Estimated Scatterplot Smoothing
2、基於核的演算法
基於核的演算法中最著名的是支援向量機(SVM)。 基於核的演算法把輸入資料對應到高階的向量空間, 在高階向量空間裡,有些分類或回歸問題能夠更容易解決。
- 常見的基於核的演算法:支援向量機 Support Vector Machine,SVM、徑向基函式 Radial Basis Function,RBF、線性判別分析 Linear Discriminate Analysis ,LDA
SVM具高準確度,為避免過擬合提供很好的理論保證,而且就算資料在原特徵空間線性不可分,只要給合適的核函式,就能執行得很好。可惜記憶體消耗大,難以解釋,而隨機森林卻剛好避開這些缺點,比較實用。
優點
- 解決高維問題,即大型特徵空間
- 能處理非線性特徵的相互作用
- 無需依賴整個資料
- 可以提高泛化能力
缺點
- 當觀測樣本很多時,效率不是很高
- 對非線性問題沒有通用解決方案,有時很難找到合適的核函式
- 對缺失資料敏感
3、集群演算法
集群,就像迴歸一樣,有時候人們描述的是一類問題,有時候描述的是一類演算法。
集群演算法通常按照中心點或者分層的方式對輸入資料進行歸併。所以集群演算法都試圖找到資料的內在結構,以便按照最大的共同點將資料進行歸類。
常見的集群演算法: k-Means演算法、期望最大化演算法 Expectation Maximization,EM
4、降維演算法
像集群演算法一樣,降低維度演算法試圖分析資料的內在結構,不過降低維度演算法是以非監督學習的方式試圖利用較少的資訊來歸納或者解釋資料。
這類演算法可以用於高維資料的視覺化或者用來簡化資料以便監督式學習使用。
- 常見的演算法:主成份分析 Principle Component Analysis, PCA、偏最小二乘迴歸 Partial Least Square Regression,PLS
5、關聯規則學習
關聯規則學習通過尋找最能夠解釋資料變數之間關係的規則,來找出大量多後設資料集中有用的關聯規則。
- 常見的演算法:Apriori演算法、Eclat演算法
6、整合學習演算法
整合演算法用一些相對較弱的學習模型獨立就相同的樣本進行訓練,再把結果整合進行整體預測。
整合演算法的主要困難在於究竟整合哪些獨立的較弱的學習模型及如何把學習結果整合起來,這是非常強大且熱門的演算法。
- 常見的演算法:Boosting、Bootstrapped Aggregation(Bagging)、 AdaBoost、隨機森林 Random Forest(競賽中多用到該類演算法,效果較好)
7、基於例項的演算法
基於例項的演算法常用來對決策問題建立模型,模型先選取一批樣本資料,再根據某些相似性把新資料與樣本資料相比,以這種方式來尋找最佳配對。因此,基於例項的演算法常常被稱為「通吃」學習或者「基於記憶的學習」。
- 常見的演算法: k-Nearest Neighbor(KNN)、學習向量量化(Learning Vector Quantization, LVQ)、自組織對映演算法(Self-Organizing Map , SOM)
8、決策樹學習
決策樹演算法依資料屬性採用樹狀結構建立決策模型, 決策樹模型用來解決分類和迴歸問題。
利用不同數據特性的值分成不同的分支,像一棵樹上的樹枝一般。
如:銀行在決定是否要貸款給某客戶時,會透過一系列的問題以判斷最終決策。
決策樹利用同樣的架構,不斷地拆分數據的特性(遞迴區分),直到持續分出分枝將不會提供任何價值為止。此種特性也讓決策樹在面對高維數據時,依然有可觀的正確率。
- 常見的演算法:分類及迴歸樹(Classification And Regression Tree, CART)、 ID3 (Iterative Dichotomiser 3)、C4.5、隨機森林(Random Forest)
9、貝葉斯方法
貝葉斯方法演算法是基於貝葉斯定理的一類演算法,主要用來解決分類和迴歸問題。
- 常見的演算法:樸素貝葉斯演算法,Bayesian Belief Network(BBN)
10、人工神經網路
人工神經網路演算法模擬生物神經網路,是模式匹配演算法,常用於解決分類和迴歸問題。它是機器學習的一個龐大的分支。
- 重要的人工神經網路演算法:感知器神經網路(Perceptron Neural Network)、反向傳遞(Back Propagation)、 Hopfield網路、自組織對映(Self-Organizing Map, SOM)。
優點:
- 分類的準確度高
- 並行分佈處理能力強、分佈儲存及學習能力強
- 對噪聲神經有較強的容錯能力、能充分逼近複雜的非線性關係
- 具備聯想記憶的功能
缺點:
- 需要大量的引數,如:網路拓撲結構、權值和閾值的初始值
- 不能觀察之間學習過程,輸出結果難以解釋,會影響到結果的可信度和可接受程度
- 學習時間過長,可能達不到學習目的
11、深度學習
- 常見的深度學習演算法:受限波爾茲曼機(Restricted Boltzmann Machine, RBN)、Deep Belief Networks(DBN)、卷積網路(Convolutional Network)、堆疊式自動編碼器(Stacked Auto-encoders)。
發展至目前,最成功的當屬CNN和LSTM。
想成為爬蟲工程師 、資料分析師 、資料工程師 、資料分析領域專家 、人工智慧產品經理嗎?還是你的公司正需要培養此領域人才呢?
點我了解 AI資料科學家-三階段全方位學程班 👉 https://www.tibame.com/eventpage/ai_datascientist
每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。
若想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或有其他想了解的主題歡迎在下方留言讓我們知道唷!
緯育TibaMe FB
企業人才數位轉型FB
企業AI、數位人才or平台培訓方案請點選
參考資料