日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(神经网络)

發(fā)布時(shí)間:2024/1/18 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(神经网络) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 神經(jīng)網(wǎng)絡(luò)歷史
  • 形式神經(jīng)元模型(M-P模型)
  • 感知器
    • 多層感知器
  • 誤差反向傳播算法
  • 誤差函數(shù)和激活函數(shù)
    • 誤差函數(shù)
      • 二次代價(jià)函數(shù)
      • 交叉熵代價(jià)函數(shù)
    • 激活函數(shù)
      • sigmoid函數(shù)
      • RELU函數(shù)
    • 似然函數(shù)
      • softmax函數(shù)
  • 隨機(jī)梯度下降法
    • 批量學(xué)習(xí)方法
    • 在線學(xué)習(xí)
    • 小批量梯度下降法
  • 學(xué)習(xí)率
    • 自適應(yīng)調(diào)整學(xué)習(xí)率---AdaGrad方法

神經(jīng)網(wǎng)絡(luò)歷史


  • 提出形式神經(jīng)元模型(M-P模型)(1943)
  • 提出感知器(1958)
  • 感知器無法解決線性不可分問題(1969)

  • 提出神經(jīng)認(rèn)知機(jī)(1980)
  • 提出霍普菲爾德模型(1982)
  • 提出誤差反向傳播算法(1986)
  • 提出卷積神經(jīng)網(wǎng)絡(luò)(1989)

  • 提出將 預(yù)訓(xùn)練和自編碼器 與 深度神經(jīng)網(wǎng)絡(luò) 相結(jié)合(2006)
  • 提出在卷積神經(jīng)網(wǎng)絡(luò)中引入ReLU作為激活函數(shù)(2012)

形式神經(jīng)元模型(M-P模型)

  • 多個(gè)輸入結(jié)點(diǎn) x i x_i xi? 對應(yīng)一個(gè)輸出結(jié)點(diǎn)
  • 每個(gè)輸入結(jié)點(diǎn)乘以連接權(quán)重 w i w_i wi?,相加得到 y y y
  • y大于閾值h,輸出1,否則輸出0。

感知器

感知器能夠通過訓(xùn)練自動(dòng)確定參數(shù)

引入誤差修正學(xué)習(xí):根據(jù)實(shí)際輸出與期望輸出的差值調(diào)整權(quán)重 w i w_i wi? 和閾值 h h h。

多層感知器

多層結(jié)構(gòu)的感知器 遞階組成 輸入值向前傳播的網(wǎng)絡(luò)。(前饋網(wǎng)絡(luò)、正向傳播網(wǎng)絡(luò))

通常采用三層結(jié)構(gòu):輸入層,中間層,輸出層。

誤差反向傳播算法

通過比較實(shí)際輸出和期望輸出得到的誤差信號(hào),把誤差信號(hào)從輸出層逐層向前傳播得到各層的誤差信號(hào),再通過調(diào)整各層的連接權(quán)重以減小誤差。

通過實(shí)際輸出和期望輸出之間的誤差 E E E梯度進(jìn)行調(diào)整。

例:
y 1 = w 1 x + 1 , w 1 = 2 y 2 = w 2 y 1 2 , w 2 = 1 ; y_1 = w_1x + 1,w_1 = 2\\ y_2 = w_2y_1^2,w_2 = 1; y1?=w1?x+1w1?=2y2?=w2?y12?w2?=1;
現(xiàn)輸入 x = 1 x = 1 x=1 ,期望輸出 y 2 = 3 y_2 = 3 y2?=3

代入求得: y 1 = 2 ? 1 + 1 = 3 y_1 = 2 * 1 + 1 = 3 y1?=2?1+1=3 y 2 = 1 ? 3 2 = 10 y_2 = 1 * 3^2 = 10 y2?=1?32=10

誤差 E E E:與期望值相差 3 ? 10 = ? 7 3-10 = -7 3?10=?7

誤差反向傳播的梯度
? y 2 ? w 2 = y 1 2 = 9 ? y 2 ? w 1 = ? ( w 1 x + 1 ) 2 ? w 1 = 2 x 2 w 1 + 2 x = 6 或 = ? y 2 ? y 1 ? y 1 ? w 1 = 2 w 2 y 1 ? x = 6 \frac{\partial y_2}{\partial w_2} = y_1^2 = 9 \\ \quad\\ \frac{\partial y_2}{\partial w_1} = \frac{\partial (w_1x+1)^2}{\partial w_1} = 2x^2w_1 + 2x = 6\\ 或\\ =\frac{\partial y_2}{\partial y_1}\frac{\partial y_1}{\partial w_1} = 2w_2y_1 * x= 6 ?w2??y2??=y12?=9?w1??y2??=?w1??(w1?x+1)2?=2x2w1?+2x=6=?y1??y2???w1??y1??=2w2?y1??x=6

