官术网_书友最值得收藏!

1.2.1 機器學習的框架:假設+目標+尋解

近代科學的奠基人牛頓,用力學三定律闡明了經典物理的基本理論。接下來,讓我們回到幾百年前的牛頓時代,看看是否能讓機器和牛頓先生一樣,從數據中學習到力學第二定律,復現該科學研究。

牛頓第二定律:物體加速度的大小跟作用力成正比,跟物體的質量成反比,且與物體質量的倒數成正比,加速度的方向跟作用力的方向相同。

牛頓第二定律的實驗在初中物理課中已有闡述,如圖1-5所示,有兩種實驗方法:傾斜滑動法和水平拉線法。原理是將物體放置在沒有摩擦力的光滑平面上,給物體施加不同的作用力,觀察物體所產生的加速度。因為實驗中的平面是極其光滑的,所以可以忽略其摩擦力,物體的加速度只取決于施加的固定外力。

圖1-5 牛頓第二定律的實驗

按照這種方式,對于某個確定的物體M(質量為m),施加不同的外力得到不同的加速度數據,實驗共得到5組數據,見表1-1。

表1-1 實驗得到的數據

觀察這份數據,直覺上認為物體產生的加速度應該和作用在物體上的力F有某種關系!掌握這個關系有什么用處呢?舉例來說,火箭需要一定的速度才能脫離地球引力飛到宇宙中,有了這個規律,我們可以計算出火箭需要多大的作用力,才能加速到脫離速度,進一步計算出所需燃料。因此,我們期望學習這種函數關系。

先拋開機器,如果讓人類學習這個知識,我們會怎樣思考呢?

思考步驟1:對加速度a和作用力F的關系制圖,觀察圖形,可得到一種假設猜測,aF之間應該是一種線性關系,可以用線性方程a=wF+b來表示(wb是參數,w表示該直線的斜率,b表示該直線的截距),如圖1-6所示。因為如果不給物體施加作用力,它是靜止的,所以最終猜測的假設是a=wF,其中的參數w尚不可知。

思考步驟2:對圖1-5做動態想象,隨參數w的變動,aF的直線關系會繞著原點轉動。最優秀的關系是最擬合(經過)所有已知觀測數據的一條直線,這應該也是最貼近真實關系的。為了獲得參數w的最優取值,首先需要設定一個優化目標,它能夠評估一個函數關系擬合數據的程度(又稱為Loss函數,擬合得越好,該值就越小),如圖1-7所示。這樣,使得優化目標達到最小值時,該直線的斜率就是最優參數。在本案例中,我們發現無論怎樣調整該直線關系,均無法完全擬合所有的點,因此優化目標可設計成所有數據點的擬合誤差的平方之和,使這個優化目標達到最小值的直線就是所求的函數關系。

圖1-6 猜測aF的函數關系

圖1-7 優化目標Loss函數是一個關于參數w的函數

思考步驟3:不難發現,參數w變化后,所有數據點的擬合誤差的累加和也會隨之變化。因此,優化目標Loss是一個隨著參數w變化的函數f(w)。需要一種在優化目標f(w)達到最小值時,求出參數w的方案。在本案例中,假設期望參數的精度為小數點后一位,可以用暴力嘗試的方法。首先觀察圖形,確定參數的范圍應該為0.09~0.11(因為若是其他取值,根本無法擬合任何一個已知數據點)。之后,依次嘗試0.09~0.11的所有取值(每次增加0.001),計算Loss。通過比較發現,當參數w為0.1時,Loss達到最小值。基于此,可確定參數w的最優值是0.1,這個尋找最優解的過程又稱為優化問題。

人類通過上述3個思考步驟,學習到了知識a=(1/10)F。而在本次實驗中,該物體的質量是10kg,這是不是巧合呢?通過使用不同質量的物體繼續實驗,發現參數的最優解均與物體質量的倒數相同。最終,確定物體的作用力和加速度的確是線性關系,體現這一關系的參數就是物體質量的倒數,這就是牛頓第二定律。牛頓演算推導出力學三定律的文獻已無從考證,不過可以猜測,牛頓在這個過程中也是按照西方科學精典“假設—驗證—修正”思維來操作的,也就是目前機器學習的基本模式。

