学习笔记9--深度前馈网络
本系列博客包括6個專欄,分別為:《自動駕駛技術概覽》、《自動駕駛汽車平臺技術基礎》、《自動駕駛汽車定位技術》、《自動駕駛汽車環境感知》、《自動駕駛汽車決策與控制》、《自動駕駛系統設計及應用》,筆者不是自動駕駛領域的專家,只是一個在探索自動駕駛路上的小白,此系列叢書尚未閱讀完,也是邊閱讀邊總結邊思考,歡迎各位小伙伴,各位大牛們在評論區給出建議,幫筆者這個小白挑出錯誤,謝謝!
此專欄是關于《自動駕駛汽車環境感知》書籍的筆記
2.深度前饋網絡
2.1 神經元
人工神經元(artificial neuron)簡稱神經元(neuron),是構成神經網絡的基本單元,主要是模擬生物神經元的結構和特性,接收一組輸入信號并產出輸出;
神經元模型:
f(∑iωixi+b)f(\sum_i\omega_ix_i+b)f(i∑?ωi?xi?+b)
其中:fff為激活函數;為了增強網絡的表達能力及學習能力,一般使用連續非線性激活函數(activation function);
sigmoid激活函數的兩種形式:logistic函數和tanh函數;
logistic函數定義為:σ(x)\sigma(x)σ(x):
σ(x)=11+e?x\sigma(x)=\frac{1}{1+e^{-x}}σ(x)=1+e?x1?
logistic函數圖像如上,可以看成一個"擠壓"函數,把一個實數域的輸入"擠壓"到(0,1);當輸入值在0附近時,sigmoid函數近似線性函數;當輸入值靠近兩端時,對輸入進行抑制;輸入越小,其值越接近0;輸入越大,其值越接近1;
tanh函數定義為tanh(x):
tanh(x)=ex?e?xex+e?x=2σ(2x)?1tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\sigma(2x)-1tanh(x)=ex+e?xex?e?x?=2σ(2x)?1
logistic函數的導數為:σ′(x)=σ(x)(1?σ(x))\sigma'(x)=\sigma(x)(1-\sigma(x))σ′(x)=σ(x)(1?σ(x));logistic函數在0附近的一階泰勒展開式為:
gl(x)≈σ(0)+x×σ′(0)=0.25x+0.5gl(x)≈\sigma(0)+x\times\sigma'(0)=0.25x+0.5gl(x)≈σ(0)+x×σ′(0)=0.25x+0.5
hard?logistic(x)={1gl(x)≥1gl(x)0<gl(x)<1=max?(min?(gl(x),1),0)0gl(x)≤0hard-logistic(x)= \left\{ \begin{array}{lr} 1& & gl(x) \ge 1\\ gl(x) && 0 < gl(x)<1=\max(\min(gl(x),1),0)\\ 0 & &gl(x)≤0 \end{array} \right. hard?logistic(x)=????1gl(x)0??gl(x)≥10<gl(x)<1=max(min(gl(x),1),0)gl(x)≤0?
tanh函數在0附近的一階泰勒展開式為:
gt(x)≈tanh?(0)+x×tanh?′(0)xgt(x)≈\tanh(0)+x\times\tanh'(0)xgt(x)≈tanh(0)+x×tanh′(0)x
則
hard?tanh(x)=max?(min?(gt(x),1),?1)=max?(min?(x,1),?1)hard-tanh(x)=\max(\min(gt(x),1),-1)=\max(\min(x,1),-1) hard?tanh(x)=max(min(gt(x),1),?1)=max(min(x,1),?1)
3.修正線性單元
修正線性單元(Rectified Linear Unit,ReLU),ReLU函數實際是一個斜坡函數,定義:
rectifier(x)={xx≥00x<0=max?(0,x)rectifier(x)= \left\{ \begin{array}{lr} x& & x \ge 0\\ 0 && x<0 \end{array} \right.=\max(0,x) rectifier(x)={x0??x≥0x<0?=max(0,x)
注:rectifier函數為左飽和函數,在x>0x>0x>0時導數為1,在x≤0x≤0x≤0時導數為0;在訓練時,學習率設置過大,在一次更新參數后,一個采用ReLU的神經元在所有的訓練數據上都不能被激活;
帶泄露的ReLU(Leaky ReLU)在輸入x<0x<0x<0時,保持一個很小的梯度;這樣當神經元非激活時也有一個非零的梯度可以更新參數,避免永遠不能被激活,定義:
f(x)=max?(0,x)+γmin?(0,x)={xx≥0γxx<0;γ∈(0,1)是一個很小的常數,如0.01f(x)=\max(0,x)+\gamma\min(0,x)=\left\{ \begin{array}{lr} x& & x \ge 0\\ \gamma{x} && x<0 \end{array} \right.;\gamma\in(0,1)是一個很小的常數,如0.01 f(x)=max(0,x)+γmin(0,x)={xγx??x≥0x<0?;γ∈(0,1)是一個很小的常數,如0.01
帶參數的ReLU(Parametric ReLU,PReLU)引入一個可學習的參數,不同神經元可以有不同的參數;對于第iii個神經元,ReLU定義:
PReLUi(x)=max?(0,x)+γimin?(0,x)={xx>0γixx≤0;γi為x≤0時函數的斜率PReLU_i(x)=\max(0,x)+\gamma_i\min(0,x)=\left\{ \begin{array}{lr} x& & x > 0\\ \gamma_i{x} && x≤0 \end{array} \right.;\gamma_i為x≤0時函數的斜率 PReLUi?(x)=max(0,x)+γi?min(0,x)={xγi?x??x>0x≤0?;γi?為x≤0時函數的斜率
softplus函數定義:
softplus(x)=log?(1+ex)softplus(x)=\log(1+e^x) softplus(x)=log(1+ex)
2.2 網絡結構
常用的神經網絡結構:
2.3 深度前饋網絡
前饋神經網絡中,各神經元分別屬于不同層;
每一層的神經元可以接收前一層神經元的信號,并產生信號輸出到下一層;
第一層為輸入層,最后一層為輸出層,其他中間層為隱藏層;
整個網絡無反饋,信號從輸入層向輸出層單向傳播;
前饋神經網絡信息傳播的公式:
z(l)=W(l)a(l?1)+b(l);a(l)=fl(z(l))z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)};a^{(l)}=f_l(z^{(l)})z(l)=W(l)a(l?1)+b(l);a(l)=fl?(z(l))
2.4 參數學習
深度前饋神經網絡中,(W,b)(W,b)(W,b)是模型參數,給定輸入和輸出數據對(x,y)(x,y)(x,y),得到模型參數的過程稱為訓練或學習;
交叉熵損失函數實例:
L(y,y^)=?yTlog?y^,y^為對應的one?hot向量表示L(y,\hat{y})=-y^T\log{\hat{y}},\hat{y}為對應的one-hot向量表示L(y,y^?)=?yTlogy^?,y^?為對應的one?hot向量表示
W(l)←W(l)?α?R(W,b)?W(l)=W(l)?α(1N∑i=1N?L(y(i),y^(i))?W(l)+λW(l))W^{(l)}\leftarrow{W^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{W^{(l)}}}=W^{(l)}-\alpha(\frac{1}{N}\sum^{N}_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)}})}{\partial{W^{(l)}}}+\lambda{W^{(l)}}) W(l)←W(l)?α?W(l)?R(W,b)?=W(l)?α(N1?i=1∑N??W(l)?L(y(i),y^?(i))?+λW(l))
b(l)←b(l)?α?R(W,b)?b(l)=b(l)?α(1N∑i=1N?L(y(i),y^(i))?b(l))b^{(l)}\leftarrow{b^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{b^{(l)}}}=b^{(l)}-\alpha(\frac{1}{N}\sum^N_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)})}}{\partial{b^{(l)}}}) b(l)←b(l)?α?b(l)?R(W,b)?=b(l)?α(N1?i=1∑N??b(l)?L(y(i),y^?(i))?)
α\alphaα為學習率;
總結
以上是生活随笔為你收集整理的学习笔记9--深度前馈网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STATA学习笔记:数据合并
- 下一篇: Cent OS 7安装redis