梯度的意義:
? y ? w :當(dāng) w = w + △ w ,則 y = y + ? y ? w △ w \frac{\partial y}{\partial w}:當(dāng)w = w + \bigtriangleup w,則y = y + \frac{\partial y}{\partial w}\bigtriangleup w ?w?y?:當(dāng)w=w+w,則y=y+?w?y?w

已知:
誤差為 ? 7 ,梯度 ? y 2 ? w 2 = 9 , ? y 2 ? w 1 = 6 誤差為-7,梯度 \frac{\partial y_2}{\partial w_2} = 9,\frac{\partial y_2}{\partial w_1} =6 誤差為?7,梯度?w2??y2??=9?w1??y2??=6
故可修改( η 表示學(xué)習(xí)率,設(shè) η = 1 \eta 表示學(xué)習(xí)率,設(shè)\eta =1 η表示學(xué)習(xí)率,設(shè)η=1 )
w 1 = w 1 + η E ? y 2 ? w 1 = 2 + 1 ? ( ? 7 ) / 6 = 2 ? 7 / 6 = 5 / 6 w 2 = w 2 + η E ? y 2 ? w 2 = 1 + 1 ? ( ? 7 ) / 9 = 1 ? 7 / 9 = 2 / 9 w_1 = w_1 + \frac{\eta E}{\frac{\partial y_2}{\partial w_1} } = 2 + 1*(-7)/6 = 2 - 7/6= 5/6\\ \quad\\ w_2 = w_2 + \frac{\eta E}{\frac{\partial y_2}{\partial w_2} } = 1 + 1 * (-7)/9 = 1-7/9 = 2/9 w1?=w1?+?w1??y2??ηE?=2+1?(?7)/6=2?7/6=5/6w2?=w2?+?w2??y2??ηE?=1+1?(?7)/9=1?7/9=2/9

w 1 , w 2 已被調(diào)整為新值, w 1 = 5 6 , w 2 = 2 9 w_1,w_2已被調(diào)整為新值,w_1 = \frac{5}{6},w_2=\frac{2}{9} w1?,w2?已被調(diào)整為新值,w1?=65?w2?=92?
將此值帶入原式計(jì)算,
y 1 = 11 6 , y 2 = 121 162 y_1 = \frac{11}{6} , y_2 = \frac{121}{162} y1?=611?,y2?=162121?
可看到, y 2 y_2 y2?從原先的 10 10 10 被調(diào)整到了 121 / 162 121/162 121/162,可以看到,通過誤差反向傳播確實(shí)可以修正權(quán)值 w 1 , w 2 w_1,w_2 w1?,w2?。
但是過大的學(xué)習(xí)率會(huì)導(dǎo)致結(jié)果過擬合,如上,我們需要最后值為3,但修改后的值甚至小于了1。因此調(diào)整合適的學(xué)習(xí)率 η \eta η是必須的。

誤差函數(shù)和激活函數(shù)

【機(jī)器學(xué)習(xí)基礎(chǔ)】2、代價(jià)函數(shù)\損失函數(shù)匯總

誤差函數(shù)

用于計(jì)算誤差值 E E E

引自:https://www.cnblogs.com/go-ahead-wsg/p/12346744.html

二次代價(jià)函數(shù)

C = 1 2 n ∑ x 1 , … x n ∥ y ( x ) ? a L ( x ) ∥ 2 C=\frac{1}{2 n} \sum_{x_{1}, \ldots x_{n}}\left\|y(x)-a^{L}(x)\right\|^{2} C=2n1?x1?,xn?? ?y(x)?aL(x) ?2

  • C表示代價(jià)函數(shù)
  • x表示樣本
  • y表示實(shí)際值
  • a表示輸出值
  • n表示樣本的總數(shù);

其中 a = σ ( z ) , z = ∑ w j ? x j + b a=\sigma(z), z=\sum w_j*x_j +b a=σ(z),z=wj??xj?+b

  • a代表激活函數(shù)的輸出值
  • σ代表sigmoid函數(shù)

? C ? w = ( a ? y ) σ ′ ( z ) x ? C ? b = ( a ? y ) σ ′ ( z ) \frac {\partial C} {\partial w} = (a-y)\sigma' (z)x \\\quad\\ \frac {\partial C} {\partial b} = (a-y)\sigma' (z) ?w?C?=(a?y)σ(z)x?b?C?=(a?y)σ(z)

注:由于反向誤差梯度與sigmoid函數(shù)的導(dǎo)數(shù)有關(guān),而sigmoid函數(shù)的導(dǎo)數(shù)會(huì)在值較大時(shí)有較小的倒數(shù),故會(huì)導(dǎo)致權(quán)值調(diào)整較小。
如下圖所示:

