高靈寶,杜銀學,陸江波,馬永軍,杜海平,虎 鑫
(共享智能鑄造產(chǎn)業(yè)創(chuàng)新中心有限公司,寧夏 銀川 750021)
機器學習(Machine Learning,ML)是一門多領域交叉學科,涉及概率論、統(tǒng)計學、逼近論、凸分析、算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現(xiàn)人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能,是人工智能核心,是使計算機具有智能的根本途徑。
機器學習介于多門理論學科之間,對于數(shù)學、統(tǒng)計學、概率論、計算機科學等學科均有較高要求。要想對機器學習的相關算法以及工作原理有深入理解,則需要對以上學科融會貫通,這也是機器學習的難點之一。
機器學習并不是一個新生兒,其成長過程已經(jīng)經(jīng)歷了幾十年,大體可以分為三個階段:
第一階段是20 世紀40年代至60年代的萌芽期,這一時期產(chǎn)生了最早的人工神經(jīng)網(wǎng)絡,赫布學習規(guī)則,圖靈測試等一系列標志性事件,也標志著機器學習這一概念的誕生;
第二階段是20 世紀60年代至80年代的探索期,這一時期機器學習的理論研究相對超前,產(chǎn)生了KNN 最鄰近算法(the Nearest Neighbor Algorithm),決策樹算法,BP 和MLP 神經(jīng)網(wǎng)絡算法等,但相比理論研究,計算機硬件的發(fā)展則相對緩慢,不能很好地將理論研究轉化為實際應用,在一定程度上限制了機器學習的發(fā)展;
第三階段是20 世紀90年代至今的高速發(fā)展期,隨著計算機硬件性能的飛速發(fā)展,計算機運算速度在集成電路不斷發(fā)展的助推下,有了質的飛躍。互聯(lián)網(wǎng)產(chǎn)業(yè)的崛起則為機器學習插上了新的翅膀,大量的數(shù)據(jù)為機器學習的分析研究提供了理論基礎。這一時期,涌現(xiàn)了Boosting 算法、SVM 向量機算法、隨機森林算法、深度學習(Deep Leaning)等,而深藍人機國際象棋大賽和AlphaGo 人機圍棋大戰(zhàn)的出現(xiàn),使得人們對機器學習有了更加清晰的認識,機器學習自此走出了瓶頸期,邁上了新的發(fā)展階段。
目前,主流的機器學習算法可以歸類為:監(jiān)督學習、無監(jiān)督學習和強化學習。
監(jiān)督學習(有導師學習):輸入數(shù)據(jù)中有導師信號,以概率函數(shù)、代數(shù)函數(shù)或人工神經(jīng)網(wǎng)絡為基函數(shù)模型,采用迭代計算方法,學習結果為函數(shù)[1]。
監(jiān)督學習主要包括分類和回歸。當輸出被限制為有限的一組值(離散數(shù)值)時使用分類算法;當輸出可以具有范圍內的任何數(shù)值(連續(xù)數(shù)值)時使用回歸算法。相似度學習是與分類和回歸都密切相關的一類監(jiān)督機器學習,它的目標是使用相似性函數(shù)從樣本中學習,這個函數(shù)可以度量兩個對象之間的相似度或關聯(lián)度。它在排名、推薦系統(tǒng)、視覺識別跟蹤、人臉識別等方面有很好的應用場景。
無監(jiān)督學習(無導師學習):輸入數(shù)據(jù)中無導師信號,采用聚類方法,學習結果為類別。典型的無導師學習有發(fā)現(xiàn)學習、聚類、競爭學習等[1]。
在無監(jiān)督學習中給定的數(shù)據(jù)是和監(jiān)督學習中給定的數(shù)據(jù)是不一樣的,數(shù)據(jù)點沒有相關的標簽。相反,無監(jiān)督學習算法的目標是以某種方式組織數(shù)據(jù),然后找出數(shù)據(jù)中存在的內在結構。這包括將數(shù)據(jù)進行聚類,或者找到更簡單的方式處理復雜數(shù)據(jù),使復雜數(shù)據(jù)看起來更簡單。
強化學習(增強學習):以環(huán)境反慣(獎/ 懲信號)作為輸入,以統(tǒng)計和動態(tài)規(guī)劃技術為指導的一種學習方法[1]。
強化學習的主要特點是通過試錯來發(fā)現(xiàn)最優(yōu)行為策略,將沒有帶標簽的數(shù)據(jù)作為訓練數(shù)據(jù),但這并不意味著根本沒有監(jiān)督信息。系統(tǒng)根據(jù)強化學習程序運行,在獲得所需結果時給出稱為獎勵的信號。例如,在機器人的步行控制中,可以走的距離就是獎勵。在圍棋的比賽程序中,贏或輸?shù)慕Y果就是獎勵。失敗時的獎勵是負值,也稱為懲罰。
機器學習是建立在理論算法之上的,機器學習算法為機器學習的不斷發(fā)展提供了理論基礎。
線性回歸所表示的是描述一條直線的方程Y=A+BX,通過輸入變量的特定權重系數(shù)(B)來找出輸入變量(x)和輸出變量(y)之間最適合的映射關系。
例如:給定輸入,可以預測出輸出變量(y)的值。線性回歸學習算法的目標是找到系數(shù)(B)和(A)的值,有一個(x)的觀測值,就可得到一個(y)的估計值。
找出數(shù)據(jù)的線性回歸模型有多種不同的技巧,例如將線性代數(shù)解用于普通最小二乘法和梯度下降優(yōu)化問題。在機器學習領域,線性回歸可能是最簡單,最容易理解的算法之一。
邏輯回歸來自統(tǒng)計學領域,是一種可以用在二元分類問題上的方法。邏輯回歸,和線性回歸相似,都是要找出輸入值的系數(shù)權重。不同的地方在于,對輸出值的預測改成了邏輯函數(shù)。邏輯函數(shù)看起來像字母S,輸出值的范圍是0 到1.把邏輯函數(shù)的輸出值加一個處理規(guī)則,就能得到分類結果,非0 即1.比方說,可以規(guī)定輸入值小于0.5,那么輸出值就是1.
這個算法還可以用來預測數(shù)據(jù)分布的概率,適用于需要更多數(shù)據(jù)論證支撐的預測。和線性回歸相似,如果把和輸出不相干的因子或者相近的因子剔除掉的話,邏輯回歸算法的表現(xiàn)會更好。對于二元分類問題,邏輯回歸是個可快速上手又有效的算法。
決策樹算法最早產(chǎn)生于20 世紀60年代,是一種最逼近離散函數(shù)值的方法。它是一種典型的分類方法,首先對數(shù)據(jù)進行處理,利用歸納的算法生成可讀的規(guī)則和決策樹,然后使用決策樹對數(shù)據(jù)進行分析[2]。在決策樹算法中,訓練模型是通過學習樹表示的決策規(guī)則來學習和預測目標變量值的,而樹是由具有相應屬性的節(jié)點組成的,本質上決策樹是通過一系列規(guī)則對數(shù)據(jù)進行分類的過程。
樸素貝葉斯算法是基于貝葉斯定理的一類算法,貝葉斯定理是關于隨機事件A 和B 的條件概率(或邊緣概率)的一則定理。其表述是:其中P(A|B)是在B 發(fā)生的情況下A 發(fā)生的可能性。比如,要預測下個月商場雨傘大賣的可能性,你可能想知道下個月的天氣情況。
樸素貝葉斯分類器算法假設兩個事件是彼此獨立的,這在很大程度上簡化了計算。然而,特征并不總是獨立的,這通常被視為樸素貝葉斯算法的缺點。簡而言之,樸素貝葉斯算法允許我們使用概率給出一組特征來預測一個類。最初,樸素貝葉斯定理只是想被用于進行學術研究,但現(xiàn)在看來,它在現(xiàn)實世界中也表現(xiàn)出色。
KNN 最近鄰算法,是機器學習當中最簡單的方法之一,其設計思想與中國成語“人以類聚,物以群分”類似,KNN 最近鄰算法的核心思想是,如果一個樣本在特征空間中的k 個最相鄰的樣本中的大多數(shù)屬于某一個類別,則改樣本也屬于這一類別[2]。k的選擇很關鍵,k 太小可能導致結果噪聲太大、準確性降低,而太大的k 值又是不可行的。KNN 算法常用于分類,同時也適用于回歸問題。
SVM 支持向量機是優(yōu)秀的二分類機器學習算法之一,是通過某種事先選擇好的非線性映射將輸入向量a 映射到一個高維特定空間Z,在這個高維空間中構建分類超平面,找到一個特殊的超平面,使正例和反例樣本之間的分離界限達到最大,從而得到最優(yōu)超平面。在最優(yōu)超平面的兩側建立兩個相互平行的超平面,最優(yōu)超平面使得兩個平行超平面的間距最大,平行超平面的間的間距越大,則分類器的誤差就越小。支持向量機是目前最強大的分類容器之一,在實際應用過程中,人們采用一種優(yōu)化算法來尋找間隔最大化的系數(shù)。
隨機森林是一種非常流行的集成機器學習算法。這個算法的基本思想是,通過投票機制產(chǎn)生結果,通過征集多數(shù)人的意見得到更加準確的結果。在隨機森林法中,我們使用了決策樹集成。為了對新對象進行分類,我們從每個決策樹中進行投票,并結合結果,然后根據(jù)多數(shù)投票做出最終決定。也就是說,在數(shù)據(jù)中取出大量的樣本,計算均值,然后對每次取樣計算出的均值再取平均,從而得到對所有數(shù)據(jù)的真實均值更好的估計。
在訓練過程中,每個決策樹都是基于訓練集的引導樣本來構建的。在分類過程中,輸入實例的決定是根據(jù)多數(shù)投票做出的。
Boosting 是一種提高任意給定學習算法準確度的方法,其思想源于Valiant 提出的PAC(Probably Approximately Correct)學習模型。不需構造高精度的回歸分析,只需一個粗糙的基礎算法即可,再反復調整基礎算法就可以得到較好的組合回歸模型。它可以將弱學習算法提高為強學習算法,可以應用到其它基礎回歸算法,如線性回歸、神經(jīng)網(wǎng)絡等,來提高精度[3]。
AdaBoost 算法是Boosting 算法的一種,是其最成功的代表,AdaBoost 是一種迭代算法,其核心思想是針對訓練集訓練不同的弱分類器,然后將這些弱分類器集合起來,構成一個強分類器。AdaBoost主要用來解決分類問題,同時也可以用于解決回歸問題。
人工神經(jīng)網(wǎng)絡(ANN)可以處理大型復雜的機器學習任務。神經(jīng)網(wǎng)絡本質上是一組帶有權值的邊和節(jié)點組成的相互連接的層,稱為神經(jīng)元。在輸入層和輸出層之間,我們可以插入多個隱藏層。人工神經(jīng)網(wǎng)絡使用了兩個隱藏層。除此之外,還需要處理深度學習。
人工神經(jīng)網(wǎng)絡的工作原理與大腦的結構類似。一組神經(jīng)元被賦予一個隨機權重,以確定神經(jīng)元如何處理輸入數(shù)據(jù)。通過對輸入數(shù)據(jù)訓練神經(jīng)網(wǎng)絡來學習輸入和輸出之間的關系。在訓練階段,系統(tǒng)可以訪問正確的答案。如果網(wǎng)絡不能準確識別輸入,系統(tǒng)就會調整權重。經(jīng)過充分的訓練后,它將始終如一地識別出正確的模式。
本文針對機器學習的基本概念、發(fā)展歷程、分類和部分主流算法進行了相關介紹。機器學習是一項門檻較高的科學技術,要想在機器學習領域取得較好發(fā)展,則需要有全面的知識儲備和綜合應用能力。
目前,機器學習的發(fā)展剛剛起步,由于理論研究和硬件基礎的限制仍處于弱人工智能階段。未來隨著科技的不斷發(fā)展,機器學習必將引領新的技術革命。推動機器學習的不斷發(fā)展,正確應用機器學習技術才能使其更好地造福人類,為我們向往的美好生活創(chuàng)造新的價值。