《动手学深度学习 PyTorch版》学习笔记(三):线性回归
線性回歸輸出是一個(gè)連續(xù)值,因此適用于回歸問(wèn)題。回歸問(wèn)題在實(shí)際中很常見(jiàn),如預(yù)測(cè)房屋價(jià)格、氣溫、銷售額等連續(xù)值的問(wèn)題。
一、基本要素
摘自原書(shū)
模型定義
設(shè)房屋的面積為 x1,房齡為 x2,售出價(jià)格為 y。我們需要建立基于輸入 x1 和 x2 來(lái)計(jì)算輸出 y 的表達(dá)式,也就是 模型(model) 。顧名思義,線性回歸假設(shè)輸出與各個(gè)輸入之間是線性關(guān)系:
其中 w1 和 w2 是 權(quán)重(weight),b 是 偏差(bias),且均為標(biāo)量。它們是線性回歸模型的 參數(shù)(parameter)。模型輸出 y? 是線性回歸對(duì)真實(shí)價(jià)格 y 的預(yù)測(cè)或估計(jì)。我們通常允許它們之間有一定誤差。
模型訓(xùn)練
我們需要通過(guò)數(shù)據(jù)來(lái)尋找特定的模型參數(shù)值,使模型在數(shù)據(jù)上的誤差盡可能小。這個(gè)過(guò)程叫作 模型訓(xùn)練(model training),包含三個(gè)要素:
- 訓(xùn)練數(shù)據(jù)
我們通常收集一系列的真實(shí)數(shù)據(jù),例如多棟房屋的真實(shí)售出價(jià)格和它們對(duì)應(yīng)的面積和房齡。我們希望在這個(gè)數(shù)據(jù)上面尋找模型參數(shù)來(lái)使模型的預(yù)測(cè)價(jià)格與真實(shí)價(jià)格的誤差最小。在機(jī)器學(xué)習(xí)術(shù)語(yǔ)里,該數(shù)據(jù)集被稱為 訓(xùn)練數(shù)據(jù)集(training data set) 或 訓(xùn)練集(training set) ,一棟房屋被稱為一個(gè) 樣本(sample) ,其真實(shí)售出價(jià)格叫作 標(biāo)簽(label) ,用來(lái)預(yù)測(cè)標(biāo)簽的兩個(gè)因素叫作 特征(feature)。特征用來(lái)表征樣本的特點(diǎn)。
- 損失函數(shù)
在模型訓(xùn)練中,我們需要衡量?jī)r(jià)格預(yù)測(cè)值與真實(shí)值之間的誤差。通常我們會(huì)選取一個(gè)非負(fù)數(shù)作為誤差,且數(shù)值越小表示誤差越小。一個(gè)常用的選擇是平方函數(shù)。它在評(píng)估索引為 i 的樣本誤差的表達(dá)式為:
其中常數(shù) 1/2 使對(duì)平方項(xiàng)求導(dǎo)后的常數(shù)系數(shù)為1,這樣在形式上稍微簡(jiǎn)單一些。顯然,誤差越小表示預(yù)測(cè)價(jià)格與真實(shí)價(jià)格越相近,且當(dāng)二者相等時(shí)誤差為0。給定訓(xùn)練數(shù)據(jù)集,這個(gè)誤差只與模型參數(shù)相關(guān),因此我們將它記為以模型參數(shù)為參數(shù)的函數(shù)。在機(jī)器學(xué)習(xí)里,將衡量誤差的函數(shù)稱為 損失函數(shù)(loss function) 。這里使用的平方誤差函數(shù)也稱為 平方損失(square loss) 。
通常,我們用訓(xùn)練數(shù)據(jù)集中所有樣本誤差的平均來(lái)衡量模型預(yù)測(cè)的質(zhì)量,即
- 優(yōu)化算法
當(dāng)模型和損失函數(shù)形式較為簡(jiǎn)單時(shí),上面的誤差最小化問(wèn)題的解可以直接用公式表達(dá)出來(lái)。這類解叫作 解析解(analytical solution) 。本節(jié)使用的線性回歸和平方誤差剛好屬于這個(gè)范疇。然而,大多數(shù)深度學(xué)習(xí)模型并沒(méi)有解析解,只能通過(guò)優(yōu)化算法有限次迭代模型參數(shù)來(lái)盡可能降低損失函數(shù)的值。這類解叫作 數(shù)值解(numerical solution)。
在求數(shù)值解的優(yōu)化算法中,小批量隨機(jī)梯度下降(mini-batch stochastic gradient descent) 在深度學(xué)習(xí)中被廣泛使用。它的算法很簡(jiǎn)單:先選取一組模型參數(shù)的初始值,如隨機(jī)選取;接下來(lái)對(duì)參數(shù)進(jìn)行多次迭代,使每次迭代都可能降低損失函數(shù)的值。在每次迭代中,先隨機(jī)均勻采樣一個(gè)由固定數(shù)目訓(xùn)練數(shù)據(jù)樣本所組成的小批量(mini-batch)B,然后求小批量中數(shù)據(jù)樣本的平均損失有關(guān)模型參數(shù)的導(dǎo)數(shù)(梯度),最后用此結(jié)果與預(yù)先設(shè)定的一個(gè)正數(shù)的乘積作為模型參數(shù)在本次迭代的減小量。
在訓(xùn)練本節(jié)討論的線性回歸模型的過(guò)程中,模型的每個(gè)參數(shù)將作如下迭代:
- 模型預(yù)測(cè)
二、線性回歸的表示方法
如果我們對(duì)訓(xùn)練數(shù)據(jù)集里的3個(gè)房屋樣本(索引分別為1、2和3)逐一預(yù)測(cè)價(jià)格
現(xiàn)在,我們將上面3個(gè)等式轉(zhuǎn)化成矢量計(jì)算。設(shè):
對(duì)3個(gè)房屋樣本預(yù)測(cè)價(jià)格的矢量計(jì)算表達(dá)式為y?=Xw+b, 其中的加法運(yùn)算使用了 廣播機(jī)制
總結(jié)
以上是生活随笔為你收集整理的《动手学深度学习 PyTorch版》学习笔记(三):线性回归的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 牛客21781 牛兄牛弟
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习