1. 程式人生 > >機器學習_論文筆記_1: A few useful things to know about machine learning

機器學習_論文筆記_1: A few useful things to know about machine learning

> 翻譯總結by joey周琦

希望把自己閱讀到的,覺得有營養的論文,總結筆記和自己想法,留給自己,也分享給大家。因為英文論文中一些專有,有難度的詞句,會給出英文原文。

這篇文章總結了有關機器學習的12條重要,簡單,明瞭的經驗。本文面對分類問題總結,但不限於分類問題。

  1. 學習=模型+評估+優化
    Learning = representation + evaluation + optimization。

    • representation(模型): 對於一個學習演算法選擇一個模型,相當於選擇一個分類器的集合,這個集合可稱為假設空間,空間中的分類器被認為是可以學習的。常見的模型有:KNN, SVM, Naive Bayes, 邏輯迴歸LR, 決策樹等等。
    • evaluation (評估): 也就是目標函式(cost function)或得分函式。常見的評估指標有, 準確率召回率,平方誤差和,似然函式,後驗概率等。
    • optimization (優化): 也就是優化演算法。常見的優化演算法有梯度下降法,高斯牛頓法,線性優化,二次優化等。
    • 課本中一般都是以模型來分章節講解,但是評估與優化同等重要。這裡寫圖片描述
  2. 泛化能力才是重要的(It’s Generalization that counts)

    • 資料要分為訓練資料和測試資料,只提高訓練資料的預測精度是不夠,這樣可能會造成過擬合。100%的在訓練資料上的精度,可能在測試資料上只有50%. 在訓練資料上75%的精度可能測試資料上也是75%的精度,由於前面的分類器。所以說泛化能力才是最重要的。
  3. 只有資料是不夠的

    • 只有資料是無法進行機器學習的,必須有先驗的知識在演算法裡面。(no free lunch理論)
    • 先驗知識比如,用什麼建模,評估,如何優化
  4. 過擬合有很多方面 (overfitting has many faces)
    • 誤差可以分解為 bias和variance兩個方面,如下圖這裡寫圖片描述
      • bias可以理解是預測或估計很多次的均值
      • variance表示很多次估計的方差,如右下角的圖,雖然均值和真實接近,但是每一次估計的方差過大。
      • 線性模型一般variance小,bias大
      • 樹模型一般variance大,bias小
    • 下面幾個思路可能減小過擬合:
      • 交叉驗證 (cross validation), 即每次抽出一部分資料作為test data, 剩下的作為training data
      • 可以加入正則項,避免模型過於複雜
    • 一個常見的誤解是,有噪聲的情況才會出現過擬合。(沒有噪聲也會出現過擬合)
  5. 直覺在高維度行不通
    • 維數災難
    • 在高維度的相似度和低緯度的相似度不同
    • 直覺上,加入一些資訊量少的feature可能不會影響預測效果,因為它最多少提供一些資訊。然後現實中,這些feature提供的資訊的益處不如它增加的維度對結果所帶來的壞處。
    • 可以通過一定方法降維輸入的feature,如PCA等
  6. 理論保證不一定可靠
    • 現實實現中,理論保證不一定可靠
    • 理論推動了機器學習的發展,但是在實際中只是參考因素之一
  7. 特徵工程(選擇)是關鍵 (feature engineering is the key)
    • 為什麼有些機器學習專案成功了,有些沒有呢?最核心的原因就是feature的選擇使用。
    • 實際專案中,很多時間都在用於,收集、清理、預處理資料,特徵選擇。然後才是放在演算法中跑
    • 跑演算法可能是其中最快的一環。(因為很成熟了)
    • 在特徵選擇時,需要加入人的知識在裡面,那些效果好的演算法往往是特徵選擇的好。(以呼應了前面的理論,只有data是不夠的,需要人的智慧)
    • (插一句,難怪現在資料探勘工程師都被稱為feature engineer)
  8. 更多的資料可以打敗更聰明的演算法
    • 假設你已經拿到了最優的feature,如何繼續優化
      • 1 設計更好的演算法
      • 2 使用更多的資料
    • 很多研究者專注於設計更好的演算法,而最快速簡單的方法就是收集使用更多的資料
    • 80年代收集資料是問題,現在主要的問題是處理資料的速度。
  9. 學習更多的模型,而不是一個
    • 現在 model ensembles的技術非常標準了,最簡單的就是bagging.
    • 簡單來說就是多訓練不同的模型,用model ensembles的技術將這些模型綜合起來用,可以得到比任何模型單一都好的效果。(在netflixprize比賽中也得到了體現,不同隊伍的分類器組合到一起可以得到一個更優的分類器)
  10. 簡單並不代表準確
    * 如果假設模型比較的簡單,並且獲取了比較好的結果,說明是假設的比較精確。並不能說明越簡單就越精確
    * 簡單本身就是一種優點,但是它和精確沒有必然聯絡
  11. 可以被建模不一定代表可以被學習
  12. 相關關係並不意味著因果關係
    .