因此引入交叉熵代價(jià)函數(shù)

交叉熵代價(jià)函數(shù)

交叉熵代價(jià)函數(shù)(Cross-entropy cost function)是用來衡量人工神經(jīng)網(wǎng)絡(luò)(ANN)的預(yù)測值與實(shí)際值的一種方式。與二次代價(jià)函數(shù)相比,它能更有效地促進(jìn)ANN的訓(xùn)練。

C = ? 1 n ∑ x 1 , x n [ y ln ? a + ( 1 ? y ) ln ? ( 1 ? a ) ] C=-\frac{1}{n} \sum_{x_{1}, x_{n}}[y \ln a+(1-y) \ln (1-a)] C=?n1?x1?,xn??[ylna+(1?y)ln(1?a)]

  • C表示代價(jià)函數(shù)
  • x表示樣本
  • y表示實(shí)際值
  • a表示輸出值
  • n表示樣本的總數(shù);
    a = σ ( z ) , z = ∑ w j ? x j + b σ ′ ( z ) = σ ( z ) ( 1 ? σ ( x ) ) a=\sigma(z), z=\sum w_j*x_j +b\\ \quad\\ \sigma'(z) = \sigma(z)(1-\sigma (x)) a=σ(z),z=wj??xj?+bσ(z)=σ(z)(1?σ(x))

梯度求解
? C ? w j = ? 1 n ∑ x ( y σ ( z ) ? ( 1 ? y ) 1 ? σ ( z ) ) ? σ ? w j = ? 1 n ∑ x ( y σ ( z ) ? ( 1 ? y ) 1 ? σ ( z ) ) σ ′ ( z ) x j = 1 n ∑ x σ ′ ( z ) x j σ ( z ) ( 1 ? σ ( z ) ) ( σ ( z ) ? y ) = 1 n ∑ x x j ( σ ( z ) ? y ) ? C ? b = 1 n ∑ x ( σ ( z ) ? y ) \begin{aligned} \frac{\partial C}{\partial w_{j}} & =-\frac{1}{n} \sum_{x}\left(\frac{y}{\sigma(z)}-\frac{(1-y)}{1-\sigma(z)}\right) \frac{\partial \sigma}{\partial w_{j}} \\ & =-\frac{1}{n} \sum_{x}\left(\frac{y}{\sigma(z)}-\frac{(1-y)}{1-\sigma(z)}\right) \sigma^{\prime}(z) x_{j} \\ & =\frac{1}{n} \sum_{x} \frac{\sigma^{\prime}(z) x_{j}}{\sigma(z)(1-\sigma(z))}(\sigma(z)-y) \\ & =\frac{1}{n} \sum_{x} x_{j}(\sigma(z)-y) \\ \frac{\partial C}{\partial b} & =\frac{1}{n} \sum_{x}(\sigma(z)-y) \end{aligned} ?wj??C??b?C??=?n1?x?(σ(z)y??1?σ(z)(1?y)?)?wj??σ?=?n1?x?(σ(z)y??1?σ(z)(1?y)?)σ(z)xj?=n1?x?σ(z)(1?σ(z))σ(z)xj??(σ(z)?y)=n1?x?xj?(σ(z)?y)=n1?x?(σ(z)?y)?

可以看出:權(quán)值 w w w 和偏執(zhí)值 b b b 的調(diào)整與 σ ′ ( z ) σ′(z) σ(z) 無關(guān),另外,梯度公式中的 σ ( z ) ? y σ(z)?y σ(z)?y
表示輸出值與實(shí)際值放入誤差。所以當(dāng)誤差越大時(shí),梯度就越大,參數(shù)w和b的調(diào)整就越快,訓(xùn)練的速度也就越快。

總結(jié):當(dāng)輸出神經(jīng)元是線性的,那么二次代價(jià)函數(shù)就是一種合適的選擇。如果輸出神經(jīng)元是S型函數(shù),那么比較適合交叉墑代價(jià)函數(shù)。

激活函數(shù)

激活函數(shù)類似于人類神經(jīng)元,對輸入信號(hào)進(jìn)行線性或非線性變換。

  • M-P模型中使用step函數(shù)作為激活函數(shù)
  • 多層感知器中使用sigmoid函數(shù),或tanh函數(shù)(雙曲正切函數(shù))
  • 最近幾年在深度學(xué)習(xí)中,修正線性單元(Rectified Linear Unit,ReLU)

sigmoid函數(shù)

