- 現代決策樹模型及其編程實踐:從傳統決策樹到深度決策樹
- 黃智瀕編著
- 4313字
- 2022-08-12 16:11:22
1.6.1 機器學習算法的類型
根據處理方法、輸入和輸出的數據類型以及要解決的任務或問題的類型,機器學習算法可以大致分為如下五類。
1.6.1.1 有監督學習
有監督學習(supervised learning)算法[23][25-26]對一組數據建立一個數學模型,該數據既包含輸入,又包含期望的輸出。該數據稱為訓練數據,由一組訓練實例組成。每個訓練實例都有一個或多個輸入和所需的輸出,也稱為監督信號。在數學模型中,每個訓練實例用數組或向量表示,有時也稱為特征向量,訓練數據用矩陣表示。通過對目標函數的迭代優化,有監督學習算法可學習到一個用來預測與新輸入相關聯的輸出的函數,最優的函數將做到使算法能正確地確定不屬于訓練數據的輸入的輸出。對于能夠隨著時間的推移提高其輸出或預測準確性的算法,我們稱其已經學會了執行該任務。
有監督學習算法的類型包括分類和回歸等。分類算法用于輸出被限制在一組有限取值的情況,回歸算法用于輸出可能在一個范圍內有無限取值的情況。舉個例子,對于一個過濾郵件的分類算法,輸入是一封收到的郵件,輸出是郵件歸檔的文件夾名稱。
相似性學習是有監督機器學習的另一個領域,與回歸和分類密切相關,但目標是使用相似性函數從例子中學習,該函數衡量的是兩個對象的相似度或相關性。相似性學習在排名、推薦系統、視覺身份追蹤、人臉驗證和語音識別等方面都有應用。
使用最廣泛的有監督學習算法包括支持向量機、線性回歸、logistic回歸(邏輯回歸)、樸素貝葉斯、線性判別分析、決策樹、K近鄰算法、神經網絡(多層感知器)、相似性學習等。
如果特征向量包括許多不同種類的特征(離散、離散有序、計數、連續值),則有些算法比其他算法更容易應用。采用距離函數的方法對此特別敏感。決策樹的一個優點是很容易處理這類異質數據。
如果每個特征對輸出都有獨立的貢獻,那么基于線性函數(如線性回歸、邏輯回歸、支持向量機、樸素貝葉斯)和距離函數(如最近鄰方法、帶有高斯核的支持向量機)的算法一般表現良好。然而,如果特征之間存在復雜的相互作用,那么決策樹和神經網絡等算法的效果更好,因為它們是專門為發現這些相互作用而設計的。線性方法也可以應用,但必須手動指定這些交互作用。
1.6.1.2 無監督學習
無監督學習(unsupervised learning)算法[27]采用一組只包含輸入的數據,并在數據中找到結構,如數據點的分組或聚類。因此,算法需要從尚未標記或分類的測試數據中學習。無監督學習算法不是對反饋做出反應,而是識別數據中的共性,并根據每個新數據中是否存在這種共性做出反應。無監督學習的一個核心應用是在統計學中的密度估計領域,如尋找概率密度函數。無監督學習也應用于其他涉及總結和解釋數據特征的領域。下面介紹幾種常用的無監督學習方法。
主成分分析(Principal Components Analysis,PCA)是一種統計分析、簡化數據集的方法。它利用正交變換來對一系列可能相關的變量的觀測值進行線性變換,從而投影為一系列線性不相關變量的值,這些不相關變量稱為主成分(principal component)。具體地,可將主成分看作一個線性方程,其包含一系列線性系數來指示投影方向。PCA對原始數據的正則化或預處理敏感(相對縮放)。
主成分分析由卡爾·皮爾遜于1901年發明,用于分析數據及建立數理模型,在原理上與主軸定理相似。之后在1930年左右由哈羅德·霍特林獨立發展并命名。依據應用領域的不同,在信號處理中也叫作離散K-L轉換[discrete Karhunen-Loève Transform(KLT)]。其方法主要是通過對協方差矩陣進行特征分解,以得出數據的主成分(即特征向量)與權值(即特征值)。PCA提供了一種降低數據維度的有效辦法,如果分析者在原數據中除掉最小的特征值所對應的成分,那么所得的低維度數據必定是最優化的。主成分分析在分析復雜數據時尤為有用。
聚類分析是將一組觀測值分配成子集(稱為聚類),使同一聚類內的觀測值按照一個或多個預先指定的標準相似,而從不同聚類中抽取的觀測值則不相似。不同的聚類技術對數據的結構做出了不同的假設,通常由一些相似度量來定義,并通過內部緊湊性(或同一聚類成員之間的相似性)和分離度(聚類之間的差異)來評估。其他方法還包括基于估計密度和圖的連通性。常見的聚類方法包括層次聚類、K均值、混合模型、DBSCAN和OPTICS算法等。
關聯規則學習是一種基于規則的機器學習方法,用于發現數據之間的有趣關系。它的目的是利用一些有趣的測量來識別和發現其中的強規則。基于強規則的概念,Rakesh Agrawal、Tomasz Imieliński和Arun Swami引入了關聯規則,用于發現超市銷售點POS系統記錄的大規模交易數據中產品之間的規律性。最經典的關聯規則案例是購物車分析。關聯規則如今還被應用于許多領域,包括Web使用挖掘、入侵檢測、連續生產和生物信息學。與序列挖掘相比,關聯規則學習通常不考慮交易內或跨交易的物品順序。研究者已經提出了許多生成關聯規則的算法,例如Apriori、Eclat和FP-Growth等。
序列模式挖掘是數據挖掘中的一個主題,通常也采用無監督學習方式,關注的是在數據實例之間尋找統計學上相關的模式。其中的值是以序列的方式傳遞的,通常假定值是離散的,因此時間序列挖掘與之密切相關,但通常被認為是另一種不同的機器學習任務。一般來說,序列挖掘問題可以分為基于字符串處理算法的字符串挖掘和基于關聯規則學習的項集挖掘。局部過程模型將序列模式挖掘擴展到更復雜的模式,除了序列排序構造外,還可以包括(排他性)選擇、循環和并發構造等。
無監督學習方法還包括一些學習潛變量模型的方法,如期望最大化(EM)算法、獨立成分分析、非負矩陣因子化、奇異值分解等方法。期望最大化算法(expectation-maximization algorithm)在概率模型中尋找參數最大似然估計或者最大后驗估計,其中概率模型依賴于無法觀測的隱變量。它采用兩個步驟交替進行計算:第一步是計算期望(E),利用對隱變量的現有估計值,計算其最大似然估計值;第二步是最大化(M),利用E步中求得的最大似然值來計算參數的值;M步中求得的參數估計值被用于下一個E步計算中,這個過程不斷交替進行。
1.6.1.3 半監督學習
半監督學習(semi-supervised learning)[24]介于無監督學習(沒有任何標記的訓練數據)和有監督學習(有完全標記的訓練數據)之間,有些訓練實例是缺少標簽的。然而很多機器學習研究者發現,無標簽的數據與少量有標簽的數據配合使用,可以使學習精度得到相當大的提高。在現實世界中,高質量的有標記訓練數據需求往往被證明是一個組織或行業內應用機器學習模型的重大障礙。這種瓶頸效應表現在:
●標簽數據數量不足。當機器學習技術最初用于新的應用或行業時,往往沒有足夠的訓練數據。在這種情況下,如果不等待數年的積累,獲取訓練數據可能是不切實際的、昂貴的甚至是不可能的。
●缺乏足夠的專業知識來標記數據。當標記訓練數據需要特定的相關專業知識時,創建一個可用的訓練數據集可能會很快變得非常昂貴。例如,在機器學習的生物醫學或安全相關應用中,這個問題很可能發生。
●沒有足夠的時間來標記和準備數據。實現機器學習所需的大部分時間都花在了準備數據集上,當一個行業或研究領域處理的問題從本質上來說發展較快時,不可能足夠快地收集和準備數據,使結果在現實世界的應用中有用。例如,這個問題可能發生在欺詐檢測或網絡安全應用中。
因此,半監督學習是現實機器學習應用中經常采用的一種途徑。
在弱監督學習中,訓練標簽是嘈雜的、有限的或不精確的;然而,這些標簽的獲取成本通常較低,從而可產生較大的有效訓練集,因此,弱監督學習也歸屬于半監督學習類型。這種方法減輕了獲得手工標記數據集的負擔,取而代之的是,在理解訓練標簽并不完美的情況下,采用廉價的弱標簽,但還是可以創建出一個強大的預測模型。
主動學習是半監督學習的一種特殊情況,該學習算法可以交互式地查詢用戶(或其他信息源),將新的數據點標記為所需的輸出。在統計學文獻中,有時也稱之為最優實驗設計,用戶或信息源也稱為教師。有些情況下,未標記的數據很多,但人工標記的成本很高。在這種情況下,學習算法可以主動查詢教師的標簽。這種類型的迭代監督學習被稱為主動學習。由于是由學習者來選擇例子,因此學習一個概念所需的例子數量往往比普通有監督學習所需的數量低很多。但采用這種方法時,算法有可能被無信息的例子淹沒。最近的發展致力于多標簽主動學習,混合主動學習和單通道(在線)環境下的主動學習,將機器學習領域的概念與在線機器學習領域的自適應、增量學習策略相結合。
1.6.1.4 強化學習
強化學習(reinforcement learning)[28-30]涉及軟件智能體在環境中應該如何采取行動,以使某種累積報酬的概念最大化。由于其通用性,強化學習在許多其他學科中都有研究,如博弈論、控制理論、運籌學、信息論、基于模擬的優化、多智能體系統、蜂群智能、統計學和遺傳算法等。在運籌學和控制理論研究的語境下,強化學習被稱作近似動態規劃(Approximate Dynamic Programming,ADP)。在最優控制理論中也有對這個問題的研究,雖然大部分的研究是關于最優解的存在和特性,并非學習或者近似方面。在經濟學和博弈論中,強化學習被用來解釋在有限理性的條件下如何出現平衡。強化學習算法被用于自主車輛或學習與人類對手進行游戲。
強化學習與監督學習的不同之處在于不需要呈現有標簽的輸入/輸出對,也不需要明確糾正次優動作。相反,強化學習的重點是在探索(未知領域)和利用(現有知識)之間找到平衡點。環境通常以馬爾可夫決策過程(MDP)的形式來陳述,因為許多針對這種情況的強化學習算法都使用了動態規劃技術。經典的動態規劃方法與強化學習算法的主要區別在于,后者不假設對MDP的精確數學模型的了解,它們針對的是精確方法變得不可行的大型MDP。
常見的強化學習方法有Monte Carlo、Q-learning、SARSA、DQN、DDPG、A3C、NAF、TRPO、PPO、TD3、SAC等。
1.6.1.5 自學習
自學習(self learning)[31]作為一種機器學習范式在1982年被引入,同時引入了一種能夠自學習的神經網絡,命名為交叉開關自適應陣列(Crossbar Adaptive Array,CAA)——一種沒有外部獎勵和外部教師建議的學習。CAA自學習算法計算關于行動的決定和關于后果情況的情緒(感受)。該系統由認知和情感之間的相互作用驅動自學習算法更新一個記憶矩陣W=‖w(a,s)‖。
自編碼器[32]也是一種自學習的方法,它是一個神經網絡,可以學習將輸入復制到輸出。它有一個內部(隱藏)層,描述了用于表示輸入的編碼。它由兩個主要部分組成:將輸入映射到編碼的編碼器,以及將編碼映射到輸入的重建(輸出)的解碼器。自編碼器的目的是通過訓練網絡忽略信號“噪聲”來學習一組數據的表示(編碼),通常是為了降低維度。存在諸多自編碼器的變體,目的是迫使學習到的表征能刻畫輸入數據的有用屬性,例如正則化自編碼器(稀疏、去噪和收縮),它能有效地學習表征并用于后續的分類任務[3]。自編碼器的想法在神經網絡領域已經流行了幾十年,最早的應用可以追溯到20世紀80年代。自編碼器的傳統應用是維度約簡或特征學習,但自編碼器概念更廣泛地用于學習數據的生成模型。21世紀10年代,一些強大的人工智能開始涉及堆疊在深度神經網絡內部的稀疏自編碼器。