AI入门:不用任何公式把循环神经网络讲清楚
全文共?2014?字,28?幅圖,
預計閱讀時間?20?分鐘。
本文受以下兩部視頻所啟發,但用了我最喜歡的 NBA 巨星哈登舉例。
Luis Serrano 的「A friendly introduction to RNNs」
Brandon Rohrer 的「How RNNs and LSTM?Work」
純純的致敬!
1
首先聊聊場景,哈登進攻有三招,三分,扣籃和傳球。
觀眾喝彩有兩種:NB 和 SB (喝倒彩)。
如下圖所示,用向量來表示三種招式和兩種喝彩。
再往下繼續看時,希望讀者腦子里就記著以下對應關系:
三分:[1 0 0]
扣籃:[0?1 0]
傳球:[0?0?1]
NB:[1 0]
SB:[0 1]
2
先看看一個最簡單的例子:
當觀眾喊 NB 時,哈登就拔三分
當觀眾喊 SB 時,哈登就扣籃泄憤
這樣我們用一個神經網絡來講「觀眾的喝彩」和「哈登的招式」連接起來。
NB?→ 三分
SB?→ 扣籃
神經網絡其實就是一堆參數,我們用矩陣來表示這些參數好不好?具體公式見下圖,大家來用矩陣乘以向量來驗證一下上面兩組聯系。
為了進一步講明「神經網絡就是一堆參數」,我們可視化下神經網絡,如下圖。關鍵記住
矩陣的行代表第一層神經元,一行有 2 個元素,第一層有 2 個神經元
矩陣的列代表第二層神經元,一列有 3?個元素,第二層有 3?個神經元
下面兩圖完整的可視化兩種喝彩和招式的聯系。
NB?→ 三分
SB?→ 扣籃
本小節介紹的就是全連接神經網絡 (Fully Connected Neural Network, FCNN) 的極簡版本。
3
但哈登發招是連續的,下圖就是一系列發招順序。
????三分?→ 扣籃?→ 傳球?
→ 三分?→ 扣籃?→?傳球 ...
這些招式都是一個接一個哦,可以用循環神經網絡連接它們呢。
還記得神經網絡其實就是一堆參數嗎?那循環神經網絡也就是另一堆參數嘛,就是下面這個矩陣。
我們來可視化循環神經網絡,注意我們故意不畫出權重為 0 的箭頭 (太多看起來亂),循環神經網絡和普通神經網絡最大的區別就是下面那條回形線。本次輸出可作為下次輸入,就這么簡單。
好了,讀者來驗證下,用循環神經網絡這個矩陣來乘以不同招式的向量是不是可以得到下一個招式的向量?
本小節介紹的是循環神經網絡 (Recurrent Neural Network, RNN)?的極簡版本,同樣也是不現實的版本。
4
哈登是個人,不會像機器那樣一直不停的「三分 → 扣籃 → 傳球」機械發招。哈登是有情緒的,他會根據觀眾喝彩來決定如何出招的:
觀眾喊 NB,那么哈登覺得自己不會改變打法,上招出什么下招還是出什么,好用唄。
觀眾喊 SB,那么哈登就會陷入自我懷疑,是不是上招打法不合理,那么他會這樣調整:
上招是三分,那么下招是扣籃
上招是扣籃,那么下招是傳球
上招是傳球,那么下招是三分
所以帶情緒的出招序列如下。
現在我們來分析兩個重要矩陣:招式矩陣和喝彩矩陣。
先看招式矩陣,它的輸入是本輪招式,輸出是「本輪招式?+ 下輪招式」
再看喝彩矩陣,它就把觀眾的喝彩聲拉長了些。為什么要這么做呢?只是為了要把「輸出向量的大小」和「招式矩陣矩陣的輸出向量的大小」設計的一樣,這樣才能做之后的合并操作。
騷操作來了,讓我們把兩個矩陣水平合并。
再乘以以 [招式 喝彩]?為格式的向量,比如
[三分?SB] = [1 0 0?0 1]
[扣籃?SB] =?[0 1 0?0 1]
[傳球?SB] =?[0?0 1?1 0]
等等。
這樣得到的向量是 [1 0 0 1 2 1],看起來難以解釋,但是我們注意
2 是里面最大的元素,是真正的信息,我們希望保留它
0 和 1 都是噪聲,我們希望剔除它們
那么可以試一下非線性函數哦,比如 RELU?
深度學習不是總用各種轉換函數嗎?這里用到的函數將該向量中最大值變成 1,其余值變成 0,得到 [0 0 0 0 1 0]。
最后再把?[0 0 0?0 1 0]?拆成兩個小向量再加一起,不就有點類似池化 (pooling) 嗎?但用的不是平均池化,不是最大池化,而是加總池化。哎,都為了解釋效果,因此沒那么嚴謹,get 到那個意思就行。
最后得到的輸出是 [0 1 0],這向量不就是我們的老朋友扣籃么?
現在開始看一套完整的循環神經網絡流程圖,從輸入開始。我們輸入是三分 +?SB。
三分和?SB 乘上對應的招式矩陣和喝彩矩陣得到兩個 6 × 1 的向量,向量意思上面已經解釋過。
將這兩個向量相加。
再對加總的向量做非線性轉化,去掉噪聲只留下最顯著的信息。
再把這個?6?× 1 的向量分拆成兩個?3?× 1 的向量并加總,最后得到 [0 1 0],那就是扣籃。因此哈登投完三分后,如果觀眾喊 SB,那么哈登下一動作就是扣籃。
最后畫出回形線使得該網絡變成循環神經網絡,這樣哈登就可以一直根據本輪的出招和觀眾的喝彩和決定下輪的出招了。
總結
圖畫得太好了,任何文字的總結都是廢話。覺得好就幫我傳播這個看不懂算我輸系列咯,謝謝大家 !
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備注:加入本站微信群或者qq群,請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”
喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的AI入门:不用任何公式把循环神经网络讲清楚的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI入门:无门槛可以玩的神经网络
- 下一篇: AI入门:不用任何公式把主成分分析讲清楚