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