循環神經網絡(RNN),長期和短期記憶(LSTM),這些紅色和紫色的神經網絡——,是時候放棄它們了!
LSTM和RNN是在20世紀80年代和90年代發明的,並在2014年復活。在接下來的幾年里,他們成為解決序列學習和序列轉換的方法(seq2seq),這也使語音到文本的識別和Siri,Cortana,谷歌語音助手,Alexa的能力得到驚人的提高。
此外,不要忘記人工智能機器翻譯,包括將文檔翻譯成不同的語言,或者神經網絡機器翻譯也可以將圖像翻譯成文本、文本翻譯成圖像、字幕、視頻等。
在接下來的幾年里,ResNet出現了。ResNet是一個剩余網絡,這意味着要訓練更深層次的模型。2016年,微軟亞洲研究院的一組研究人員憑借驚人的152層深度殘差網絡,在ImageNet圖像識別挑戰賽中以絕對優勢贏得了圖像分類、圖像定位和圖像檢測三大項目的冠軍。之后,注意力模型出現了。
雖然僅僅過去了兩年,但今天我們可以肯定地說:
"停止使用RNN和LSTM,他們不再工作了!"
讓我們用事實說話。谷歌、Facebook和Salesforce等公司越來越多地使用基於注意力的網絡。
所有這些公司都用基於注意力的模式取代了RNN及其變種,而這只是開始。與基於注意力的模式相比,RNN需要更多的資源來訓練和運行。RNN的生命不長。
為什么?
請記住,隨着時間的推移,RNN和LSTM及其衍生品主要是按順序處理的。請參見下圖中的水平箭頭:
RNN的順序處理
水平箭頭表示長期信息需要在進入當前處理單元之前按順序遍歷所有單元。這意味着它可以很容易地成倍增加
n .
跳過3-4步來追蹤信息比跳過100步要簡單得多!
這種架構非常類似於神經網絡圖靈機,但它允許神經網絡通過注意力來決定從內存中讀取什么。這意味着一個實際的神經網絡將決定哪些過去的向量對未來的決策是重要的。
但是把它存儲在內存里怎么樣?上述架構將所有以前的表示存儲在內存中,這與神經網絡圖靈機(NTM)不同。這可能非常低效:考慮在視頻——中存儲每一幀的表示。在大多數情況下,表示向量不會一幀一幀地改變,所以我們確實存儲了太多相同的內容!我們可以做的是增加另一個單元來防止相關數據被存儲。例如,與先前存儲的向量過於相似的向量不會被存儲。但這真的只是一個破解方法。最好的方法是讓應用程序來指導應該保存還是不保存哪些向量。這是當前研究的焦點。
看到這么多公司仍然使用RNN/LSTM進行語音到文本的轉換,我真的很驚訝。許多人不知道這些網絡有多低效和不可擴展。
訓練RNN和LSTM的噩夢
RNN和LSTM的培訓很困難,因為他們需要存儲帶寬綁定計算,這是硬件設計人員最糟糕的噩夢,並最終限制了神經網絡解決方案的適用性。簡而言之,LSTM要求每個單元4個線性層(MLP層)在每個時間步長序列中運行。
線性層需要大量的存儲帶寬來計算。事實上,他們不能使用許多計算單元,通常是因為系統沒有足夠的存儲帶寬來滿足計算單元。此外,添加更多的計算單元很容易,但添加更多的內存帶寬卻很困難(請注意,芯片上有足夠的線路,從處理器到存儲的長線路等)。
因此,RNN/LSTM及其變體不是硬件加速的最佳匹配。我們以前在這里討論過這個問題。解決方案將在存儲設備中計算,就像我們在FWDNXT上工作一樣。
簡而言之,放棄RNN。注意力模型是你真正需要的一切!
如果您有互聯網問題,也可以咨詢我,謝謝!如果你也想一起學習人工智能,歡迎留言交流。