線性回歸
主要內(nèi)容包括:
- 線性回歸的基本要素
- 線性回歸模型從零開始的實現(xiàn)
- 線性回歸模型使用pytorch的簡潔實現(xiàn)
線性回歸的基本要素
模型
為了簡單起見惹骂,這里我們假設價格只取決于房屋狀況的兩個因素雹嗦,即面積(平方米)和房齡(年)。接下來我們希望探索價格與這兩個因素的具體關系佃声。線性回歸假設輸出與各個輸入之間是線性關系:
數(shù)據(jù)集
我們通常收集一系列的真實數(shù)據(jù),例如多棟房屋的真實售出價格和它們對應的面積和房齡。我們希望在這個數(shù)據(jù)上面尋找模型參數(shù)來使模型的預測價格與真實價格的誤差最小疤苹。在機器學習術(shù)語里,該數(shù)據(jù)集被稱為訓練數(shù)據(jù)集(training data set)或訓練集(training set)敛腌,一棟房屋被稱為一個樣本(sample)卧土,其真實售出價格叫作標簽(label),用來預測標簽的兩個因素叫作特征(feature)像樊。特征用來表征樣本的特點尤莺。
損失函數(shù)
在模型訓練中,我們需要衡量價格預測值與真實值之間的誤差凶硅。通常我們會選取一個非負數(shù)作為誤差缝裁,且數(shù)值越小表示誤差越小。一個常用的選擇是平方函數(shù)足绅。 它在評估索引為 的樣本誤差的表達式為
優(yōu)化函數(shù) - 隨機梯度下降
當模型和損失函數(shù)形式較為簡單時捷绑,上面的誤差最小化問題的解可以直接用公式表達出來。這類解叫作解析解(analytical solution)氢妈。本節(jié)使用的線性回歸和平方誤差剛好屬于這個范疇粹污。然而,大多數(shù)深度學習模型并沒有解析解首量,只能通過優(yōu)化算法有限次迭代模型參數(shù)來盡可能降低損失函數(shù)的值壮吩。這類解叫作數(shù)值解(numerical solution)。
在求數(shù)值解的優(yōu)化算法中加缘,小批量隨機梯度下降(mini-batch stochastic gradient descent)在深度學習中被廣泛使用鸭叙。它的算法很簡單:先選取一組模型參數(shù)的初始值,如隨機選燃鸷辍沈贝;接下來對參數(shù)進行多次迭代,使每次迭代都可能降低損失函數(shù)的值勋乾。在每次迭代中宋下,先隨機均勻采樣一個由固定數(shù)目訓練數(shù)據(jù)樣本所組成的小批量(mini-batch),然后求小批量中數(shù)據(jù)樣本的平均損失有關模型參數(shù)的導數(shù)(梯度)辑莫,最后用此結(jié)果與預先設定的一個正數(shù)的乘積作為模型參數(shù)在本次迭代的減小量学歧。
學習率: 代表在每次優(yōu)化中,能夠?qū)W習的步長的大小
批量大小: 是小批量計算中的批量大小batch size
總結(jié)一下各吨,優(yōu)化函數(shù)的有以下兩個步驟:
- (i)初始化模型參數(shù)枝笨,一般來說使用隨機初始化;
- (ii)我們在數(shù)據(jù)上迭代多次,通過在負梯度方向移動參數(shù)來更新每個參數(shù)伺帘。
矢量計算
在模型訓練或預測時昭躺,我們常常會同時處理多個數(shù)據(jù)樣本并用到矢量計算。在介紹線性回歸的矢量計算表達式之前伪嫁,讓我們先考慮對兩個向量相加的兩種方法领炫。
- 向量相加的一種方法是,將這兩個向量按元素逐一做標量加法张咳。
- 向量相加的另一種方法是帝洪,將這兩個向量直接做矢量加法。