接下來,讓我們思考一下,上述人類學習的過程能否用機器自動實現。在開始探討之前,先介紹幾個機器學習領域的專業術語。

1)特征:輸入的已知信息,比如上述實驗中的作用力可稱為“特征”,用X表示。

2)預測值:期望輸出的預測結果,比如上述實驗中的加速度可稱為“預測值”,用Y表示。

3)模型:代表YX的某種函數關系,比如牛頓第二定律a=F/m

4)樣本:收集到的記錄數據稱為“樣本”(或訓練樣本),比如上述實驗中的5個觀察數據,機器要從這些已知XY的樣本數據中學習出抽象規律來構建模型。有監督學習和無監督學習的本質區別就是,有沒有監督機器進行學習的“樣本”。

上述人類學習牛頓第二定律的過程,完全可以讓機器模仿著實現。

機器的學習方案

1)步驟1,確定規律關系的假設YX是線性關系且截距為0,可以用Y=wX表示。

2)步驟2,設定優化目標Loss:預測越準確,設計的Loss越小。最直接的設計思路是,加和每個訓練樣本的實際值與預測值之間的誤差,將其作為Loss,表示為Σ|實際值-預測值|2

3)步驟3,尋找參數w的最優解:依次嘗試0.09~0.11的不同取值(以0.001為更新步長),以5個已知樣本做測試數據,計算哪個取值會使步驟2的Loss最小,其就是最優參數。

這難道不是一個很有趣的方案嗎?機器通過一個“機械化”的模仿過程,實現了像人類一樣從數據中學到知識的目標!這個神奇的過程中隱藏著什么?下面讓我們來逐步拆解分析。

第一步,機器需確定預測的基本假設,即加速度a(即Y)和作用力F(即X)之間是線性關系。預測值Y與特征X之間關系的基本假設稱為“假設空間”,它圈定了預測模型能夠表示的關系范圍。比如,如果實際關系是非線性的(如圓的面積與半徑之間的關系SR2),卻讓機器使用線性假設去學習,那么最優結果只能是找到一條與該非線性曲線最貼近的直線,而不能突破直線關系的表達范疇。在實踐中,通常情況下,機器在學習之前,人們已經對業務問題有了較深刻的認知和理解,并不需要機器漫無邊際地實驗YX之間的關系,而是根據業務理解圈定一個更可能的關系范圍,從而降低機器學習的難度,提高其學習效率。這個事先假定的關系范圍就是假設空間。具體到上述場景:通過對實驗數據的觀測,假設加速度a與作用力F之間是線性關系。至于是怎樣的線性關系,仍需要機器通過第二步、第三步去確定。

第二步,設立假設空間后,機器仍需要一個可計算的評估標準,以告訴它如何判斷預測值的好和壞。一般情況下,預測值與實際值完全一樣是最好的,相差不大是次好的,相差很大是不好的。因此設置最直接的評估指標“Loss”——在已知的樣本集合上計算每個樣本的預測值與實際值的誤差,再加和全部誤差得到的指標,記為Σ|實際值-預測值|。使用該方法的效果如圖1-8所示。如果輸入只有一個特征X(一維特征),學習到YX的關系為圖1-8a中的直線。對于每個樣本,誤差為該樣本的|實際值-預測值|,也就是圖中點到直線的線段(平行于Y軸)。評估指標是所有線段的長度的加和。

圖1-8 不同特征數量,Loss計算值的形象說明

可以想象,隨著擬合直線的上下移動或左右轉動,Loss的大小(所有線段的長度之和)會發生變化。如果輸入有兩個特征X1X2(二維特征),預測值Y與輸入的關系則是一個平面,每一個點的預測誤差為點到平面的線段(平行于Y軸),評估指標依然是所有線段的長度的加和,如圖1-8b所示。同樣,隨著預測的YX關系的變化(移動圖1-8a中的直線或移動圖1-8b中的平面),評估指標的大小也會變化。這個評估模型預測效果的指標稱為“優化目標”,它代表了模型學習優化的方向。設定了優化目標后,最后的問題是:如何在假設空間中明確下一種關系(確定Y=wX中的參數w),使優化目標達到最小。

