RNNBow:Visualizing Learining via Backpropagation Gradients in Recurrent Neural Networks (文章解讀)

https://arxiv.org/pdf/1907.12545.pdf

這篇文章主要強調了RNN中梯度流的重要性。實際上在神經網絡模型中梯度有着十分重要的作用,但由於網絡結構的複雜性以及參數過於龐大,梯度流的研究一直是一個很困難的問題,所以在一般情況下人們多是通過研究訓練好的模型節點的激活情況來研究網絡的內部結構以及各參數在網絡模型中所起的作用。這篇文章的作者設計了一款網頁版的工具,通過這個工具我們可以追蹤單層RNN網絡的梯度流,從而研究其內部結構以及訓練的過程。文章作者強調這個工具可以追蹤網絡的訓練過程,我想這也是和目前常用分析方法最大的區別吧。

文章概要

RNNbow是一個web應用,這個應用可以可視化RNN網絡各個節點的輸入序列元素的梯度變化。通過可視化梯度而不是激活節點,RNNbow可以深入研究網絡是如何學習的。

1、介紹

通過下圖我們可以看出RNNbow的一個簡單工作模式,真實的字符是“-”,預測的字符是“u”,藍色高亮的是其損失函數的梯度流,RNN是時間序列,也就是說“-”這個預測結果和之前的5個字符有關。

2、相關工作

目前大多數的工具提供的都是已經訓練好的網絡的測試效果,而RNNbow提供的是網絡的訓練過程。這個工具的特點主要體現在:1、可視化梯度流而非激活節點。2、可用於確定超參數是否需要修改。3、與輸入數據的類型無關。

3、RNN

循環神經網絡,和其他結構相比隱藏層具有長時間記憶能力。輸入序列爲x1,x2,x3,輸出序列爲y1,y2,y3,這種結構適合解決上下文關聯比較大的問題。

4、RNNbow

圖1中顯示的是每一個數據簇的最大梯度,圖2中顯示的是每一個數據簇中的訓練結果,圖3顯示的是每一個點更新參數時的梯度佔比,也就是影響前節點的因素。圖4中顯示的是之前結果對當前結果的影響。

5、應用實例

5.1、觀察梯度的變化情況,左邊的圖可以看出這應該是剛開始訓練時的情況,梯度爲暗色,主要和附近的輸入有關。右邊的圖可以看出梯度明暗分佈,說明模型學習了較長的序列,預測結果和之前較遠的結果有關。

5.2、梯度彌散,下圖中可以看出後面部分的梯度變暗,其組成部分逐漸變少,說明梯度的構成逐漸變得單一。

5.3、數據簇的最大梯度,以下圖爲例,真實字符(,預測字符爲a,這種情況可能是因爲模型並沒有訓練過這種輸入導致的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章