ML 工程師需瞭解的 10 大算法

毫無疑問,機器學習/人工智能的子領域在過去幾年越來越流行。由於大數據是目前科技領域最熱門的趨勢,基於這些大規模的數據,機器學習在預測和計算建議方面變得不可思議的強大。最常見的機器學習的例子就是 Netflix(一家在線影片租賃提供商)的算法,它能基於你過去看過的電影來推薦電影,或着 Amazon 的算法,它能基於你過去買的書,來推薦書給你。


那麼如果你想進一步瞭解機器學習,你應該怎樣開始呢?對我來說,我的入門是我在哥本哈大學留學時,參加的一個人工智能的課程。我的講師是丹麥科技大學的一個全職的應用數學和計算機科學的教授,他主要研究邏輯學和人工智能,主要致力於使用邏輯學來對人類的計劃,推理,和求解問題的過程進行建模。這個課程是針對理論/核心概念和動手解決問題的討論。我們所用的課本是人工智能的經典之一: Peter Norvig’s Artificial Intelligence — A Modern Approach,其中涵蓋的主題主要包括:智能代理,問題求解,敵對搜索,概率論,多智能體系統,社會AI,哲學/倫理學/人工智能的未來。課程的最後,三個人一組,我們實現了一個簡單的基於搜索的代理,能夠在虛擬環境下解決運輸任務來作爲編程項目。


多虧這個課,我學會了大量的知識,並決定繼續學習這個專業的主題。在過去的幾周裏,我參加了舊金山的多個技術講座,主要是關於深度學習,神經網絡,數據結構的。還有一個機器學習的會議,很多該領域的專業人士都在場。最重要的是,我六月初的時候參加了Udacity的介紹機器學習(Intro to Machine Learning )的在線課程,並在前幾天剛剛完成。在這篇文章中,我想分享一些我從課程中學習到的最常見的機器學習算法。


機器學習算法可以被分爲三大類—監督學習,非監督學習,和強化學習。有監督的學習在數據集(訓練集)的屬性(標籤)已知的條件下是有用的,但是在沒有標籤時,就失去作用了,需要使用其他方法來進行預測。當我們面臨的是沒有標記的數據(屬性沒有預先賦值),並且需要我們發現其中隱含的關係時,非監督學習就會很有用。增強學習介於這兩個極端之間——對於每一個預測步驟或動作,都會有某種形式的反饋,但是沒有確切的標籤或着錯誤信息。因爲這是一個入門課,我並不瞭解強化學習。但我希望這10個有監督和無監督學習算法就足夠引起你的興趣。


有監督的學習


1.決策樹:決策樹是一個使用類樹圖形,或者決策模型和其可能結果的決策支持工具,包括偶然事件的結果,資源成本和效用。看一下下面的圖片感受一下它是什麼樣的。



從商業決策的角度來看,大多數時候,一個決策樹就是使用最小數量的必須要問的是或不是的問題,來評估做出正確決策的可能性。作爲一個方法,它允許你以一個結構化的和系統的方式來處理這個問題,從而得到一個合乎邏輯的結論。


2. 樸素貝葉斯分類:樸素貝葉斯分類是一族基於貝葉斯定理和特徵之間的強獨立性(樸素)的簡單分類器。顯著特點是方程式—— P(A|B) 是後驗概率,P(B|A)  是似然概率,P(A) 是類的先驗概率,P(B) 是預測的先驗概率。



一些現實中的例子:


  • 標記一個電子郵件爲垃圾郵件或非垃圾郵件

  • 將新聞文章分爲技術類、政治類或體育類

  • 檢查一段文字表達積極的情緒,或消極的情緒?

  • 用於人臉識別軟件


3. 普通的最小二乘迴歸:如果你瞭解統計學,你以前可能聽說過線性迴歸。最小二乘法是一種進行線性迴歸的方法。你可以把線性迴歸當作使用一條直線來擬合一系列的點的任務。有多種可能的方法來做到這一點,最小二乘的策略是這樣的——你可以畫一條線,然後對於每一個數據點,計算數據點和這條線的垂直距離,然後把它們加起來;擬合的線就是那個總和的距離儘可能小的線。



線性是指你用來擬合數據的模型,而最小二乘指的是你正在最小化的誤差的度量。


