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