機器學習的三個步驟

所謂機器學習,在形式上可近似等同於,在數據對象中經過統計或推理的方法,尋找一個有關特定輸入和預期輸出的功能函數 f(如圖 1 所示)。一般,咱們把輸入變量(特徵)空間記做大寫的 X,而把輸出變量空間記做大寫的 Y。那麼所謂的機器學習,在形式上就近似等同於 Y≈f(X)。

機器學習

機器學習近似於找一個好用的函數
圖 1:機器學習近似於找一個好用的函數


在這樣的函數中,針對語音識別功能,若是輸入一個音頻信號,那麼這個函數 f 就能輸出諸如 "你好" "How are you?" 這類識別信息。針對圖片識別功能,若是輸入的是一張圖片,在這個函數的加工下,就能輸出(或識別出)一個或貓或狗的斷定。針對下棋博弈功能,若是輸入的是一個圍棋的棋譜局勢,就能輸出這局棋的下一步「最佳」走法。

而對於具有智能交互功能的系統(好比微軟的小冰),當咱們給這個函數輸入如 "How are you?" 同樣的語句,它就能輸出如 "I am fine, thank you." 這樣的智能迴應。每一個具體的輸入都是一個實例(instance),它一般由特徵向量(feature vector)構成。在這裏,全部特徵向量存在的空間稱爲特徵空間(feature space),特徵空間的每個維度對應實例的一個特徵。

但問題來了,這樣「好用的」函數並不那麼好找。在輸入貓的圖片後,這個函數並不必定就能輸出「這是一隻貓」,它可能會錯誤地輸出這是一隻狗或這是一條蛇。這樣一來,咱們就須要構建一個評估體系來辨別函數的好賴。固然,這中間天然須要經過訓練數據(training data)來「培養」函數的好品質。

前面咱們提到,學習的核心就是改善性能。圖 2 展現了機器學習的三步走,經過訓練數據,咱們把 f改善爲 f的樣子,即便 f中仍然存在分類錯誤,但相比於 f的所有出錯,它的性能(分類的準確度)仍是提升了,這就是學習。

函數

機器學習的三步走
圖 2:機器學習的三步走


具體來講,機器學習要想作得好,須要走好三大步:性能

  • 如何找到一系列的函數來實現預期功能,這是一個建模問題;
  • 如何找到一系列評價標準來評價函數的好壞,這是一個評價問題;
  • 如何快速找到性能最優的函數,這是一個優化問題。


習慣上,咱們把具體的輸入變量、輸出變量用小寫的 x 和 y 表示。變量既能夠是標量(scalar),也能夠是向量(vector)。除作特殊說明外,本教程所言向量均爲列向量。標準的寫法如圖 3(a) 所示,但這種寫法比較佔用空間,所以咱們一般採用轉置的寫法,如圖 3(b) 所示,圖中的上標「T」就是轉置(Transpose)符號。

學習

特徵向量矩陣
圖 3:特徵向量矩陣


這裏的 x(i) 表示的是輸入變量 x 的第 i 個特徵。須要特別注意的是,當輸入變量有多個時,咱們用 xj 表示。如此一來,xj(i) 就表示第 j 個變量的第 i 個特徵,特徵向量矩陣如圖 4 所示。

測試

  特徵向量矩陣
圖 4:特徵向量矩陣
 

對於監督學習來講,所構建的模型一般在訓練數據(Training Data)集中學習,調整模型參數,而後在測試數據(Test Data)集中進行預測驗證。

對於訓練數據,輸入信號(或變量)與輸出信號(或變量)一般是成對出現的。有時,輸出信號也被稱爲「教師信號」,由於它具有指導性,可經過損失函數來「調教」模型中的參數。所以,訓練數據集一般用以下列公式所示的方式進行描來「調教」模型中的參數。所以,訓練數據集一般用如如下公式所示的方式進行描述:優化

T ={(x1, y1),(x2, y2),...,(xj, yj),...(xm, ym)}spa


輸入變量和輸出變量有不一樣的類型,它們既能夠是連續的,也能夠是離散的。一般,人們會根據輸入變量和輸出變量的不一樣類型,給預測任務賦予不一樣的名稱。好比,若是輸入變量和輸出變量均爲連續變量,那麼這樣的預測任務就稱爲迴歸(Regression)。

若是輸出變量爲有限的離散值,那麼這樣的預測任務就稱爲分類(Classification)。若是輸入變量和輸出變量均爲變量序列,那麼這樣的預測任務就稱爲標註(Tagging),咱們能夠認爲標註是分類的一個推廣。scala

相關文章
相關標籤/搜索