機器學習基礎之算法學習

苟有恆,何必三更眠五更起

最無益,莫過一日曝十日寒

總體來說,深度學習是機器學習的一個特定分支,要想充分理解深度學習,首先必須對機器學習的基本原理有深刻的理解。同時,機器學習的一些先天不足又促進了可以解決這些問題的深度學習算法的發展。那麼,機器學習中的“學習”到底是什麼含義呢?簡單來講,當我們試圖用某一個算法去解決某一個任務時,算法經過我們事先準備好的先驗數據的改造,在某一個性能度量標準下的表現越來越好。這時候,我們的算法就完成了從先驗數據中的學習。其中,有三個非常重要的概念:任務、性能度量和經驗。下面,我們分別展開來說。

一、任務

機器學習可以讓我們解決一些確定性程序難以解決的問題,這也是機器學習受到關注的重要原因之一。學習本身不能算是任務,學習是獲得完成任務的能力。一個成熟的機器學習系統在被使用時會把一個已經量化的特徵集合作為輸入,我們稱這個量化的特徵集合為樣本。例如,一張圖片的特徵通常是指這張圖片像素值的集合。機器學習任務通常被定義為機器學習系統應該如何處理樣本。

常見的任務有:

  1. 分類:計算機程序需要預測某些輸入屬於哪一類別。例如:Willow Grarage PR2機器人能像服務員一樣識別不同飲料,並送給點餐顧客。目前最好的對象識別正是基於深度學實習的。
  2. 輸入缺失分類:當一些輸入可能丟失時,為了得到正確的分類,必須讓算法學習具有不同輸入缺失的子集。這種情況在醫療診斷中經常出現,因為很多類型的醫療測試是昂貴的,對身體有害的。
  3. 迴歸:算法需要對給定的輸入給出一個預測數值。例如:預測投保人的索賠金額,或者預測證券未來的價格。
  4. 轉錄:算法輸入一些非結構化的數據,轉錄為離散的文本形式。例如:光學字符識別,算法根據文本圖片返回文字序列。
  5. 異常檢測:算法在一組事件或者對象中篩選,並標記不正常或非典型的個體。例如:信用卡欺詐檢測。
  6. 密度估計或概率質量函數估計:算法需要顯示的捕獲樣本的概率分佈,必須知道什麼情況下樣本聚集出現,什麼情況下不太可能出現。

這裡所列舉的任務類型只是用來介紹機器學習可以用來做哪些任務,並非嚴格定義機器學習任務分類。

二、性能評估

為了評估機器學習算法的能力,我們必須設計其性能的定量度量。依據任務的不同,性能度量的方法也會有所不同。對於分類、缺失輸入分類和轉錄任務,我們通常度量模型的準確率。對於密度估計這類任務度量準確率是沒有意義的,最常用的方法是輸出模型在一些樣本上概率對數的平均值。

通常情況下我們會在訓練集之外製作一個測試集用來評估機器學習系統的性能,這樣可以更好的反映算法在未觀測數據集上的性能如何。

實際上,選擇一個合適的算法系統性能度量方法是很難的,因為有些情況下很難確定應該度量什麼。例如,在轉錄任務中我們應該度量系統整個序列的準確率還是應該選取一個更加細粒度的指標?在迴歸任務中我們應該關注那些頻繁犯錯但是錯誤不大的系統,還是那些很少犯錯但是錯誤很大的系統?這些設計的選擇都取決於應用。

三、經驗

根據機器學習過程中的不同經驗,算法大致可以分為無監督學習和有監督學習。我們可以理解成大部分算法在整個數據集上獲取經驗。

無監督學習

學習出訓練數據集中有用的結構性質,比如概率分佈。可以理解為,在學習中沒有老師,算法必須學會在沒有指導的情況下理解數據。

有監督學習

算法必須觀察出隨機變量x及其相關聯的值y之間的關係,然後可以根據x預測出y。可以理解為,有老師提供目標y給機器學習系統,並指導其應該做什麼。

通常情況下,監督學習和無監督學習之間並沒有清晰的界限,很多機器學習算法可以用於這兩個任務。但是,這確實可以粗略的分類我們研究機器學習算法時遇到的問題。人們將回歸、分類或者結構化輸出的問題稱為監督學習,將支持其他任務的密度估計稱為無監督學習。同時,還有其他變種出現,比如半監督學習,一些樣本有監督目標,但是其它樣本沒有。

機器學習基礎之算法學習


分享到:


相關文章: