PyTorch學習(神經網絡基礎1)

之前看的那個本深度學習書太難啃了,好多概念都不懂,真就從入門到放棄唄,於是我換了本從基礎講的,先補一補再回去看吧(笑哭)。

訓練集、測試集、矩陣

訓練集和測試集內部包含的數據類型都是相同的,即(x,y),x代表輸入數據,特徵向量,是個n維的向量;y代表輸出值,標籤。
當我們想把訓練集變得更緊湊是時,可以用X一個矩陣把所有的特徵向量放到一起,第一個特徵向量放在第一列,第二個放在第二列,依次第m個放在m列。所以這個矩陣有m列,m爲樣本個數。
這樣好像就有點能明白之前算法中矩陣是怎麼突然出現的了。
在這裏插入圖片描述

邏輯迴歸

這裏的例子是二元分類的,你進行一次輸入想讓算法輸出預測,稱之爲𝑦^,代表着真實輸出y的一種情況的可能性。X是n維的特徵向量,即是輸入,用w代表邏輯迴歸的參數,也是一個n維向量,參數中還有一個b,一個實數代表偏差。
y=wTx+b y=w^Tx+b
這是個線性函數,和線性迴歸的函數好像。
不過二元分類要的是出現的概率,答案的數值只能在0到1之間,線性函數明顯超出了這個範圍,要把這個函數當中sigmoid函數的參數,y=w^Tx+b記爲z。
sigmod的函數樣式和公式如下:
δz=11+ez \delta(z)= {1\over1+e^{-z}}
在這裏插入圖片描述
不過其實這種方法只是極限值爲0和1且變換曲線太慢了,作爲激活函數已經有了更好的替代。

邏輯迴歸的代價函數

瞭解代價函數前,需要知道損失函數,損失函數是根據單個訓練樣本的表現的定義的,代價函數則是對整體的表現,可以設爲m個樣本的損失函數求和然後除以m,損失函數和代價函數都是爲了調整參數w與b而設置的。
在邏輯迴歸中損失函數可以設爲:
L(y,y)=ylog(y)(1y)log(1y) L(y^-,y)=-ylog(y^-)-(1-y)log(1-y^-)
代價函數則爲:
J(w,b)=1m1mL(y(i),y(i)) J(w,b)={1\over m}\sum_1^mL(y^{-(i)},y^{(i)})

梯度下降法

有了代價函數,就可以通過最小化代價函數對參數w、b進行訓練了。
上面給出的代價函數是一個凸函數,只需要在這個函數中找到w,b使得代價函數的值最小即可。
其更新參數的方法爲:
w:=waδj(w,b)δw w:=w-a{\delta j(w,b)\over\delta w}
b:=baδj(w,b)δb b:=b-a{\delta j(w,b)\over\delta b}
a代表學習率,後面分式是代價函數的偏導數,代表在某一方向的斜率,通過調整學習率可以控制w,b接近最低點的速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章