循環神經網路(Recurrent Neural Network, RNN)是人工神經網路(Artifical Neural Network, ANN)的一種分之。RNN在自然語言處理(NPL)、手寫辨識和語音識別都有很好的應用。可以透過分岔流形(bifurcation manifold) 去了解RNN複雜的動力學行為。Steil, Jochen Jakob分析雙神經元的全連結網路,將外部對神經元的刺激視為分叉參數(bifurcation parameters),找到網路穩定震盪的區域。

網路模型

$$ \left\{\begin{array}{l}s_1=\sigma\left(\omega_{11}s_1+\omega_{12}s_2+u_1\right)\\s_2=\sigma\left(\omega_{21}s_1+\omega_{22}s_2+u_2\right)\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(1)\end{array}\right.\\\left\{\begin{array}{l}\sigma_{\tan h}(x)=\tan h(x)\\\sigma_{fermi}(x)=\frac1{1+e^{-x}}=\frac12\left(\tan h\left(\frac x2\right)+1\right)\;\;\;\;\;\;\;\;\;(2)\end{array}\right.\\\\ $$

公式(1),s1和s2表示穩定的神經激發頻率。Wij表示神經j到神經i的連結強度。ui表示外界給神經i的刺激。公式(2),$\sigma$表示激活函數(activation function),兩種常見的函數有 tanh 和 fermi。

分岔曲線(bifurcation curve)

$$ \overline h=W\overline S+U=\begin{pmatrix}\omega_{11}{\overline s}1+\omega{12}{\overline s}2+u_1\\\omega{21}{\overline s}1+\omega{22}{\overline s}2+u_2\end{pmatrix}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(3)\\D=\delta{ij}\sigma'(h)=\begin{pmatrix}\sigma'({\overline h}_1)&0\\0&\sigma'({\overline h}2)\end{pmatrix}\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;(4)\\J=J(\overline s)=D(\overline s)W=\begin{pmatrix}\omega{11}\sigma'({\overline h}1)&\omega{12}\sigma'({\overline h}1)\\\omega{21}\sigma'({\overline h}2)&\omega{22}\sigma'({\overline h}_2)\end{pmatrix}\;\;\;\;\;\;\;\;\;\;(5)\\\\ $$

公式(3),h表示神經處於穩定狀態時激活函數的輸入。公式(4),D為對角化矩陣,對角的值為h放進激活函數的微分 $\sigma'$。公式(5),J為Jacobian,D與連接矩陣W相乘,可以將J的特徵值分三種結果討論(圖1)

圖1,三種特徵值

圖1,三種特徵值

$$ \textstyle{\overline s}i=\sigma(\sum{}\omega_{ij}{\overline s}j+u_i)\Leftrightarrow u_i=\sigma^{-1}({\overline s}i)-\sum{}\omega{ij}{\overline s}j\;\;\;\;\;\;\;\;\;\;\;\;\;(6)\\\left\{\begin{array}{l}\sigma'{\tan h}\left({\overline h}i\right)=1-\sigma{\tan h}^2\left({\overline h}_i\right)=1-{\overline s}i^2\\\sigma'{fermi}\left({\overline h}i\right)=\sigma{fermi}\left({\overline h}i\right)\left(1-\sigma{fermi}\left({\overline h}_i\right)\right)={\overline s}_i\left(1-{\overline s}_i\right)\;\;\;\;\;(7)\end{array}\right. $$

公式(6),為神經平衡狀態的等校公式。公式(7),激活函數的微分。接著將公式(6)(7)代入圖(1)的三種條件可以將s1和s2分開。下面以tanh function 的Neimark-Sacker為例。(圖2)為全部整理的結果。

$$ \begin{array}{l}以\;\tanh\;function\;的\;Neimark-Sacker\;\mathrm{為例}\\det(J)=\omega_{11}\sigma'({\overline h}1)\omega{22}\sigma'({\overline h}2)\;-\;\omega{12}\sigma'({\overline h}1)\omega{21}\sigma'({\overline h}_2)=det(W)\sigma'({\overline h}_1)\sigma'({\overline h}_2)\;=1\\\Rightarrow1=det(W)\sigma'({\overline h}_1)\sigma'({\overline h}_2)\;=det(W)\left(1-{\overline s}_1^2\right)\left(1-{\overline s}_2^2\right)\\\Rightarrow{\overline s}_2=\pm\sqrt{1-\frac1{det(W)\left(1-{\overline s}_1^2\right)}}\end{array} $$

圖2,兩種激活函數在三種特徵值的整理結果

圖2,兩種激活函數在三種特徵值的整理結果

與神經連結無關的動態系統

圖3是在特定連結強度下兩種激活函數的分岔曲線。可根據外界的刺激, u1和u2,判斷會形成的狀態。區域1,只形成一個不動點 (fixed point)。區域2,包含三個不動點,兩個穩定+一個不穩定。區域3,包含複雜的動力學,包含鎖頻 (frequency locking)。區域4,雙週期震盪。

圖3,兩種激活函數的分岔曲線

圖3,兩種激活函數的分岔曲線

總結

將神經激發頻率(s1, s2)轉換成外界刺激u1和u2。將u1和u2當作當作分岔參數,觀察不同刺激輸入網路時震盪的狀況,包單固定點、三固定點、含鎖頻和雙周期。

參考資料