線性迴歸模型
基本結構
數據集
通常收集一系列的真實數據,如果多棟房屋的真實出售價格和他們對應的面積和房齡。
我們希望在數據集上尋找模型參數來使得預測價格和真實價格誤差最小。
該數據集被稱爲訓練數據集,每個房屋被稱爲一個樣本,真實的售出價格叫做標籤,用來預測標籤的因素叫做特徵,特徵用來表示樣本的特點。
損失函數
用來計算預測價格和真實價格之間的誤差。通常我們要求誤差應該是非負數,且數據越小表示誤差越小,我們一般選擇平方函數作爲誤差函數
如下是單個樣本得到的誤差值
如下是所有樣本得到的誤差值的平均,可以知道該誤差是關於w和b的一個函數
對函數進行優化——隨機梯度下降
如何將誤差最小化,即將函數求得最小值——高數中我們學到的隨着梯度的反方向函數值減小最快。
如果最小化問題的解可以通過公式表示出來,則這類解叫解析解。
然而大多數模型並沒有解析解,只能通過有限次的迭代模型參數來儘可能降低損失函數值,這類稱爲數值解。
在求數值解的優化算法中,小批量隨機梯度下降使用比較廣泛。
小批量隨機梯度下降
先選取一組模型參數的初始值,如隨機選取;接下來對參數進行多次迭代,使每次迭代都可能降低損失函數的值。在每次迭代中,先隨機均勻採樣一個由固定數目訓練數據樣本所組成的小批量(mini-batch),然後求小批量中數據樣本的平均損失有關模型參數的導數(梯度),最後用此結果與預先設定的一個正數的乘積作爲模型參數在本次迭代的減小量。
關於幾種梯度下降的分析:
https://blog.csdn.net/UESTC_C2_403/article/details/74910107
總結來講,三種梯度下降模型存在如下對比
-
批量梯度下降
每次拿所有樣本更新
優點:梯度準確朝向最優解方向(假設沒有局部解)
缺點:樣本數很多,訓練過程慢
-
隨機梯度下降
每次拿一個樣本更新
優點:訓練速度快
缺點:準確度低,可能存在噪聲樣本,導致迭代沒有朝着優化方向行進。
-
小批量梯度下降
拿局部樣本更新
是上面兩種方案的折中,使用範圍廣。
如何使用?
如果樣本量比較小,採用批量梯度下降算法。如果樣本太大,或者在線算法,使用隨機梯度下降算法。在實際的一般情況下,採用小批量梯度下降算法。