2021年3月1日-機器學習三要素

機器學習通俗來講指的是計算機程序通過經驗來提高某任務處理性能的一類技術。其形式化定義如下:

對於某類任務T和性能度量P,如果一個計算機程序在T上以P衡量的性能隨着經驗E而自我完善,那麼我們稱這個計算機程序在從經驗E中進行學習

一個機器學習方法需要包括三個要素,也稱為機器學習三要素:模型、學習準則、優化算法。

模型

機器學習的本質是根據經驗學習一個映射函數\(f: X \rightarrow Y\),用於對未知數據進行預測。模型結構確定了該機器學習算法的假設空間,即所有可能的映射函數的集合。例如,如果映射函數\(f\)具有如下的形式:\(f_\theta = \theta_1x + \theta_0\),那麼該假設空間實際上是平面上的所有直線;如果映射函數\(f\)具有如下的形式:\(f = W_2(\sigma(W_1X+b_1))+b_2\),那麼該假設空間是所有以\(\sigma\)函數作為激活函數的兩層線性神經網絡構成的集合。

我們在設計模型時應該盡量使得得到的假設空間包含或者儘可能近似目標映射,同時排出其餘不是最優解的候選映射。

學習準則

在設計完模型(通常對於機器學習是選定模型)得到假設空間以後,我們接下來需要做的是找到一種評價指標能夠對假設空間中的映射進行比較,也就是通常所說的學習準則。

通常我們會根據不同的任務需求選定一個損失函數用以對模型相對於數據點的預測結果進行評估。比如:最小二乘損失,絕對值損失,交叉熵損失,Hinge Loss,Huber Loss等。

在得到損失函數以後,我們通常還會挑選一種策略來得到最終的優化目標。比如,經驗風險最小化、結構風險最小化、貝葉斯準則等等。

經驗風險最小化

假設對於一個數據點的預測結果得到的損失記為\(loss(f(x),y)\),那麼該損失函數相對於整個數據集的期望就是風險函數或者叫做期望損失。

\[Expected\_Loss = E_{(x,y) \sim P_D} [loss(f(x), y)]
\]

但是由於我們不知道數據集的真實分佈\(P_D\),因此只能對期望損失進行估計。一般我們使用損失函數在當前數據集的平均值作為對期望損失的估計,這個值又叫做經驗風險或者叫做經驗損失。

\[Empirical\_Loss = \frac{1}{N} \sum_{i=1}^N loss(f(x_i), y_i)
\]

把經驗風險作為目標函數對其進行最小化的準則就叫做經驗風險最小化準則。

結構風險最小化

結構風險最小化準則是在經驗風險最小化的基礎上添加了正則項用以防止過擬合。

結構風險 = 經驗風險 + L2正則項

L2正則項主要是限制了模型的複雜度,從而防止過擬合。從優化的角度L2正則可以看作是一個拉格朗日算子,從貝葉斯學習的角度來看,L2正則是對參數加入了高斯先驗。

優化算法

優化算法是將學習準則得到的目標函數作為優化目標,從假設空間找到一個使得目標函數最大化/最小化的算法。

目前深度學習的優化算法都是基於梯度反向傳播的優化算法。

對於機器學習來說,不同的方法具有不同的優化算法。例如SMO是SVM的優化算法,尺度迭代算法是最大熵模型的優化算法,EM算法通常用於包含隱變量的模型的優化。