動手深度學習2-深度學習基礎

線性迴歸

線性迴歸輸出是一個連續值,所以適用於迴歸問題。迴歸問題的實際中很常見,好比房屋價格預測,氣溫,銷售額等連續值的問題。與迴歸問題不一樣,分類問題中的模型輸出是一個離散值。咱們所說的圖像分類,垃圾郵件識別,疾病監測等輸出爲離散值的問題都屬於分類問題的範疇。sofamax迴歸則適用於分類問題。算法

因爲線性迴歸和softmax迴歸都是單層神經網絡,它們涉及的概念和技術一樣適用於大多數的深度學習模型。首先咱們以線性迴歸爲例,介紹大多數深度學習模型的基本要素和表示方法。網絡

線性迴歸的基本要素

咱們以一個簡單房屋價格預測做爲例子來解釋線性迴歸的基本要素。這個應用的目標是預測一棟房子的售出價格(元)。
咱們知道這個價格取決於不少因素,如房屋情況,地段,市場行情等。爲了簡單起見,這裏咱們假設房屋價格只取決於房屋的情況的兩個
因素,即面積(平方米) 和房齡(年)。接下來咱們但願探索價格與這兩個因素的具體關係。機器學習

模型定義

設房屋的面積爲x1,房齡爲x2,售出價格爲y,咱們須要創建基於輸入x1和x2來計算輸出
y的表達式,也就是模型(model),線性迴歸假設輸出與輸入質檢的線性關係:
\[ \hat { y } = x _ { 1 } w _ { 1 } + x _ { 2 } w _ { 2 } + b \]
其中w1,w2是權重(weight),b是變差(bias),且均爲標量。它們是線性迴歸模型的參數
parameters。模型的輸出y^是線性迴歸對於真實價格y的預測或估計。咱們一般容許它們之
間有必定的偏差。函數

訓練模型

須要經過數據來尋找特定的模型參數值,似的模型在數據上的偏差儘量小。這個過程叫做模型訓練(model training) 。訓練模型的三個要素學習

(1) 訓練數據優化

咱們一般收集一系列的真實數據,例如多棟房屋的真實售出價格和它們的對應的面積和房齡。
咱們但願在數據上尋找模型參數去使模型的預測價格和真實價格的偏差最小。在機器學習的術語
中,該數據集被稱爲訓練數據集(training data set)或者traing set,一棟房屋被稱爲一個樣本(sample),其真實售出價格叫做標籤(label) ,用來預測標籤的兩個因素叫做特徵(feature)。特徵用來表徵樣本的特色。spa

假設咱們採集的樣本數爲n,索引爲i的樣本的特徵爲\[x_{ 1 }^{( i )}和x _ { 2 } ^ { ( i ) } ,標籤是{y}^{( i )}\]。對於索引爲i的房屋,線性迴歸模型的房屋價格預測表達式爲
\[ \hat { y } ^ { ( i ) } = x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b \]code

(2) 損失函數索引

在模型訓練中,咱們須要衡量價格預測值與真實值之間的偏差。一般咱們選取一個非負值做爲一個偏差,且數值越小表示偏差越小。一個經常使用的選擇是平方函數。它的評估索引爲i的樣本偏差的表達式爲
$$
\ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) = \frac { 1 } { 2 } \left( \hat { y } ^ { ( i ) } - y ^ { ( i ) } \right) ^ { 2 }深度學習

其中$$\frac{1}{2}$$使對平方項求導以後的常數項係數爲1,這樣的形式稍微簡單一些。顯然偏差越小表示預測價格與真實價格越接近,且兩者相等時偏差爲0。給定訓練集,這個偏差只與模型參數相關,所以咱們將它記爲以模型參數爲參數的函數。在機器學習裏,將衡量偏差的函數稱爲損失函數(loss function)。這裏使用的平方偏差函數也稱爲平方損失(square loss)
一般,咱們用訓練數據集中全部樣本偏差的平均來衡量模型預測的質量,即

\[ \ell \left( w _ { 1 } , w _ { 2 } , b \right) = \frac { 1 } { n } \sum _ { i = 1 } ^ { n } \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) = \frac { 1 } { n } \sum _ { i = 1 } ^ { n } \frac { 1 } { 2 } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) ^ { 2 } \]

在模型訓練中,咱們但願找出一組模型參數,記爲
\[w_{1}^{*},w_{2}^{*},b^{*}\],來使訓練樣本平均損失最小:
\[w_{1}^{*},w_{2}^{*},b^{*} = \underset { w _ { 1 } , w _ { 2 } , b }{\arg\min}\ell \left( w _ { 1 } , w _ { 2 } , b \right) \]

(3) 優化算法

當模型和損失函數較爲簡單時,上面的偏差最小化問題的解能夠用公式表達出來。這類解叫做解析解(analytical solution)。本節使用的線性迴歸和平均偏差恰好屬於這個範疇。然而,大多數深度學習的模型並無解析解,只能經過優化算法有限次的迭代模型參數儘量下降損失函數的值。這類解叫做數值解。

在求數值解的優化算法中,小批量隨機梯度降低(mini-batch stochastic gradient descent)在深度學習中普遍使用。它的算法很簡單,先選取一組模型參數的初始值,如隨機選取;接下來對參數進行屢次迭代,使每次迭代均可能下降損失函數的值。在每次迭代迭代中,先隨機均勻採樣一個由固定數目訓練數據樣本所組成的小批量(mini-batch)β,而後求小批量中數據樣本的平均溫馨有關模型參數的倒數(梯度),最後用此結果與預先設定的一個正數(學習率)的伺機做爲模型參數在本次迭代的減少量。

在訓練本節討論的線性迴歸模型過程當中,模型的每一個參數將做以下迭代:
\[ \begin{array} { l } { w _ { 1 } \leftarrow w _ { 1 } - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial w _ { 1 } } = w _ { 1 } - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } x _ { 1 } ^ { ( i ) } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \\ { w _ { 2 } \leftarrow w _ { 2 } - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial w _ { 2 } } = w _ { 2 } - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } x _ { 2 } ^ { ( i ) } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \\ { b \leftarrow b - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial b } = b - \frac { \eta } { | \mathcal { B } | } \sum _ { i \in \mathcal { B } } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \end{array} \]

上式中,|β|表明每一個小批量中樣本個個數(批量大小,batch size),η稱爲學習率(learning rate) 並取整數。須要強調的是,這裏的批量大小和學習率的值是認爲設定的,並非經過模型訓練出來的,所以叫做超參數(hyperparameter)。一般,咱們所說的調參正是指的調價超參數,例如經過反覆試錯來找到超參數的和食指。在少數狀況下,超參數也能夠經過模型訓練出來。

模型預測

模型訓練完成以後,咱們將模型的參數w_{1},w_{2},b在優化算法中止時的值記做\[\hat{w}_{1},\hat{w}_{2},\hat{b}\],注意,咱們獲得的並不必定是最小化損失函數的最優解\[\hat{w}_{1}^{*},\hat{w}_{2}^{*},\hat{b}\],而是一個最優解的近似。而後,咱們就可使用學到的線性迴歸模型\[x_{1}\hat {w}_{1}+x_{2}\hat {w}_{2} +\hat{b}\]來估算訓練數據集意外的任意一棟面積(平方米),房齡(年)爲\[{x}_{1},{x}_{2}\]的房屋的價格了。

相關文章
相關標籤/搜索