【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )
文章目錄
- I . 線性回歸 與 邏輯回歸
- II . sigmod 非線性激活函數
- III . 神經元單元 邏輯
- IV . 單個 神經元單元 總結
- V . 神經網絡 每一層分析
- VI . 神經網絡 矩陣形式
I . 線性回歸 與 邏輯回歸
1 . 神經元單元本質 : 一個 神經元 單元 , 其本質是 邏輯回歸單元 ;
2 . 邏輯回歸 與 線性回歸 :
① 回歸 : 用于預測連續的值 , 叫做回歸 ; 預測離散的值叫做分類 ;
② 線性回歸 : 確定若干變量之間的相互依賴關系 ; 回歸分析中 , 自變量 xxx , 因變量 yyy , y=wx+by=wx +by=wx+b , 自變量和因變量之間的關系是一條直線 , 叫做一元線性回歸分析 ; 如果有多個自變量 , 自變量與因變量是線性關系 , 叫做多遠線性回歸分析 ;
③ 邏輯回歸 : 是廣義的線性回歸 , 類似于多重線性回歸分析 , 其模型都包含 wx+bwx+bwx+b ; 多重線性回歸將 wx+bwx+bwx+b 作為因變量 ; 邏輯回歸 通過函數 LLL , 將 wx+bwx+bwx+b 轉為狀態 ppp , p 決定因變量的值 , LLL 函數如果是邏輯函數 , 該回歸就是邏輯回歸 ;
④ sigmod 激活函數 : 這里的 sigmod 激活函數就是邏輯回歸函數 , 因此該回歸也叫作邏輯回歸 ;
⑤ 線性支持向量機 : 某種程度上是邏輯回歸 ;
II . sigmod 非線性激活函數
1 . sigmod 非線性變換函數的作用 : 目的是為了進行非線性變換 ;
沒有邏輯回歸后果 : 如果沒有非線性變換 , 不管神經網絡是多少層的 , 只能進行 111 個線性變換 ; 每一層的輸出都是上一層的輸出的線性變換結果 , 即使有 100100100 層 , 其變換還是線性的 , 無法擬合復雜的的函數變換 ;
sigmod 函數是非線性的激活函數 , 目的是將線性的計算 , 轉為非線性的計算方式 ;
引入了非線性激活函數 , 使整個神經網絡的模型更加 靈活 ;
2 . 線性計算 : 神經元單元 輸入的計算方式是 將上一層單元的輸出進行線性疊加 , 乘以一個權值 , 再加上偏置 , 這是線性計算 , 該操作執行 100100100 次也是線性操作 ;
3 . 非線性計算 : 神經元單元 輸出的計算方式是 將輸入的數值 , 經過 sigmod 激活函數 , 轉為一個 (0,1)(0,1)(0,1) 的輸出結果 , 該計算過程是非線性的操作 ;
III . 神經元單元 邏輯
神經元單元 邏輯 :
hw,b(x)=f(wx+b)h_{w,b}(x) = f(w x + b)hw,b?(x)=f(wx+b)
f(z)=11+e?zf(z) = \dfrac{1}{1 + e^{-z}}f(z)=1+e?z1?
xxx 是上一層連接單元的輸出 ;
www 指的是單元之間連接的權重 ;
bbb 指的是單元本身的偏置屬性 , 可能是一個單元的偏置 , 如果有多個連接 , 就是多個單元的偏置之和 ;
hhh 就是將線性的 wx+bwx+bwx+b 結果轉為 (0,1)(0,1)(0,1) 區間值的隱藏狀態 ;
wx+bw x + bwx+b 是本層的輸入 ;
fff 函數是一個非線性的激活函數 , 這里指的是 sigmod 激活函數 , 將本層的輸入轉為本層的輸出 , 該函數將全體實數映射到 (0,1)(0,1)(0,1) 之間 ;
hw,b(x)h_{w,b}(x)hw,b?(x) 是將上一層的輸出 , 轉為本層的輸出 ;
IV . 單個 神經元單元 總結
1 . 單個 神經元單元 總結 :
① 線性回歸轉換成輸入 : 計算中間層單元的輸入時 , 通過上一層的輸出值 乘以 連接權值 , 加上偏置 , 等一系列線性計算 , 得到輸入值 , 這是線性回歸變換 ;
② 邏輯回歸轉換成輸出 : 將上述線性回歸變換的結果 , 經過 sigmod 激活函數計算 , 將多個線性輸入 , 轉化成了 (0,1)(0, 1)(0,1) 區間內的 單個輸出 ,
2 . 通過線性回歸將輸出轉為輸入 ;
然后通過 sigmod 激活函數 , 將輸入轉換成了 (0,1)(0,1)(0,1) 區間的 輸出值 ;
單層的 多個神經元單元 , 可以看做是同時并發運行的邏輯回歸單元 ;
V . 神經網絡 每一層分析
1 . 神經網絡本質 : 神經元的本質是運行單個邏輯回歸單元 , 神經網絡的本質是 在每一層并行運行多個邏輯回歸單元 , 先后運行多層 ( 輸入層 / 隱藏層 / 輸出層 ) ;
2 . 神經網絡每層單元運行機制 ( 并行運行多個單元 ) : 對于神經網絡中的每一層 , 有若干個神經元單元 , 該層的運行相當于若干個 神經元單元 并行運行 , 即 該層的神經元單元同時進行 輸入計算 , 同時進行輸出計算 , 然后根據輸出 , 計算后一層的每個單元的輸入值 ;
3 . 神經網絡每層的輸入輸出 :
① 線性輸入 : 神經網絡每一層的輸入 , 可以看做若干線性回歸 計算 ;
② 邏輯輸出 : 神經網絡每一層的輸出 , 可以看做若干邏輯回歸 計算 ;
4 . 神經網絡層計算本質 : 將 向量值 ( 多個單元的輸入值 ) 傳入一組邏輯回歸函數 ( sigmod 激活函數 ) , 得到的也是向量值輸出 ( 多個單元的輸出值 ) ;
向量值就是多個變量組成的一維矩陣 ;
VI . 神經網絡 矩陣形式
1 . 使用上一篇博客的示例 : 以計算下圖中的 4,54 , 54,5 兩個節點的輸入 和 輸出為例 ;
① 節點 4,54 , 54,5 輸入計算
I4=(w14O1+b1)+(w24O2+b2)+(w34O3+b3)I_4 = (w_{14}O_1 + b_1 ) + (w_{24}O_2 + b_2 ) + (w_{34}O_3 + b_3 )I4?=(w14?O1?+b1?)+(w24?O2?+b2?)+(w34?O3?+b3?)
I5=(w15O1+b1)+(w25O2+b2)+(w35O3+b3)I_5 = (w_{15}O_1 + b_1 ) + (w_{25}O_2 + b_2 ) + (w_{35}O_3 + b_3 )I5?=(w15?O1?+b1?)+(w25?O2?+b2?)+(w35?O3?+b3?)
② 連接權值 : w14,w24,w34,w15,w25,w35w_{14} , w_{24} , w_{34}, w_{15} , w_{25} , w_{35}w14?,w24?,w34?,w15?,w25?,w35? 是 666 條有向弧連接的權值 ; 如 w14w_{14}w14? 是單元 111 與 單元 444 連接的權值 ;
③ 偏置 : b1,b2,b3b_1 , b_2, b_3b1?,b2?,b3? 分別是 單元 1,2,31 , 2 , 31,2,3 的偏置 ;
④ 上層單個單元輸出對應的輸入值 :
(w14O1+b1)(w_{14}O_1 + b_1 )(w14?O1?+b1?) 對應單元 111 輸出到單元 444 的輸入值 ;
(w24O2+b2)(w_{24}O_2 + b_2 )(w24?O2?+b2?) 對應單元 222 輸出到單元 444 的輸入值 ;
(w34O3+b3)(w_{34}O_3 + b_3 )(w34?O3?+b3?) 對應單元 333 輸出到單元 444 的輸入值 ;
(w15O1+b1)(w_{15}O_1 + b_1 )(w15?O1?+b1?) 對應單元 111 輸出到單元 555 的輸入值 ;
(w25O2+b2)(w_{25}O_2 + b_2 )(w25?O2?+b2?) 對應單元 222 輸出到單元 555 的輸入值 ;
(w35O3+b3)(w_{35}O_3 + b_3 )(w35?O3?+b3?) 對應單元 333 輸出到單元 555 的輸入值 ;
2 . 隱藏層 輸入 計算的矩陣形式 :
隱藏層輸入計算 : Z=Wx+bZ = Wx + bZ=Wx+b
隱藏層輸出計算 : a=f(z)a = f(z)a=f(z)
① www 矩陣 : 上一層單元 與 本層單元 連接的 權值矩陣 , 共有 666 個連接 , 如 w14w_{14}w14? 代表單元 111 和單元 444 的連接 ;
W=[w14w24w34w15w25w35]W = \begin{bmatrix} w_{14} & w_{24} & w_{34} \\\\ w_{15} & w_{25} & w_{35} \end{bmatrix}W=???w14?w15??w24?w25??w34?w35?????
② xxx 矩陣 : 代表上一層單元的輸出值 矩陣 , O1O_1O1? 代表單元 111 的輸出 , O2O_2O2? 代表單元 222 的輸出 , O3O_3O3? 代表單元 333 的輸出 ;
x=[O1O2O3]x=\begin{bmatrix} O_1 \\\\ O_2 \\\\ O_3 \end{bmatrix}x=???????O1?O2?O3?????????
③ bbb 矩陣 : b 代表上一層單元的偏置矩陣 ;
b=[b1b2b3]b=\begin{bmatrix} b_1 \\\\ b_2 \\\\ b_3 \end{bmatrix}b=???????b1?b2?b3?????????
④ zzz 矩陣 : 代表隱藏層輸入值矩陣 , 使用上面的 w,x,bw, x , bw,x,b 三個矩陣計算出的結果也是矩陣 , 結果是線性計算輸入的值組成的矩陣 ;
z=[I1I2]z=\begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix}z=???I1?I2?????
⑤ aaa 矩陣 : 代表隱藏層的 222 個單元的輸出值 ;
a=[O1O2]a=\begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix}a=???O1?O2?????
即 :
O1=11+e?I1O_1 = \dfrac{1}{1 + e^{-I_1}}O1?=1+e?I1?1?
O2=11+e?I2O_2 = \dfrac{1}{1 + e^{-I_2}}O2?=1+e?I2?1?
3 . 矩陣形式 展開 :
① 隱藏層輸入計算 : Z=Wx+bZ = Wx + bZ=Wx+b
② 隱藏層輸出計算 : a=f(z)a = f(z)a=f(z)
③ 隱藏層輸入計算矩陣形式展開后為 :
[I1I2]=[w14w24w34w15w25w35]×[O1O2O3]+[b1b2b3]\begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} = \begin{bmatrix} w_{14} & w_{24} & w_{34} \\\\ w_{15} & w_{25} & w_{35} \end{bmatrix} \times \begin{bmatrix} O_1 \\\\ O_2 \\\\ O_3 \end{bmatrix} + \begin{bmatrix} b_1 \\\\ b_2 \\\\ b_3 \end{bmatrix}???I1?I2?????=???w14?w15??w24?w25??w34?w35?????×???????O1?O2?O3?????????+???????b1?b2?b3?????????
④ 隱藏層輸出計算矩陣形式展開后為 :
[O1O2]=f([I1I2])\begin{bmatrix} O_1 \\\\ O_2 \end{bmatrix} = f( \begin{bmatrix} I_1 \\\\ I_2 \end{bmatrix} )???O1?O2?????=f(???I1?I2?????)
總結
以上是生活随笔為你收集整理的【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】神经网络 后向传播算法 向前
- 下一篇: 【数据挖掘】神经网络 后向传播算法( 向