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

2.1.2 機(jī)器學(xué)習(xí)流程概述

一個完整的機(jī)器學(xué)習(xí)流程通常涉及多個環(huán)節(jié),各個環(huán)節(jié)之間相互依賴,下面以一個具體的實例來直觀地說明整個流程,然后以數(shù)學(xué)的語言闡述整個過程。

1.示例

在電商領(lǐng)域,我們需要對商品進(jìn)行分類,為了簡化問題,假設(shè)只有一批商品的圖片數(shù)據(jù),分為羽絨服、毛呢大衣、連衣裙、衛(wèi)衣等品類。我們需要建立一個模型,使用這批商品的圖片數(shù)據(jù)訓(xùn)練模型,得到一個可以對未知的圖片進(jìn)行分類的預(yù)測模型。比如對于新樣式的羽絨服可以正確預(yù)測它的類別是羽絨服。要完成上述功能,在機(jī)器學(xué)習(xí)中通常需要如下幾個步驟。

(1)提取商品圖片的特征:在計算機(jī)中圖像都是以像素的方式離散存儲的,單個像素攜帶的信息,很難讓模型直接去學(xué)習(xí)。為了讓計算機(jī)能夠準(zhǔn)確地識別分類,需要提取一些有區(qū)分性的特征,比如衣服的顏色、風(fēng)格等。這些特征可以是人為定義的,這個過程稱為特征工程,也可以使用算法自動提取前者是傳統(tǒng)機(jī)器學(xué)習(xí)的必需步驟,并且具有舉足輕重的地位,后者典型的方法是深度學(xué)習(xí),讀者在第3章可以了解到如何使用深度學(xué)習(xí)方法解決這個問題。

(2)建立模型:在定義好特征后,需要選擇一個合適的模型來建模。傳統(tǒng)的機(jī)器學(xué)習(xí)模型有邏輯回歸、隨機(jī)森林等;基于深度學(xué)習(xí)的方法,有多層感知器、卷積網(wǎng)絡(luò)等。模型可以看成是一個復(fù)雜的函數(shù)y=f(X;W),其目的是建立輸入到標(biāo)簽y之間的映射,其中X是前面定義的特征,W是定義模型的參數(shù)。

(3)確定損失函數(shù)和進(jìn)行優(yōu)化求解:選擇模型只是確定了一個模型形式,比如使用邏輯回歸,它還包含權(quán)值,在這些權(quán)值沒有確定之前,是無法用它來進(jìn)行正確預(yù)測的。那么如何調(diào)整模型使得它可以完成有意義的預(yù)測呢?首先需要一個數(shù)值來量化模型預(yù)測的對錯,損失函數(shù)就是來衡量模型輸出與標(biāo)簽之間的差異程度的,當(dāng)預(yù)測結(jié)果與標(biāo)簽差異偏大時,損失函數(shù)值增大,反之則減小。基于損失函數(shù)給出的值,可以通過優(yōu)化方法調(diào)整模型以不斷減小損失值。

2.數(shù)學(xué)模型

以上述例子代表的分類模型為例,給出分類的數(shù)學(xué)模型。假設(shè)有一批包含N條樣本的訓(xùn)練集,用集合X={(xi,yi)|i=1,2,...,N}表示。每一個樣本xi都有對應(yīng)的標(biāo)簽yi,其中xi∈Rd表示每個樣本是一個d維的向量,標(biāo)簽yi是一系列離散值yi∈Y={0,1,2,...,K},表示樣本xi所屬的類別,K為類別的種類數(shù)。我們的目的是建立一個能完成分類功能的模型,即需要這樣一個模型:f:Rd→RK,輸入是d維的向量,經(jīng)過f映射,輸出在每個類別上的概率分布P(Y|xi)=f(xi;θ),這樣就可以取概率最大的類別作為結(jié)果,即

那么現(xiàn)在的問題是,如何評價分類模型的好壞呢?比較直接的方法是,我們關(guān)注模型在訓(xùn)練數(shù)據(jù)上的結(jié)果,通過比較與樣本真實標(biāo)簽yi是否相同來評價模型的好壞。如果模型能對訓(xùn)練集中的大部分樣本進(jìn)行正確預(yù)測,那這個模型可能是一個不錯的模型,否則可能是一個糟糕的模型,這種定性的說明并不直觀,我們需要一種可以量化這個差異的方法,該方法就是損失函數(shù)。