f ( u ) = 1 1 + e ? u u = ∑ i = 1 n w i x i f(u) = \frac{1}{1+e^{-u}} \\\quad\\ u = \sum_{i=1}^nw_ix_i f(u)=1+e?u1?u=i=1n?wi?xi?
偏導(dǎo)數(shù):
? f ( u ) ? u = f ( u ) ( 1 ? f ( u ) ) \frac{\partial f(u)}{\partial u} = f(u)(1-f(u)) ?u?f(u)?=f(u)(1?f(u))

RELU函數(shù)

f ( u ) = m a x ( 0 , u ) ? f ( u ) ? u = 1 f(u) = max(0,u)\\ \quad\\ \frac{\partial f(u)}{\partial u} = 1 f(u)=max(0,u)?u?f(u)?=1

似然函數(shù)

似然函數(shù)用于計(jì)算多層感知器的輸出結(jié)果,通常以softmax函數(shù)作為似然函數(shù)。

softmax函數(shù)

p ( y k ) = e x p ( u 2 k ) ∑ q = 1 Q e x p ( u 2 q ) p(y^k) = \frac{exp(u_{2k})}{\sum_{q=1}^Q exp(u_{2q})} p(yk)=q=1Q?exp(u2q?)exp(u2k?)?
softmax函數(shù)的分母是對輸出層所有單元(q = 1,······,Q)的激活函數(shù)值的求和,起到歸一化的作用。

隨機(jī)梯度下降法

使用部分訓(xùn)練樣本進(jìn)行迭代計(jì)算,這種方法叫做隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD),與之相對的是批量學(xué)習(xí)方法。

批量學(xué)習(xí)方法

計(jì)算時(shí)遍歷全部訓(xùn)練樣本,設(shè)第 t t t 次迭代各訓(xùn)練樣本誤差為 E n t E_n^t Ent? ,通過所有誤差項(xiàng)計(jì)算全部訓(xùn)練樣本誤差:
E = ∑ n = 1 n E n E = \sum_{n=1}^n E_n E=n=1n?En?
基于全部訓(xùn)練樣本得到權(quán)重權(quán)重調(diào)整值并修正網(wǎng)絡(luò)連接權(quán)重
w = w ? η ? E ? w w = w - \eta \frac{\partial E}{\partial w} w=w?η?w?E?
然后使用調(diào)整后的連接權(quán)重測試全部訓(xùn)練樣本,如此反復(fù)迭代計(jì)算權(quán)重調(diào)整并修正網(wǎng)絡(luò)。

  • 優(yōu)點(diǎn):能有效抑制訓(xùn)練集內(nèi)帶噪聲的樣本所導(dǎo)致的輸入模式劇烈變動(dòng)
  • 缺點(diǎn):每次調(diào)整連接權(quán)值,所有樣本都要參與訓(xùn)練,所有訓(xùn)練時(shí)間長

在線學(xué)習(xí)

逐個(gè)輸入訓(xùn)練樣本

由于在線學(xué)習(xí)每次迭代計(jì)算一個(gè)訓(xùn)練樣本,所以訓(xùn)練樣本的差異會(huì)導(dǎo)致結(jié)果出現(xiàn)大幅變動(dòng)。
迭代結(jié)果的變動(dòng)可能導(dǎo)致訓(xùn)練無法收斂。

小批量梯度下降法

介于在線學(xué)習(xí)和批量學(xué)習(xí)之間,將訓(xùn)練集分成幾個(gè)子集D,每次迭代使用一個(gè)子集。

小批量下降法能夠縮短單次訓(xùn)練時(shí)間,又能降低迭代結(jié)果的變動(dòng)。

由于隨機(jī)梯度下降法只使用部分訓(xùn)練樣本,每次迭代后樣本集的趨勢都會(huì)發(fā)生變化,所以減少了迭代結(jié)果陷入局部最優(yōu)解的情況。

學(xué)習(xí)率

用來確定權(quán)重連接調(diào)整的系數(shù)。

如果學(xué)習(xí)率過大,則有可能修正過頭
如果學(xué)習(xí)率較小,收斂速度會(huì)很慢。

自適應(yīng)調(diào)整學(xué)習(xí)率—AdaGrad方法

用學(xué)習(xí)率除以截至當(dāng)前時(shí)刻 t t t 的梯度 ▽ E \bigtriangledown E E 的累計(jì)值,得到神經(jīng)網(wǎng)絡(luò)的連接權(quán)重 w w w.

w = w ? η ▽ E ( t ) ∑ i = 1 t ( ▽ E ( i ) ) 2 + ε w = w - \eta\frac{\bigtriangledown E^{(t)}}{\sqrt{ \sum_{i=1}^t(\bigtriangledown E^{(i)})^2 +}\varepsilon } w=w?ηi=1t?(E(i))2+ ?εE(t)?

總結(jié)

以上是生活随笔為你收集整理的深度学习(神经网络)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。