4. 邏輯迴歸:邏輯迴歸是一種強大的統計方法,它使用一個或者更多的解釋變量對一個二項式結果建模。它通過使用logistic 函數估計概率,這是累積 logistic  分佈,來度量分類變量和一個或者更多的自變量之間的關係。



通常,迴歸可以被用於在現實世界的應用,如:


  • 信用評分

  • 度量營銷活動的成功率

  • 預測某一產品的收入

  • 在一個特定的日子裏會發生地震嗎?


5. 支持向量機(SVM):支持向量機是一個二分類算法。給出N維空間的一組二分類的點,支持向量機產生一個 N-1 維的超平面將這些點分成兩組。假設你在一張紙上有一些線性可分的二分類的點,支持向量機將會找到一條直線,將這些點分成兩類,並位於離所有這些點儘可能遠的位置。



就規模而言,其中一些最主要的問題已經使用支持向量機解決了(通過適當的修改),如,入廣告顯示,人類的剪接位點識別,基於圖像的性別檢測,大規模圖像分類等等。


6. 集成方法:集成方法是構建一組分類器,然後通過對預測結果進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均,但最近的算法包括糾錯輸出編碼,bagging, 和boosting。



那麼集成方法是怎樣工作的,爲什麼他們會優於單個的模型?


  • 他們拉平了輸出偏差:如果你將具有民主黨傾向的民意調查和具有共和黨傾向的民意調查取平均,你將得到一箇中和的沒有傾向一方的結果。

  • 它們減小了方差:一堆模型的聚合結果和單一模型的結果相比具有更少的噪聲。在金融領域,這被稱爲多元化——多隻股票的混合投資要比一隻股票變化更小。這就是爲什麼數據點越多你的模型會越好,而不是數據點越少越好。

  • 它們不太可能產生過擬合:如果你有一個單獨的沒有過擬合的模型,你是用一種簡單的方式(平均,加權平均,邏輯迴歸)將這些預測結果結合起來,然後就沒有產生過擬合的空間了。


非監督學習


7. 聚類算法:聚類是將一組對象進行分組,使得同一組(簇)內的對象相似性遠大於不同組之間的相似性。


每一種聚類算法都不太一樣,這裏有一些:


  • 基於質心的算法

  • 基於連通性的算法

  • 基於密度的算法

  • 概率聚類

  • 降維

  • 神經網絡/深度學習



8. 主成分分析(PCA):主成分分析是一個統計過程,它使用正交變換,將一組可能相關的變量的一組觀測值變換成線性不相關的變量,這些變量稱爲主成分。


PCA的應用包括壓縮,簡化數據使它們更容易學習,可視化。注意,選擇是否使用主成分分析,領域知識是非常重要的。當數據充滿噪聲時,主成分分析是不合適的(主成分分析的所有成分都有很高的方差)。



9. 奇異值分解(SVD):在線性代數中,SVD是分解一個實數的比較複雜的矩陣。對於一個給定的m*n的矩陣M,存在一個分解M = UΣV,這裏U和V是酉矩陣,Σ是一個對角矩陣。


PCA 是 SVD 的一個簡單應用,在計算機視覺中,第一個人臉識別算法,就運用了 PCA 和 SVD 算法。使用這兩個算法可以將人臉表示爲 “特徵臉”線性組合,降維,然後通過簡單的方法匹配人臉的身份;雖然現代的方法複雜得多,但許多仍然依賴於類似的技術。


10. 獨立成分分析(ICA):獨立成分分析是一種統計方法,用來揭示隨機變量集測試,信號集中的隱藏因素。獨立成分分析爲觀測到的多變量的集合定義生成模型,它通常作爲大型的樣本數據數據庫。在這個模型中,數據變量被假定爲與一些潛在的未知變量的線性混合,混合系統也不知道。潛在變量被假設爲非高斯並且相互獨立的,它們被稱爲所觀察到的數據的獨立成分。



ICA 和 PCA 是相關的,但是它是一種更強大的技術,當那些經典的方法完全失效的時候,它能夠從數據源中發現潛在的因素。它的應用包括數字圖像,文檔數據庫,經濟指標和心理測量。


現在,繼續向前,運用你所理解的算法創造機器學習應用,爲各個地方的人們人們提供更好的體驗。

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