機器學習三要素之資料、模型、演算法
一般一個模型是通過如下過程獲得:
即演算法通過在資料上進行運算產生模型。
下面我們從資料,模型,演算法上來深入分析機器學習的過程。
資料
我們都知道,機器學習需要大量的資料來訓練模型,尤其是訓練神經網路。在進行機器學習時,資料集一般會被劃分為訓練集和測試集,很多時候還會劃分出驗證集。
資料集的劃分一般有三種方法:
按一定比例劃分為訓練集和測試集
這種方法也稱為保留法。我們通常取8-2、7-3、6-4、5-5比例切分,直接將資料隨機劃分為訓練集和測試集,然後使用訓練集來生成模型,再用測試集來測試模型的正確率和誤差,以驗證模型的有效性。這種方法常見於決策樹、樸素貝葉斯分類器、線性迴歸和邏輯迴歸等任務中。
交叉驗證法
交叉驗證一般採用k折交叉驗證,即k-fold cross validation,往往k取為10。在這種資料集劃分法中,我們將資料集劃分為k個子集,每個子集均做一次測試集,每次將其餘的作為訓練集。在交叉驗證時,我們重複訓練k次,每次選擇一個子集作為測試集,並將k次的平均交叉驗證的正確率作為最終的結果。
訓練集、驗證集、測試集法
首先將資料集劃分為訓練集和測試集,由於模型的構建過程中也需要檢驗模型,檢驗模型的配置,以及訓練程度,過擬合還是欠擬合,所以會將訓練資料再劃分為兩個部分,一部分是用於訓練的訓練集,另一部分是進行檢驗的驗證集。驗證集可以重複使用,主要是用來輔助構建模型的。
模型
模型是機器學習的結果,這個學習過程,稱為訓練(Train)。一個已經訓練好的模型,可以被理解成一個函式: y=f(x)。我們把資料(對應其中的 x)輸入進去,得到輸出結果(對應其中的 y)。這個輸出結果可能是一個數值(迴歸),也可能是一個標籤(分類),但是這個模型是怎麼得到的呢?
一般構建一個模型,我們需要經歷以下步驟:
Step-1:資料準備。
Step-1.1 資料預處理:收集資料、清洗資料、標註資料。
Step-1.2 構建資料的向量空間模型(將文字、圖片、音訊、視訊等格式的資料轉換為向量)。
Step-1.3 將構建好向量空間模型的資料分為訓練集、驗證集和測試集。
Step-2:訓練——將訓練集輸入給訓練程式,進行運算。訓練程式的核心是演算法,所有輸入的向量化資料都會按該訓練程式所依據的演算法進行運算。訓練程式輸出的結果,就是模型。
Step-2.1: 編寫訓練程式。
Step-2.1.1: 選擇模型型別;
Step-2.1.2: 選擇優化演算法;
Step-2.1.3: 根據模型型別和演算法編寫程式。
Step-2.2: 訓練 -> 獲得臨時模型。
Step-2.3: 在訓練集上執行臨時模型,獲得訓練集預測結果。
Step-2.4: 在驗證集上執行臨時模型,獲得驗證集預測結果。
Step-2.5: 綜合參照 Step-2.4 和 Step-2.5 的預測結果,改進模型。
Step-2.6: Step-2.2 到 Step-2.5 反覆迭代,直至獲得讓我們滿意,或者已經無法繼續優化的模型。
總之,模型獲取的過程就是:根據已經被指定的 f(x) 的具體形式——模型型別,結合訓練資料,計算出其中各個引數的具體取值的過程。
訓練過程需要依據某種演算法進行運算。下面就來看看演算法。
演算法
這裡我們以有監督學習為例,有監督學習的目標就是:讓訓練資料的所有 x 經過 f(x) 計算後,獲得的 y’ 與它們原本對應的 y 的差別儘量小。
我們需要用一個函式來描述 y’ 與 y 之間的差別,這個函式叫做損失函式(Loss Function)L(y, y’)= L(y, f(x))。
損失函式針對一個訓練資料,對於所有的訓練資料,我們用代價函式(Cost Function)來描述整體的損失。代價函式一般寫作:J(theta)——注意,代價函式的自變數不再是 y 和 f(x),而是變成了 theta,theta 表示 f(x) 中所有待定的引數(theta 也可以是一個向量,每個維度表示一個具體的引數)。至此,我們終於得到了一個關於我們真正要求取的變數(theta)的函式。而同時,既然 J(theta) 被成為代價函式,顧名思義,它的取值代表了整個模型付出的代價,這個代價自然是越小越好。
因此,我們也就有了學習的目標(也稱為目標函式):argmin J(theta)—— 最小化J(theta)。
能夠讓 J(theta) 達到最小的 theta,就是最好的 theta。當找到最好的 theta 之後,我們把它帶入到原 f(x),使得 f(x) 成為一個完整的 x 的函式,也就是最終的模型函式。怎麼能夠找到讓 J(theta) 最小的 theta 呢?這就需要用到優化演算法了。
具體的優化演算法有很多,比如:梯度下降法(Gradient Descent),共軛梯度法(Conjugate Gradient),牛頓法和擬牛頓法,模擬退火法(Simulated Annealing) 等等。其中最常用的是梯度下降法,我們下一節會專門講解梯度下降法。敬請期待......
【推薦閱讀】
輕輕一掃 歡迎關注~
如果覺得好,請
轉發
轉發
轉發