聊聊圖像識別:循環神經網絡
本文轉載自微信公眾號「活在信息時代」,作者活在信息時代。轉載本文請聯系活在信息時代公眾號。
循環神經網絡(Recurrent Neural Network,RNN)主要是用來解決序列數據問題。它之所以成為循環神經網絡,是因為一個序列的當前輸出與前面的輸出也是有關的。RNN網絡對之前時刻的信息進行記憶,并運用到當前輸出計算中,與卷積神經網絡不同,循環神經網絡隱藏層之間的神經元是相互連接的,隱藏層中神經元的輸入是由輸入層的輸出和上一時刻隱藏神經元的輸出共同構成。雖然RNN網絡取得了一些顯著成果,但是有一些缺點和局限,如:訓練難度大、準確度低、效率低、時間長等,故基于RNN之上的一些改進的網絡模型逐漸被研發出來,如:長短時記憶網絡(Long Short-Term Memory,LSTM),雙向RNN,雙向LSTM、GRU等。這些改進的RNN模型在圖像識別領域表現出了顯出的效果,并被廣泛應用。以LSTM網絡為例,介紹下其主要網絡結構。
長短時記憶網絡(Long Short-Term Memory,LSTM)解決了RNN存在著梯度消失或梯度爆炸等問題,可以學習長期依賴問題。其結構如下。
LSTM擁有三個門來讓信息選擇式通過:遺忘門、輸入門、輸出門。其中遺忘門決定著哪些信息可以通過這個cell。它通過一個sigmoid神經層來實現。它的輸入是,輸出是一個數值在(0,1)之間的向量,表示著讓的各部分信息通過的比重。0表示“不讓任何信息通過”,1表示“讓所有信息通過”。
輸入門決定著讓多少新的信息加入到cell狀態中來,一個tanh層生成一個向量,也就是備選的用來更新的內容。
更新cell狀態:
輸出門決定中的哪部分信息被輸出:
GRU網絡模型也同樣解決了RNN存在著梯度消失或梯度爆炸等問題,能夠學習長期依賴關系,是LSTM的一種變形,結構比LSTM簡單,具有更少的參數,訓練時間也較LSTM有所縮短。也廣泛應用于語音識別、圖像描述、自然語言處理等場景。