機器學習的通常範式
在這裏,我將機器學習的問題簡化爲兩種統計學習。 由於我認爲無監督學習沒有明確的定義,因此我不使用最多見的有監督/無監督分類。算法
做者:聞數起舞來源:今日頭條|2020-06-09 08:09 收藏 分享
在這裏,我將機器學習的問題簡化爲兩種統計學習。 由於我認爲無監督學習沒有明確的定義,因此我不使用最多見的有監督/無監督分類。機器學習
訓練集是一些數據{x_1,x_2,…,x_n},目標是表示這些數據的機率分佈p(x)。 例如,給定許多貓的照片,咱們的目標是找到這些貓的照片總體的規律,以便得到能夠生成看起來像貓的照片的生成功能。 如何畫貓。 一樣,咱們但願使用人工製做的示例來教機器如何講話,如何寫做以及如何撰寫文章。ide
訓練集是一對數據和標籤{(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)。 可是,許多問題仍未解決。 有無數種機率分佈。 咱們應該選擇哪些功能? 函數空間是無限維的,應該以哪一種方式有限地表示這些函數? 對於兩個候選人的機率分佈,咱們如何判斷它們? 如何找到這些功能中最好的。 這些問題將在下面一一回答。 咱們將解決機器學習問題的過程歸納爲如下幾部分。學習
您要學習的對象。爲了不過分擬合的現象,對於歧視問題,一般將數據集分爲訓練集(測試集)和測試集(測試集)。模型僅在訓練過程當中接觸訓練集,而訓練後的測試集將用於測試模型的效果。例如,咱們假設高考和模擬考試的問題類似,但並不徹底相同,所以在模擬考試訓練以後,高考用於測試最終的學習水平。若是存在遺漏問題的問題,只要在不理解的狀況下強行記住高考的真實問題,一我的就能在高考中取得良好的成績。過分擬合將這種現象描述爲"死記硬背,而不是類推"。實際上,訓練集也應該分紅一個驗證集,可是爲了簡化問題,咱們這裏再也不討論。測試
全部可能的機率分佈函數都是一個巨大的集合。在這裏找到最佳功能就像在大海撈針。所以,咱們常常選擇一些候選函數並在其中搜索。這個選擇很是重要,由於若是咱們選擇的這些替代功能不合適,那麼即便咱們在其中找到了最佳解決方案,也仍然沒法很好地解決問題。模型空間的選擇幾乎決定了機器學習算法的本質。不管是線性迴歸,各類基於樹的方法仍是由隱馬爾可夫模型表示的圖形模型,最大的區別之一在於模型空間的選擇。通常來講,機器學習算法是指模型空間和如下將要描述的模型表示。 VC維數理論向咱們揭示了每一個問題的最佳模型(空間)能夠最好地解決問題。太大的模型空間很容易致使過分擬合,反之亦然。 )。當咱們談論深度學習時,咱們將回到這個問題。優化
這是一個相對模糊的概念,可是我我的認爲,它對於解釋深度學習與傳統機器學習之間的差別具備重要意義。首先,即便咱們將模型空間限制在相對較小的程度,咱們仍然須要找到一種方法來表示空間中的每一個函數,或者須要爲該替代函數命名。舉個例子,若是咱們選擇模型空間做爲全部二次函數,即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最近鄰),但它們不是本文的重點。設計
爲了判斷哪一種函數是好的,咱們須要引入一個可量化的標準,一般稱爲目標函數(object function),也一般稱爲損失函數(lo 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散度導出。對象
在準備的前四個步驟以後,咱們能夠嚴格地將機器學習問題定義爲優化問題,即找到最大值/最小值的問題。給定數據集,選擇與數據集相關的目標函數L,定義模型空間S,並經過一些參數化將其表示爲S = {pw:對於T中的任何w},其中T一般是多維歐幾里得的子集空間,即w是知足某些條件的向量。那麼,咱們須要解決的優化問題是min {w in T} L(p_w),即找到T中的w以使L(p_w)的值最小。
對於不一樣的機器學習問題,此優化問題可能具備很是不一樣的屬性,最合適的優化算法天然也有所不一樣。許多機器學習模型都有特定的優化算法,例如支持向量機(support vector machine)SMO算法和混合模型(mixture model)EM算法。另外,影響優化結果的因素是初始化。許多優化算法能夠看做是在定義域中沿着特定路徑進行的一系列搜索。對於複雜的優化問題,搜索的起點一般很是重要。初始選擇方法能夠看做是優化算法的一部分。優化算法自己也是一個很好的研究方向。稍後,咱們將繼續討論有關優化算法和深度學習之間的相互做用的主題。
以上五個步驟基本上總結了解決機器學習問題或應用機器學習算法的整個過程。 其中,經過優化算法求解的過程就是所謂的訓練過程(training)。 訓練的時間取決於數據集和模型的大小。 在筆記本上,此過程可能須要幾秒鐘,而在計算羣集上,則可能須要幾天。