深度學習基礎之 2 2用梯度下降法求解w,b

2021-09-22 21:23:16 字數 2462 閱讀 9569

預設函式 hypothesis function

z =w

x+

bz = wx+b

z=wx+b

損失函式 loss function

j (w

,b)=

12(z

−y)2

j(w,b) = \frac(z-y)^2

j(w,b)

=21​

(z−y

)2z是**值,y是樣本標籤值。

求w的梯度

我們用j的值作為基準,去求w對它的影響,也就是j對w的偏導數(鏈式求導):

∂ j(

w,b)

∂w=∂

j∂z∂

z∂

w\frac}} = \frac}}\frac}}

∂w∂j(w

,b)​

=∂z∂

j​∂w

∂z​

因為:∂j∂

z=∂∂

z[12

(z−y

)2]=

z−

y\frac}} = \frac}}[\frac(z-y)^2] = z-y

∂z∂j​=

∂z∂​

[21​

(z−y

)2]=

z−y ∂z∂

w=∂∂

w(wx

+b)=

x\frac}} = \frac}}(wx+b) = x

∂w∂z​=

∂w∂​

(wx+

b)=x

所以組合起來:

∂ j∂

w=∂j

∂z∂z

∂w=(

z−y)

⋅x

\frac}} = \frac}}\frac}} = (z-y) \cdot x

∂w∂j​=

∂z∂j

​∂w∂

z​=(

z−y)

⋅x求b的梯度

∂ j∂

b=∂j

∂z∂z

∂b

\frac}} = \frac}}\frac}}

∂b∂j​=

∂z∂j

​∂b∂

z​其中第一項前面算w的時候已經有了,而:

∂ z∂

b=∂(

wx+b

)∂b=

1\frac}} = \frac}} = 1

∂b∂z​=

∂b∂(

wx+b

)​=1

所以:∂j∂

b=∂j

∂z∂z

∂b=(

z−y)

⋅1=z

−y

\frac}} = \frac}}\frac}} = (z-y) \cdot 1 = z-y

∂b∂j​=

∂z∂j

​∂b∂

z​=(

z−y)

⋅1=z

−y**

if __name__ == '__main__':

eta = 0.1

x, y = readdata()

w, b = 0.0, 0.0

#w,b = np.random.random(),np.random.random()

# count of samples

num_example = x.shape[0]

for i in range(num_example):

# get x and y value for one sample

x = x[i]

y = y[i]

# get z from x,y

z = w*x+b

# calculate gradient of w and b

dz = z - y

db = dz

dw = dz * x

# update w,b

w = w - eta * dw

b = b - eta * db

print(w,b)

dw=

(z−y

)⋅x,

db=z

−y

dw = (z-y) \cdot x,db = z-y

dw=(z−

y)⋅x

,db=

z−y,這個和公式推導完全一樣。之所以有個dz是想儲存中間計算結果,不重複勞動。因為這個函式是每次內迴圈都被呼叫的,所以要盡量優化。

另外,大家可以看到,在**中,我們並沒有直接計算損失函式值,而只是把它融入在公式推導中。

木頭:哦!我明白了,原來大名鼎鼎的梯度下降,其實就是把推導的結果轉化為數學公式和**,直接放在迭代過程裡!

機器學習之梯度下降法 梯度下降法分析

梯度下降法的基本思想是函式沿著其梯度方向增加最快,反之,沿著其梯度反方向減小最快。在前面的線性回歸和邏輯回歸中,都採用了梯度下降法來求解。梯度下降的迭代公式為 j j j j 在回歸演算法的實驗中,梯度下降的步長 為0.01,當時也指出了該步長是通過多次時間找到的,且換一組資料後,演算法可能不收斂。...

機器學習之梯度下降法

1 批量 梯度下降 使用整個訓練集的優化演算法被稱為批量 batch 梯度下降演算法。術語 批量梯度下降 指使用全部訓練集,而術語 批量 單獨出現時指一組樣本。2 隨機梯度下降 每次只使用單個樣本的優化演算法被稱為隨機 stochastic 梯度下降演算法。3 小批量梯度下降 大多數用於深度學習的演...

機器學習之梯度下降法

如圖,對於函式f x,y 函式的增量與pp 兩點距離之比在p 沿l趨於p時,則為函式在點p沿l方向的方向導數。記為 f l lim 0f x x,y y f x,y 其中 x 2 y 2 方向導數為函式f沿某方向的變化速率。而且有如下定理 f l f xc os f y sin 梯度是乙個向量,它的...