1. 程式人生 > >第1章 機器學習基礎

第1章 機器學習基礎

機器學習 概述

機器學習 是使用計算機來彰顯資料背後的真實含義,它為了把無序的資料轉換成有用的資訊。 1. 海量的資料 2. 獲取有用的資訊

機器學習 場景

例如:識別動物貓
模式識別(官方標準):人們通過大量的經驗,得到結論,從而判斷它就是貓。
機器學習(資料學習):人們通過閱讀進行學習,觀察它會叫、小眼睛、兩隻耳朵、四條腿、一條尾巴,得到結論,從而判斷它就是貓。
深度學習(深入資料):人們通過深入瞭解它,發現它會'喵喵'的叫、與同類的貓科動物很類似,得到結論,從而判斷它就是貓。(深度學習常用領域:語音識別、影象識別)

模式識別(pattern recognition): 模式識別是最古老的(作為一個術語而言,可以說是很過時的)。
    我們把環境與客體統稱為“模式”,識別是對模式的一種認知,是如何讓一個計算機程式去做一些看起來很“智慧”的事情。
    通過融於智慧和直覺後,通過構建程式,識別一些事物,而不是人,例如: 識別數字。
機器學習(machine learning): 機器學習是最基礎的(當下初創公司和研究實驗室的熱點領域之一)。
    在90年代初,人們開始意識到一種可以更有效地構建模式識別演算法的方法,那就是用資料(可以通過廉價勞動力採集獲得)去替換專家(具有很多影象方面知識的人)。
    “機器學習”強調的是,在給計算機程式(或者機器)輸入一些資料後,它必須做一些事情,那就是學習這些資料,而這個學習的步驟是明確的。
    機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身效能的學科。
深度學習(deep learning): 深度學習是非常嶄新和有影響力的前沿領域,我們甚至不會去思考-後深度學習時代。
    深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋資料,例如影象,聲音和文字。

參考地址: 
http://www.csdn.net/article/2015-03-24/2824301
http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn0NxuAtEohbpey7LUa2zUQLJxvIKUx4bnrEfOmsWLKbDmvG1PCoRkJisMTQka6-QReTrIxdYY3v93f55q

機器學習已應用於多個領域,遠遠超出大多數人的想象,橫跨:電腦科學、工程技術和統計學等多個學科。

  • 搜尋引擎: 根據你的搜尋點選,優化你下次的搜尋結果。
  • 垃圾郵件: 會自動的過濾垃圾廣告郵件到垃圾箱內。
  • 超市優惠券: 你會發現,你在購買小孩子尿布的時候,售貨員會贈送你一張優惠券可以兌換6罐啤酒。
  • 郵局郵寄: 手寫軟體自動識別寄送賀卡的地址。
  • 申請貸款: 通過你最近的金融活動資訊進行綜合評定,決定你是否合格。

機器學習 組成

主要任務

  • 分類:將例項資料劃分到合適的類別中。
  • 迴歸:主要用於預測數值型資料。(示例:股票價格波動的預測)

監督學習

  • 必須確定目標變數的值,以便機器學習演算法可以發現特徵和目標變數之間的關係。 (包括:分類和迴歸)
  • 樣本集:訓練資料 + 測試資料
    • 訓練樣本 = 特徵(feature) + 目標變數(label: 分類-離散值/迴歸-連續值)
    • 特徵通常是訓練樣本集的列,它們是獨立測量得到的。
    • 目標變數: 目標變數是機器學習預測演算法的測試結果。
      • 在分類演算法中目標變數的型別通常是標稱型(如:真與假),而在迴歸演算法中通常是連續型(如:1~100)。
  • 知識表示
    1. 可以採用規則集的形式【例如:數學成績大於90分為優秀】
    2. 可以採用概率分佈的形式【例如:通過統計分佈發現,90%的同學數學成績,在70分以下,那麼大於70分定為優秀】
    3. 可以使用訓練樣本集中的一個例項【例如:通過樣本集合,我們訓練出一個模型例項,得出 年輕,數學成績中高等,談吐優雅,我們認為是優秀】

非監督學習

  • 資料沒有類別資訊,也不會給定目標值。
  • 聚類:在無監督學習中,將資料集分成由類似的物件組成多個類的過程稱為聚類。
  • 密度估計:通過樣本分佈的緊密程度,來估計與分組的相似性。
  • 此外,無監督學習還可以減少資料特徵的維度,以便我們可以使用二維或三維圖形更加直觀地展示資料資訊。

訓練過程

機器學習訓練過程圖

演算法彙總

演算法彙總

機器學習 使用

選擇演算法需要考慮的兩個問題

  1. 演算法場景
    • 預測明天是否下雨,因為可以用歷史的天氣情況做預測,所以選擇監督學習演算法
    • 給一群陌生的人進行分組,但是我們並沒有這些人的類別資訊,所以選擇無監督學習演算法、通過他們身高、體重等特徵進行處理。
  2. 需要收集或分析的資料是什麼

舉例

選擇演算法圖

機器學習 開發流程

* 收集資料: 收集樣本資料
* 準備資料: 注意資料的格式
* 分析資料: 為了確保資料集中沒有垃圾資料;
    如果是演算法可以處理的資料格式或可信任的資料來源,則可以跳過該步驟;
    另外該步驟需要人工干預,會降低自動化系統的價值。
* 訓練演算法: [機器學習演算法核心]如果使用無監督學習演算法,由於不存在目標變數值,則可以跳過該步驟
* 測試演算法: [機器學習演算法核心]評估演算法效果
* 使用演算法: 將機器學習演算法轉為應用程式

Python語言 優勢

  1. 可執行虛擬碼
  2. Python比較流行:使用廣泛、程式碼範例多、豐富模組庫,開發週期短
  3. Python語言的特色:清晰簡練、易於理解
  4. Python語言的缺點:唯一不足的是效能問題
  5. Python相關的庫
    • 科學函式庫:SciPyNumPy(底層語言:C和Fortran)
    • 繪圖工具庫:Matplotlib