機器學習入門指引

    機器學習,作爲門時髦、熱門的計算機應用技術,特別是隨着深度學習的流行,推動“大數據+深度模型”的模式,爲人工智能和人機交互的發展提供巨大的空間。

    和數據挖掘一樣,利用大量的數據分析建立有效的模型以便提供分類或者決策支持,機器學習也是利用經典的算法(聚類,SVM,神經網絡,深度學習等)建立數據模型,不同的是機器學習偏向於算法的設計;更直接的說,機器學習,就是一些建立模型進行數據分析的算法包。

    作爲典型的機器學習的方法,人工神經網絡模型的應用經典而又廣泛。NN(neural network)的一般步驟是將數據樣本作爲輸入,提取數據特徵然後訓練NN模型,再將模型應用在測試數據集上得到輸出。研究機器學習的一般步驟,類似於NN,需要補充的是提取數據特徵後選取的算法包含很多,例如,決策樹、貝葉斯分類器、SVM等。

    下面分別簡單講講各種典型的機器學習的方法:

    1.決策樹

    決策樹的設計是根據思維邏輯來模擬出樹狀的圖形,其樣本最明顯的屬性特徵設爲根節點,分支分別代表着屬性的值,葉子節點代表着分類的結果。

    其算法設計思路是利用信息熵理論找出屬性的明顯性,將最明顯的屬性特徵設爲根節點,然後根據這個屬性的不同值進行分支,得到新節點,如果新節點能較好模擬出分類結果;如果得不到分類結果,繼續以新的節點迭代上述過程。

    算法設計中遇到的問題,首先是如何根據信息熵理論得到最明顯的屬性?

    熵,在不同領域代表着不用的具體含義。在物理學,熵,指的是大量微粒在空間的位置和速度的分佈密度的體現,熵越大,粒子的無序性越明顯;在香農的信息論中,信息熵指的是信息的不確定性,其定義是  E(S)=-P(S1)*log(P(S1))-P(S2)*log(P(S2)),  其中集合S包含兩個集合S1和S2,對應的概率分別是P(S1)和P(S2)。在熵理論中,信息的增加意味着不確定性的減少,也就是熵的減小;信息增益在諸多系統中定義爲:在某一個操作之前的系統熵與操作之後的系統熵的差值也即是不確定性的減小量。將信息熵的增益理論用在決策樹的劃分上面,通過比較屬性劃分後的信息熵增益,比較明顯性。

    其次遇到的問題是分類結果的過擬合問題?

    過擬合,主要指對於某假設的模型,在數據訓練集合中能夠較好模擬出結果,但是在整個數據集合中表現出較大的誤差。過擬合問題,這裏淺談輒止。

    決策樹的優點是對於小規模的數據集,能夠有較快的訓練速度和較好的訓練識別率;缺點是當數據集很大的時候,訓練誤差較大,決策樹的建立會帶來很大的內存消耗等。

     2、貝葉斯學習

    概率分析中如果給出P(A|B),怎麼求P(B|A)呢?

    貝葉斯公式,熟悉不過,P(B|A)=P(A|B)*P(B)/P(A)。那麼,貝葉斯公式體現了什麼?

    貝葉斯公式,體現了假設的置信度。簡單來講就是在先決概率的條件,怎麼做出假設,使得假設能夠最大體現已知的數據集。所以,貝葉斯學習爲推理假設提供了可靠的概率估計。下面分析一下基於GMMs(高斯混合模型,Gaussian Mixture Models)的EM算法:

    GMMs下的EM算法,用個通俗的例子來講,教室裏有200個同學(身高數據集爲H),已知男女同學的身高分別服從兩個不同的高斯分佈,如何求得男、女各自的高斯參數θ=[u, ∂]T,使得這個學校裏面出現這200個人身高的概率最大。利用極大似然估計,能夠算出θ1和θ2(分別表示男、女身高的高斯模型),使得這個學校的身高數據中出現H的概率最大。如果200個同學他們都帶上面具,不知性別,那麼只有知道性別,根據每個人的身高數據才能得到θ;只有得到θ,才能將戴面具的同學進行性別分類。例如,假設u1=175(表示男生的平均身高是175),如果某個人身高是180,把他歸爲男生。這就衍生出是先有雞還是先有蛋的問題。

    EM算法,過程就是先假設θ,然後根據這個θ可以將200人分呈男女兩類;利用這個新得到的分類,又可以根據最大似然估計算出新的θ值;迭代這兩個步驟,直到θ收斂。

    3.基於實例的學習——KNN(K近鄰算法,K nearest neighbor)

    基於實例的學習,要做的事就是就是如何將實例數據存儲起來,等到新實例發生時,將它與存儲的實例進行臨近劃分,並且使用臨近值來逼近目標函數。KNN算法,核心意思就是將實例數據按照局部臨近的原則進行分類,取出某個維上最近的K個點來逼近當前新實例的函數值。

    其基本思路如下,假設定義兩個實例的歐式距離爲D(Xi,Xj)=||(Xi-Xj)^2||(相當於求歐式距離),如果輸入一個新實例X,可以利用求min(D(X,Xi)),Xi取自數據集,將新實例劃分到某個分類中,分類中的逼近函數爲F;那麼可以求出某一維上最近的K個點,F(X)=∑F(Xi) / K,(其中i=1,2....K.);對k-近鄰算法的一個改進是對k個近鄰的貢獻加權,越近的距離賦予越大的權值。

    4.SVM(支持向量機support victor machine)

    SVM,作爲一種分類算法,引起了前十年的機器學習熱潮。SVM,理解起來很簡單,如其名字,找到對分類有支持作用的向量來找到分類域,這樣做的作用是可以在高維空間利用少數據量就可以進行分類。

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章