第三步,在假設空間中尋找使得優化目標最小的參數取值,這稱為“尋解算法”或“優化過程”。什么樣的“尋解方法”最簡單呢?從實驗中可見,最容易想到的是,在所有可能的預測值中逐一嘗試。在參數的取值范圍0.09~0.11內嘗試(超出這個范圍顯然是不合理的猜測),共嘗試20次(每次增加0.001),則可比較得出最優參數解。這種方法雖然容易被想到,但也比較笨拙。如果假設空間很大,要全部嘗試一遍是不切實際的。因此,在實際項目中幾乎沒人使用這種方法,但用來演示機器學習的基本過程是足夠可行的。

機器學習(監督模型)遵照“假設空間+優化目標+尋解算法”的流程,從數據中學習知識并預測未來。

明確了機器學習的過程后,還需要一種對學到的知識進行記錄或表示的方法。如果是線性關系,可以將此關系寫成線性方程,如a=F/m可以寫成

加速度a=作用力F(特征)×1/m(參數)

其中,輸入變量“作用力F”為特征,而表達aF關系的其他變量稱為參數,如1/m。將特征和參數組合在一起寫成方程,可以表達機器學習到的知識。

輸出Y為一個實數取值的預測問題,學術上稱為回歸模型。由于本案例中YX的關系是線性的,因此這是一個線性回歸模型。

在實際中,一件事情往往會有更多的前提條件和影響因素。對于僅一個特征輸入的情況,用方程式表達線性關系是可行的。如果再多一個特征,該如何表達呢?例如,在現實世界中往往需要考慮到物體的摩擦力,所以物體的加速度不僅僅和作用力有關,還與該物體與平面之間的摩擦力[1]有關。這時,預測方程可以寫成

加速度a=作用力F(特征)×1/m(參數)-壓力F(特征)×摩擦系數μ(參數)

從該模型可拓展到生活和工作中的大量場景。如投資機構預測企業的信用情況、互聯網公司預測廣告的點擊率、電信企業定位高流失風險的客戶等。這些場景相較上述案例不過是具有更多的特征、更強大的假設空間、更符合應用場景的優化目標以及更高效的尋解算法而已,機器學習的過程依然是一樣的!期望通過“牛頓第二定律”案例,能讓大家對機器學習框架設計有一個循序漸進的了解,并學會在實際工作中舉一反三。

簡而言之,機器學習(監督學習,包括回歸、分類)就是設定一個更大的函數空間,再從該空間中找到能最好擬合已知數據的函數。

上述的機器學習框架中依然有一個邏輯漏洞——我們設計的優化目標是在訓練樣本上進行計算的,即所選擇的參數以及形成的YX關系在已經掌握的訓練數據上會十分有效。但在現實中,我們期望模型對沒有見過的未來樣本做出正確預測,那么在已知訓練樣本上表現得有效的函數規律,在未知的樣本上會依然有效嗎?

在下一節中,將結合1.1.3節介紹的大數定律對這一問題做出解答。

主站蜘蛛池模板: 安多县| 高淳县| 拜泉县| 绍兴市| 泾源县| 迁西县| 青冈县| 丹寨县| 平和县| 沈丘县| 吉木乃县| 凤台县| 黄梅县| 宁乡县| 石门县| 凌云县| 申扎县| 唐山市| 南投县| 海淀区| 墨脱县| 沈丘县| 麻城市| 宜丰县| 中阳县| 定兴县| 宣威市| 曲麻莱县| 唐海县| 兴业县| 新干县| 中超| 城步| 安溪县| 麟游县| 花垣县| 长汀县| 陇南市| 淮滨县| 绥棱县| 云安县|