【人工智能】深度學習:神經網絡模型
神經網絡基礎知識
BP神經網絡的概念
單個神經元的結構
CNN模型匯總
LeNet5 模型
AlexNet 模型
VGG模型
Inception Net(GoogleNet)模型
ResNet (殘差網絡)
RNN模型(循環神經網絡)
為什么需要RNN
RNN結構
LSTM(長短期記憶網絡)模型
LSTM結構
GRU模型
GRU結構
計算重置門rtr_trt?和候選狀態h~t\tilde{h}_th~t?
計算更新門ztz_tzt?和當前狀態hth_tht?
🎈邊走、邊悟🎈遲早會好 |
神經網絡基礎知識
神經網絡(Neural Network)是一種模擬人腦神經元連接方式的計算模型。其基本組成部分是神經元(Neurons),通過加權連接和激活函數構成復雜的網絡結構。神經網絡廣泛應用于模式識別、分類和回歸等領域。
BP神經網絡的概念
BP神經網絡(Backpropagation Neural Network)是多層前饋神經網絡的訓練算法,通過誤差反向傳播調整網絡權重以最小化輸出誤差。它主要包括以下步驟:
- 前向傳播:輸入數據通過網絡傳播,生成預測輸出。
- 計算誤差:預測輸出與真實輸出之間的差異。
- 反向傳播:誤差反向傳播,通過梯度下降法調整網絡權重。
單個神經元的結構
單個神經元的基本結構包括:
- 輸入(Input):接收多個輸入信號。
- 權重(Weights):每個輸入信號乘以對應的權重。
- 加權和(Weighted Sum):所有加權輸入信號的和。
- 激活函數(Activation Function):將加權和映射到輸出信號。常用的激活函數包括Sigmoid、ReLU、Tanh等。
公式表示為: y=f(∑i=1nwixi+b)y = f\left( \sum_{i=1}^{n} w_i x_i + b \right)y=f(∑i=1n?wi?xi?+b) 其中,fff是激活函數,wiw_iwi?是權重,xix_ixi?是輸入,bbb是偏置項。
CNN模型匯總
卷積神經網絡(CNN)是一種專門處理圖像數據的神經網絡,具有卷積層、池化層和全連接層等結構。常見的CNN模型有LeNet5、AlexNet、VGG、Inception Net(GoogleNet)和ResNet。
LeNet5 模型
LeNet5是最早的卷積神經網絡之一,由Yann LeCun等人在1998年提出,用于手寫數字識別。其結構包括:
- 輸入層:28x28的灰度圖像
- 卷積層C1:6個5x5的卷積核,輸出6個24x24的特征圖
- 池化層S2:平均池化層,輸出6個12x12的特征圖
- 卷積層C3:16個5x5的卷積核,輸出16個8x8的特征圖
- 池化層S4:平均池化層,輸出16個4x4的特征圖
- 卷積層C5:120個5x5的卷積核,輸出120個1x1的特征圖
- 全連接層F6:84個神經元
- 輸出層:10個神經元(對應10個類別)
AlexNet 模型
AlexNet由Alex Krizhevsky等人在2012年提出,標志著深度學習在圖像識別領域的突破。其結構包括:
- 卷積層1:96個11x11的卷積核,步長為4,輸出96個55x55的特征圖
- 池化層1:最大池化層,輸出96個27x27的特征圖
- 卷積層2:256個5x5的卷積核,步長為1,輸出256個27x27的特征圖
- 池化層2:最大池化層,輸出256個13x13的特征圖
- 卷積層3:384個3x3的卷積核,步長為1,輸出384個13x13的特征圖
- 卷積層4:384個3x3的卷積核,步長為1,輸出384個13x13的特征圖
- 卷積層5:256個3x3的卷積核,步長為1,輸出256個13x13的特征圖
- 池化層5:最大池化層,輸出256個6x6的特征圖
- 全連接層:4096個神經元
- 輸出層:1000個神經元(對應1000個類別)
VGG模型
VGGNet由Simonyan和Zisserman在2014年提出,其特點是使用非常小的卷積核(3x3)和較深的網絡結構。常見的VGG模型包括VGG16和VGG19,分別包含16和19個卷積層和全連接層。其結構包括:
- 卷積層1-2:64個3x3的卷積核,步長為1,輸出64個224x224的特征圖
- 池化層1:最大池化層,輸出64個112x112的特征圖
- 卷積層3-4:128個3x3的卷積核,步長為1,輸出128個112x112的特征圖
- 池化層2:最大池化層,輸出128個56x56的特征圖
- 卷積層5-7:256個3x3的卷積核,步長為1,輸出256個56x56的特征圖
- 池化層3:最大池化層,輸出256個28x28的特征圖
- 卷積層8-12:512個3x3的卷積核,步長為1,輸出512個28x28的特征圖
- 池化層4:最大池化層,輸出512個14x14的特征圖
- 卷積層13-17:512個3x3的卷積核,步長為1,輸出512個14x14的特征圖
- 池化層5:最大池化層,輸出512個7x7的特征圖
- 全連接層:4096個神經元
- 輸出層:1000個神經元(對應1000個類別)
Inception Net(GoogleNet)模型
Inception Net由Google提出,主要特點是Inception模塊,能夠在同一層上并行進行不同尺寸卷積和池化操作。其結構包括:
- 卷積層1:64個7x7的卷積核,步長為2,輸出64個112x112的特征圖
- 池化層1:最大池化層,輸出64個56x56的特征圖
- 卷積層2:192個3x3的卷積核,步長為1,輸出192個56x56的特征圖
- 池化層2:最大池化層,輸出192個28x28的特征圖
- Inception模塊:多個Inception模塊組合,不同尺寸的卷積核和池化層并行
- 全連接層:輔助分類器和主分類器
- 輸出層:1000個神經元(對應1000個類別)
ResNet (殘差網絡)
ResNet由微軟研究院提出,主要特點是引入殘差連接,解決深度網絡中的梯度消失和退化問題。其結構包括:
- 卷積層1:64個7x7的卷積核,步長為2,輸出64個112x112的特征圖
- 池化層1:最大池化層,輸出64個56x56的特征圖
- 殘差模塊:多個殘差模塊,每個模塊包含多個卷積層和一個直接的殘差連接
- 全連接層:1000個神經元
- 輸出層:1000個神經元(對應1000個類別)
RNN模型(循環神經網絡)
RNN是一種用于處理序列數據的神經網絡,其特點是具有循環連接,能夠保留序列信息。RNN在時間序列預測、自然語言處理等領域有廣泛應用。
為什么需要RNN
傳統神經網絡在處理序列數據時無法保留之前的信息,而RNN通過循環連接,能夠保留并利用序列中的上下文信息,使得其在處理時間序列數據時更為有效。
RNN結構
RNN的基本結構包括:
- 輸入層:接收序列數據的每個時間步
- 隱藏層:通過循環連接保留前一個時間步的信息
- 輸出層:輸出每個時間步的結果
公式表示為: ht=f(Wihxt+Whhht?1+bh)h_t = f(W_{ih}x_t + W_{hh}h_{t-1} + b_h)ht?=f(Wih?xt?+Whh?ht?1?+bh?) yt=g(Whoht+bo)y_t = g(W_{ho}h_t + b_o)yt?=g(Who?ht?+bo?) 其中,fff是隱藏層的激活函數,ggg是輸出層的激活函數,WWW和bbb分別是權重和偏置項。
LSTM(長短期記憶網絡)模型
LSTM是一種改進的RNN,能夠有效解決長期依賴問題。其通過引入記憶單元和門控機制,控制信息的保留和遺忘。
LSTM結構
LSTM的基本結構包括:
- 遺忘門(Forget Gate):決定是否丟棄上一時間步的記憶
- 輸入門(Input Gate):決定是否接受當前時間步的輸入
- 記憶單元(Memory Cell):保留重要信息
- 輸出門(Output Gate):決定輸出哪些信息
公式表示為: ft=σ(Wf?[ht?1,xt]+bf)f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)ft?=σ(Wf??[ht?1?,xt?]+bf?) it=σ(Wi?[ht?1,xt]+bi)i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)it?=σ(Wi??[ht?1?,xt?]+bi?) C~t=tanh?(WC?[ht?1,xt]+bC)\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)C~t?=tanh(WC??[ht?1?,xt?]+bC?) Ct=ft?Ct?1+it?C~tC_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_tCt?=ft??Ct?1?+it??C~t? ot=σ(Wo?[ht?1,xt]+bo)o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)ot?=σ(Wo??[ht?1?,xt?]+bo?) ht=ot?tanh?(Ct)h_t = o_t \cdot \tanh(C_t)ht?=ot??tanh(Ct?)
GRU模型
GRU(Gated Recurrent Unit)是一種簡化的LSTM模型,減少了計算復雜度,保留了LSTM的長短期記憶能力。
GRU結構
GRU的基本結構包括:
- 重置門(Reset Gate):控制如何合并新輸入和前一個時間步的記憶
- 更新門(Update Gate):控制如何更新當前時間步的狀態
公式表示為: rt=σ(Wr?[ht?1,xt]+br)r_t = \sigma(W_r \cdot [h_{t-1}, x_t] + b_r)rt?=σ(Wr??[ht?1?,xt?]+br?) zt=σ(Wz?[ht?1,xt]+bz)z_t = \sigma(W_z \cdot [h_{t-1}, x_t] + b_z)zt?=σ(Wz??[ht?1?,xt?]+bz?) h~t=tanh?(Wh?[rt?ht?1,xt]+bh)\tilde{h}_t = \tanh(W_h \cdot [r_t \cdot h_{t-1}, x_t] + b_h)h~t?=tanh(Wh??[rt??ht?1?,xt?]+bh?) ht=(1?zt)?ht?1+zt?h~th_t = (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_tht?=(1?zt?)?ht?1?+zt??h~t?
計算重置門rtr_trt?和候選狀態h~t\tilde{h}_th~t?
重置門rtr_trt?控制前一個時間步的隱藏狀態如何影響當前時間步的候選狀態: rt=σ(Wr?[ht?1,xt]+br)r_t = \sigma(W_r \cdot [h_{t-1}, x_t] + b_r)rt?=σ(Wr??[ht?1?,xt?]+br?) 候選狀態h~t\tilde{h}_th~t?是當前時間步的潛在新信息: h~t=tanh?(Wh?[rt?ht?1,xt]+bh)\tilde{h}_t = \tanh(W_h \cdot [r_t \cdot h_{t-1}, x_t] + b_h)h~t?=tanh(Wh??[rt??ht?1?,xt?]+bh?)
計算更新門ztz_tzt?和當前狀態hth_tht?
更新門ztz_tzt?決定當前時間步的隱藏狀態如何更新: zt=σ(Wz?[ht?1,xt]+bz)z_t = \sigma(W_z \cdot [h_{t-1}, x_t] + b_z)zt?=σ(Wz??[ht?1?,xt?]+bz?) 當前時間步的隱藏狀態hth_tht?通過前一個隱藏狀態和當前候選狀態的加權和計算: ht=(1?zt)?ht?1+zt?h~th_t = (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_tht?=(1?zt?)?ht?1?+zt??h~t?
這些模型和概念構成了神經網絡在圖像識別、自然語言處理等領域的基礎和核心技術。
?🌟感謝支持?聽憶.-CSDN博客
🎈眾口難調🎈從心就好 |