損失函數(shù)(loss function)用來估量模型的預(yù)測值y*與真實值y的差異程度,是一個非負(fù)實值函數(shù),通常用L(y,f(x;θ))來表示。在機(jī)器學(xué)習(xí)中,通過在訓(xùn)練集X上最小化損失函數(shù)來訓(xùn)練模型,調(diào)整f的參數(shù)θ,使得損失函數(shù)值降低,當(dāng)損失函數(shù)取最小值時,也就找到了一個不錯的模型。這個過程稱為優(yōu)化求解。整個過程可以用式(2.1)表示:

其中,前面的均值函數(shù)表示的是經(jīng)驗風(fēng)險函數(shù),L代表的是損失函數(shù),后面的Φ是正則化項(regularizer)或者叫懲罰項(penalty term),可以是L1也可以是L2,或者其他正則函數(shù)。上述公式表示的是找到使目標(biāo)函數(shù)最小的θ值。損失函數(shù)旨在表示模型輸出f(x)和真實值Y的差異程度,不同的損失函數(shù)有不同的表示意義,也就是在最小化損失函數(shù)的過程中,f(x)逼近Y的方式不同,得到的結(jié)果可能也不同。

在實際優(yōu)化時,常常無法一步到位直接找到合適的參數(shù),因此在機(jī)器學(xué)習(xí)中,通常使用迭代式的方法逐步逼近最優(yōu)值。整個過程如圖2-1所示:對訓(xùn)練集X使用模型f(X;θ0)進(jìn)行預(yù)測,其中θ0表示初始參數(shù),然后對預(yù)測的結(jié)果與樣本真實標(biāo)簽利用損失函數(shù)計算損失值,優(yōu)化方法會根據(jù)當(dāng)前損失值對參數(shù)進(jìn)行調(diào)整,得到θ1,然后重復(fù)上述過程,持續(xù)迭代,直到該算法發(fā)現(xiàn)損失可能是最低的模型參數(shù)。通常,可以不斷迭代,直到總體損失不再變化或變化極其緩慢為止,這時候,我們可以說該模型已收斂。

圖2-1 機(jī)器學(xué)習(xí)算法迭代過程

需要注意的是,我們訓(xùn)練模型的目的不是讓模型在訓(xùn)練集上取得不錯的效果,而是希望模型從訓(xùn)練集中學(xué)會去面對未知的樣本,能夠?qū)π聵颖具M(jìn)行預(yù)測。一個極端的情況是我們得到了一個模型,它能完美地擬合訓(xùn)練數(shù)據(jù),能完全正確地預(yù)測所有的訓(xùn)練樣本,即它的損失值為0,但是在新樣本預(yù)測的表現(xiàn)上卻糟糕,這種現(xiàn)象在機(jī)器學(xué)習(xí)中被稱為過擬合。另一種情況是模型“竭盡全力”也無法在訓(xùn)練樣本上取得令人滿意的結(jié)果,這種現(xiàn)象被稱為欠擬合。

損失函數(shù)和優(yōu)化算法是機(jī)器學(xué)習(xí)的兩個重要組成部分。接下來我們首先介紹幾種常用的損失函數(shù),然后介紹一類使用較多的優(yōu)化方法—梯度下降。

主站蜘蛛池模板: 彭阳县| 富宁县| 宜阳县| 什邡市| 林州市| 阜平县| 时尚| 彝良县| 清远市| 霞浦县| 中西区| 博白县| 依安县| 安国市| 瑞昌市| 寿阳县| 民县| 宁城县| 兴仁县| 盐城市| 尼勒克县| 琼中| 郴州市| 峨眉山市| 宣城市| 玛纳斯县| 平遥县| 吉林省| 云浮市| 扎囊县| 彩票| 孝义市| 万荣县| 汽车| 建平县| 社旗县| 金川县| 尼木县| 青田县| 岳阳市| 平度市|