天天看點

機器學習的一般範式

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

在這裡,我将機器學習的問題簡化為兩種統計學習。 因為我認為無監督學習沒有明确的定義,是以我不使用最常見的有監督/無監督分類。

機器學習的一般範式

1. 生成模型

訓練集是一些資料{x_1,x_2,…,x_n},目标是表示這些資料的機率分布p(x)。 例如,給定許多貓的照片,我們的目标是找到這些貓的照片整體的規律,以便獲得可以生成看起來像貓的照片的生成功能。 如何畫貓。 同樣,我們希望使用人工制作的示例來教機器如何講話,如何寫作以及如何撰寫文章。

2. 判别模型

訓練集是一對資料和标簽{(x_1,y_1),(x_2,y_2),…,(x_n,y_n)},其中x_i是資料,y_i是标簽,并且 目的是在給定資料的情況下表達标簽的條件機率,即p(y | x)。 例如,我們有很多照片x_i,每張照片都有一個标簽,告訴我們該照片是貓還是狗。 然後,y_i有兩個可能的值,y_i = cat或y_i = dog。 我們希望機器學習如何區分貓和狗,以便當我們有了新圖檔x 時,機器還可以通過計算p(y = cat | x )和p(y = dog | x * )是貓還是狗。 這些問題也被廣泛使用,例如圖像識别,語音識别,醫學診斷等。

盡管在某些情況下無法同時包含這兩種模型,但通常可以在進行較小的更改的情況下将它們包括在内。 在這裡,我們将不讨論這些次要問題。

通常,我們的目标是從某個資料集中找到一個好的函數,以表示所需的機率分布p(x)或p(y | x)。 但是,許多問題仍未解決。 有無數種機率分布。 我們應該選擇哪些功能? 函數空間是無限維的,應該以哪種方式有限地表示這些函數? 對于兩個候選人的機率分布,我們如何判斷它們? 如何找到這些功能中最好的。 這些問題将在下面一一回答。 我們将解決機器學習問題的過程概括為以下幾部分。

3. 資料集

您要學習的對象。為了避免過度拟合的現象,對于歧視問題,通常将資料集分為訓練集(測試集)和測試集(測試集)。模型僅在訓練過程中接觸訓練集,而訓練後的測試集将用于測試模型的效果。例如,我們假設聯考和模拟考試的問題相似,但并不完全相同,是以在模拟考試訓練之後,聯考用于測試最終的學習水準。如果存在遺漏問題的問題,隻要在不了解的情況下強行記住聯考的真實問題,一個人就能在聯考中取得良好的成績。過度拟合将這種現象描述為"死記硬背,而不是類推"。實際上,訓練集也應該分成一個驗證集,但是為了簡化問題,我們這裡不再讨論。

4. 模型空間

所有可能的機率分布函數都是一個巨大的集合。在這裡找到最佳功能就像在大海撈針。是以,我們經常選擇一些候選函數并在其中搜尋。這個選擇非常重要,因為如果我們選擇的這些替代功能不合适,那麼即使我們在其中找到了最佳解決方案,也仍然無法很好地解決問題。模型空間的選擇幾乎決定了機器學習算法的本質。無論是線性回歸,各種基于樹的方法還是由隐馬爾可夫模型表示的圖形模型,最大的差別之一在于模型空間的選擇。一般來說,機器學習算法是指模型空間和以下将要描述的模型表示。 VC維數理論向我們揭示了每個問題的最佳模型(空間)可以最好地解決問題。太大的模型空間很容易導緻過度拟合,反之亦然。 )。當我們談論深度學習時,我們将回到這個問題。

5. 模型的表示(參數化/體系結構)

這是一個相對模糊的概念,但是我個人認為,它對于解釋深度學習與傳統機器學習之間的差異具有重要意義。首先,即使我們将模型空間限制在相對較小的程度,我們仍然需要找到一種方法來表示空間中的每個函數,或者需要為該替代函數命名。舉個例子,如果我們選擇模型空間作為所有二次函數,即S = {p(x)= a_1 x²+ b_1 x + c_1,對于任何a_1,b_1,c_1},我們可以指向通過長度為三的向量(a_1,b_1,c_1)在每個S中使用該函數。但是,S可以寫為不同。例如,對于任何a_2,b_2,c_2,d_2},S也可以表示為S = {p(x)=(a_2 * x + b_2)(c_2 x + d_2),這樣,我們可以也用向量(a_2,b_2,c_2,d_2)表示每個候選函數。作為一個集合,兩個函數空間完全相同,但是作為幫助我們找到最佳函數的指南,不同的表示形式可能會有很大的不同。還有一類非參數模型(非參數)無法簡化為這種情況,例如kNN(k最近鄰),但它們不是本文的重點。

6. 目标函數(object / loss function)

為了判斷哪種函數是好的,我們需要引入一個可量化的标準,通常稱為目标函數(object function),也通常稱為損失函數(loss function)。 ,是以表示為L。對于每個候選函數p(x),L将給出評估L(p),L(p)越小意味着p(x)越好。通常,L與訓練集有關,因為L應該反映p(x)是否包含訓練集中包含的資訊。對于判别問題,最簡單的選擇之一可以是訓練集上p(y | x)的準确性。精度越高,訓練集中包含的資訊p(y | x)就越多。但是這裡也存在過度拟合的危險,因為訓練集的高精度不一定意味着測試集的高精度,是以p(y | x)可能隻是記錄了樣本中的大多數示例。訓練集(記憶),僅此而已。除了限制模型空間外,我們還可以向目标函數添加正則化以限制這種情況的發生。簡單來說,正常術語代表我們對不同模型的偏好。對于具有相似性能的兩個不同模型,我們将根據正則項的大小進行選擇。例如,根據奧卡姆(Occam)的剃刀原則,我們可以設計一個正常術語,以便在某種意義上可以選擇一個盡可能簡單的模型。最後,除了準确性外,常見的目标函數還包括均方估計(L2),均值絕對估計(L1),鉸鍊損失,負對數似然和交叉熵。其中,交叉熵通常可以從KL散度導出。

7. 優化算法

在準備的前四個步驟之後,我們可以嚴格地将機器學習問題定義為優化問題,即找到最大值/最小值的問題。給定資料集,選擇與資料集相關的目标函數L,定義模型空間S,并通過一些參數化将其表示為S = {p_w:對于T中的任何w},其中T通常是多元歐幾裡得的子集空間,即w是滿足某些條件的向量。那麼,我們需要解決的優化問題是min_ {w in T} L(p_w),即找到T中的w以使L(p_w)的值最小。

對于不同的機器學習問題,此優化問題可能具有非常不同的屬性,最合适的優化算法自然也有所不同。許多機器學習模型都有特定的優化算法,例如支援向量機(support vector machine)SMO算法和混合模型(mixture model)EM算法。另外,影響優化結果的因素是初始化。許多優化算法可以看作是在定義域中沿着特定路徑進行的一系列搜尋。對于複雜的優化問題,搜尋的起點通常非常重要。初始選擇方法可以看作是優化算法的一部分。優化算法本身也是一個很好的研究方向。稍後,我們将繼續讨論有關優化算法和深度學習之間的互相作用的主題。

以上五個步驟基本上總結了解決機器學習問題或應用機器學習算法的整個過程。 其中,通過優化算法求解的過程就是所謂的訓練過程(training)。 訓練的時間取決于資料集和模型的大小。 在筆記本上,此過程可能需要幾秒鐘,而在計算群集上,則可能需要幾天。

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/live

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-06-09

本文作者:聞數起舞

本文來自:“

51CTO

”,了解相關資訊可以關注“