# 4.1~4.1.3 ## 生物上的神經網路 以下是一個神經元的示意圖: 人類的神經網路是由非常多的神經元連接而成,一個神經元有許多樹突和一條軸突,樹突負責接受其他神經元傳出的訊號,軸突負責傳出訊號。  神經元會整合輸入的訊號,一旦細胞膜電位超過閾值(-55mV),則神經元會產生動作電位(+40mV),由軸突傳遞到下一個神經元的樹突。動作電位的產生,遵循「全有全無定律」,超過閾值電位會瞬間提升,反之則會回到靜止電位(-70mV)。  ## 機器學習中的神經元 ### 感知機 在機器學習中,科學家試著模擬出人腦中的神經網路,以達到學習的目的。因此,我們首先需要造出一個類似於神經元的東西。人造的神經元有許多類型,其中一種最基本的神經元是「**感知機**」。感知機是一個函數,計算公式如下 \begin{equation} f_{\mathbf{w},b}(\mathbf{x}) = sign_b(\sum\limits_{j}w_j x_j) \end{equation} 其中$\mathbf{w}$是權重,$\mathbf{x}$是神經元輸入的值,$b$是閾值。$sign_b()$是步階函數,表達式如下 \begin{equation} sign_b(z) = \begin{cases} 1, & z \ge b\\ 0, & else \end{cases} \end{equation} 感知機整合了輸入的訊號,並用步階函數模擬人類神經元達到閾值就產生動作電位的效果。 ### 神經元 在機器學習中,神經元有許多種,但差別只在於啟動函數。線性回歸、邏輯回歸、softmax和感知機都是神經元的一種。神經元是一個函數,它將多個輸入經過加權和,在經過一個啟動函數,輸出值。神經元的表達是如下 \begin{equation} a = g(\sum\limits_{j}w_j x_j) \end{equation} 其中,a是神經元的輸出,g是啟動函數。啟動函數有多種選擇,感知機即是啟動函數為步階函數的神經元。啟動函數,也可選擇tanh、ReLU、LeakReLU、simoid、softmax。 ### 啟動函數 #### 1. sigmoid 函數:$f(x) = \frac{1}{1+e^{-x}}$ 適用情況: * 明確的預測,即非常接近1或0 缺點: * 輸出值接近1或0時,梯度趨近於0,所以和sigmoid神經元連接的神經元,權重更新緩慢。若是神經網路太多sigmoid神經元達飽和,會讓神經網路無法反向傳播。 * 不以中心點為零,會導致下一個神經元產生偏置偏移,會使得收斂速度變慢。 * 計算成本高昂,因為exp()較其他函數計算成本高。 #### 2. tanh 函數:$f(x) = tanh(x)$ 優點: * 中心點為零 * 在二分類問題,一般將tanh作為隱藏層,sigmoid作為輸出層。 缺點: * 依然有梯度消失的問題。 #### 3. ReLU 函數:$f(x) = max(0,x)$ 優點: * 當輸入為正時,導數為1,一定程度上改善了梯度消失問題,加速梯度下降的收斂速度。 * 計算速度快得多。ReLU 函數中只存在線性關係,因此它的計算速度比sigmoid 和tanh 更快。 * 被認為具有生物學合理性(Biological Plausibility),比如單側抑制、寬興奮邊界。 缺點: * Dead ReLU 問題。當輸入為負時,ReLU 完全失效,在正向傳播過程中,這不是問題。有些區域很敏感,有些則不敏感。但是在反向傳播過程中,如果輸入負數,則梯度將完全為零。 * 不以零為中心,給後一層的神經網絡引入偏置偏移,會影響梯度下降的效率。 #### 4. LeakReLU 函數:\begin{equation} f(x) = \begin{cases} x, & x > 0\\ \gamma x, & else \end{cases} \end{equation} 優點: * 解決ReLU函數中的梯度消失問題 #### 5. softmax 函數:$S_i = \frac{e^{x_i}}{\sum\limits_j e^{x_j}}$ softmax神經元較特別,它沒有經過加權,是一個輸出多個值得神經元。 優點: * Softmax訓練的深度特徵,會把整個超空間或者超球,按照分類個數進行劃分,保證類別是可分的,這一點對多分類任務如MNIST和ImageNet非常合適,因為測試類別必定在訓練類別中。 缺點: * 在零點不可微 * 負輸入的梯度為零,這意味著對於該區域的激活,權重不會在反向傳播期間更新,因此會產生永不激活的死亡神經元。 * Softmax並不要求類內緊湊和類間分離,這一點非常不適合人臉識別任務,因為訓練集的1W人數,相對測試集整個世界70億人類來說,非常微不足道,而我們不可能拿到所有人的訓練樣本,更過分的是,一般我們還要求訓練集和測試集不重疊 [參考資料1](https://zhuanlan.zhihu.com/p/364620596)、[參考資料2](https://blog.csdn.net/xiaosongshine/article/details/88826715) ## 前饋神經網路 下圖是一個前饋神經網路。前饋神經網路由輸入層、隱含層和輸出層組成。每層皆是由一列神經元組成,資訊傳遞方向,是由一層神經元傳遞至下一層神經元,不會往回傳遞。且同層神經元沒有聯繫。  神經網路的層數稱為神經網路的深度,較深的神經網路,稱之為「**深度神經網路**」。基於深度神經網路的機器學習稱之為「**深度學習**」。 ### 前向傳播 神經網路一層一層計算,最終輸出值的過程,稱之為「**前向傳播**」。 我們設$\mathbf{W}^{[l]}$表示第$l$層每個神經元的權重,$\mathbf{b}^{[l]}$為第$l$層每個神經元的偏置,$g^{[l]}$為第$l$層的啟動函數,$\mathbf{a}^{[l]}$為第$l$層每個神經元的輸出。前向傳播計算公式如下 \begin{equation} \mathbf{a}^{[l]}=g^{[l]}(\mathbf{a}^{[l-1]}\mathbf{W}^{[l]}+\mathbf{b}^{[l]}) \end{equation} 其中 $$ \mathbf{a}^{[l]}= \begin{bmatrix} a^{[l]}_1 & a^{[l]}_2 & ... &a^{[l]}_p \end{bmatrix} ,a^{[l]}_i表示第l層第i個神經元的輸出 $$ $$ \mathbf{W}^{[l]} = \begin{bmatrix} W^{[l]}_{11} & W^{[l]}_{12} & ... & W^{[l]}_{1q}\\ W^{[l]}_{21} & W^{[l]}_{22} & ... & W^{[l]}_{2q}\\ &...&\\ W^{[l]}_{p1} & W^{[l]}_{p2} & ... & W^{[l]}_{pq}\\ \end{bmatrix} ,W^{[l]}_{ij}表示第l層第j個神經元,對第(l-1)層第i個神經元輸入的權重 $$ $$ \mathbf{b}^{[l]}= \begin{bmatrix} b^{[l]}_1 & b^{[l]}_2 & ... &b^{[l]}_q \end{bmatrix} ,b^{[l]}_i表示第l層第i個神經元的偏置 $$ 問題: sigmoid的缺點是甚麼? softmax的缺點是甚麼?
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up