【像訓練CNN一樣快速訓練RNN】全新RNN實現,比優化後的LSTM快10倍

2020-12-13 和訊

    本文首發於微信公眾號:新智元。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。

  1新智元報導來源:ArXiv作者:文強

  【新智元導讀】如何有效訓練RNN是一個活躍的研究領域,有很多方法,但還沒有哪種表現出了明顯的優勢,因此也讓今天要介紹的這項工作值得注意。來自ASAPP公司和MIT的兩位研究人員提出了一種名為「簡單循環單元」(Simple Recurrent Unit,SRU)的結構,對現有門控單元做了調整,簡化了狀態計算的過程,從而展現出了與CNN、注意力和前饋網絡相同的並行性。實驗結果表明,SRU訓練速度與CNN一樣,並在圖像分類、機器翻譯、問答、語音識別等各種不同任務中證明了有效性。

  項目已經開源:http://github.com/taolei87/sru

  先看論文摘要,有個大概的了解:

  標題非常直接,也是很多人都想實現的——《像訓練CNN一樣快速訓練RNN》:

  摘要

  RNN因其狀態計算固有的特性難以並行化因而很難擴展。例如,的前向計算要到的計算完成後才能開始,這構成了並行計算的主要瓶頸。在這項工作中,我們提出了一種RNN的替代實現,簡化了狀態計算過程,展現更多的並行性。我們所提出的循環單元,運行速度與卷積層一樣快,比cuDNN優化的LSTM快5-10倍。我們展示了這種循環單元在廣泛應用中的有效性,包括分類、問答、語言建模、翻譯和語音識別。我們開源了在PyTorch和CNTK中的實現。

  簡單循環單元SRU,簡化狀態計算,速度與CNN一樣快

  近來深度學習取得的許多進展都源於模型容量的增加和計算力的相應提升。模型容量增大,通常會涉及使用更大、更深的網絡,而這些網絡又需要複雜的超參數設置和調整。因此,不斷增大的模型和超參數數量也大大增加了訓練時間。

  顯然,計算力已經成為深度學習研究的一大主要瓶頸。作為應對,研究人員開始深入挖掘並行計算的潛力,很多人使用GPU加速訓練來擴展深度學習。不過,雖然諸如卷積和注意力的運算非常適合於多線程/GPU計算,但是循環神經網絡(RNN)仍然不太適合併行化。在典型的RNN實現中,輸出狀態的計算需要等到計算完成後才能開始。這阻礙了獨立計算,並大大減慢了序列處理的速度。

  圖1展示了cuDNN優化後的LSTM和使用conv2d的字級卷積的處理時間。可以看出,兩者區別非常明顯,即使是優化後的LSTM,運行速度也可能慢10倍多。

  圖1:cuDNN優化後的LSTM和使用conv2d的字級卷積的處理時間:即使是優化後的LSTM,運行速度也可能慢10倍多

  於是,作者提出了「簡單循環單元」(Simple Recurrent Unit,SRU),並在論文中表示其計算速度明顯快於現有的循環實現。

  SRU簡化了狀態計算的過程,從而展現出了與CNN、注意力和前饋網絡相同的並行性。

  具體說,雖然SRU的內部狀態ct的更新仍然與前一個狀態ct-1有關,但是在循環步驟中不再依賴於。因此,SRU中的所有矩陣乘法(即gemm)和元素方面的操作可以在不同的維度和步驟中實現並行化。

  SRU實現:增加highway連接和變分dropout

  那麼,SRU是怎麼實現的呢?

  作者指出,當前性能最佳的RNN,比如LSTM和GRU,都使用神經門(neural gate)控制信息流,緩解梯度消失(或爆炸)的問題。

  因此,他們在此基礎上,對門控單元進行了調整。具體說,作者新增加了兩個特徵:首先,他們在循環層之間增加了highway連接,因為此前的研究已經證明,像highway連接這樣的skip connections,在訓練深度網絡時非常有效;

其次,在將RNN正則化時,他們在標準的dropout外,增加了變分dropout,變分dropout在時間步長t與dropout使用相同的mask。

  然後,作者將和步驟t的神經門之間的連接全部丟棄,以這種方法來加速循環計算。相比之下,現有的RNN在實現時是要使用先前的輸出狀態的。

  經過這樣的改善後,對於現有的深度學習庫,SRU已經可以實現超過5倍的加速。接下來,作者還進行了CUDA級的優化,並在一系列不同的基準上進行測試,評估SRU的效果。

  實驗評估結果:圖像分類、語音識別、機器翻譯等任務,實現更好性能的同時,訓練速度更快

  作者還在分類、問答、語言建模、翻譯和語音識別等一系列不同任務中評估了SRU。

  實驗結果證實了SRU的有效性——與這些任務的循環(或卷積)基準模型相比,SRU在實現更好性能的同時,訓練速度也更快。

  圖像分類

斯坦福SQuAD文本處理

語言建模

語音識別

機器翻譯

論文地址:http://arxiv.org/pdf/1709.02755.pdf

  Github地址:http://github.com/taolei87/sru

  說明:論文未經同行評議,這裡有更多討論:http://www.reddit.com/r/MachineLearning/comments/6zduh2/r_170902755_training_rnns_as_fast_as_cnns/

    文章來源:微信公眾號新智元

(責任編輯:婁在霞 HN151)

相關焦點

  • 深度學習實戰:tensorflow訓練循環神經網絡模仿莎士比亞風格創作
    }每一個不一樣的字符都有了編號。它將有一個GRU層(可以用LSTM層代替),大小為units = rnn_units。最後,輸出層將是一個標準的全連接層,帶有vocab_size輸出。下面的函數幫助我們快速而清晰地創建一個模型。
  • 9個技巧讓你的PyTorch模型訓練變得飛快!
    我們需要以batch size為8執行16個前向傳播和向後傳播,然後再執行一次優化步驟。# each model is sooo big we can't fit both in memory  encoder_rnn.cuda(0)  decoder_rnn.cuda(1)  # run input through encoder on GPU 0  encoder_out = encoder_rnn(x.cuda(0))  # run output through decoder
  • 無需訓練 RNN 或生成模型,如何編寫一個快速且通用的 AI 「講故事...
    我想創建一個快速、通用且每個人都可以實現的項目。這個AI無需訓練RNN或生成模型,只需從「故事資料庫」中搜索人為創建的故事,然後找到我最喜歡的故事。這不僅可以保證故事的基本質量(由人類創造,為人類服務),而且速度更快。至於「故事資料庫」,我們來使用Kaggle上的Wikipedia電影情節數據集。
  • Caffe2新增RNN支持,Facebook全面轉向神經機器翻譯
    除了零開銷的引擎之外,Caffe2 RNN 的另一個核心優勢是內存,它允許我們每塊 GPU 都使用大批量數據進行訓練。RNN 引擎支持回收跨時間步的中間結果,並使你有權力決定要回收什麼。關於計算的交易內存的更多分析細節請參閱 https://arxiv.org/abs/1606.03401。在上圖中,後向傳遞的中間結果可以跨時間步重複使用。
  • 高效快速閱讀訓練-視覺感知
    前面講過:傳統閱讀是「咬文爵字」的文字識別,全腦高效速讀是「眼腦直映」的圖像識別,而後者的信息處理效率是前者的上百倍,從而實現閱讀效率的飛躍式提升。「眼腦直映」快速閱讀法的基本原理:將書面的文字信息對眼睛產生光學刺激之後所產生的整體文字圖像,直接傳送到右腦以圖像的形式記憶之後再由大腦進行理解。
  • 斯坦福深度學習訓練及推理榜單:華為雲拿下雙料冠軍
    日前,史丹福大學發布最新的DAWNBench榜單,華為雲ModelArts一站式AI開發平臺,獲得圖像識別訓練和推理性能雙料冠軍,將模型訓練時間大幅縮減的同時實現了超強推理性能,體現了其在全球深度學習平臺技術的領先性。
  • NVIDIA Research使用有限的數據集實現AI訓練突破
    NVIDIA Research使用有限的數據集實現AI訓練突破 NVIDIA 發表於 2020-12-10 09:56:27 數據增強技術使AI模型能夠基於大都會藝術博物館的一個小型數據集來模仿藝術作品
  • 15個超實用的快速步法訓練:下
    大家好,今天我們分享15個超實用的快速步法訓練下,希望大家喜歡!今天我們進入最後一個場景的訓練,這次我們將用到一種全新的敏捷梯,它對所有運動員都有效,因為很少有運動只向前運動或者橫向運動,傳統的敏捷梯非常適合前後或者左右運動,但是和大多數運動一樣,在足球運動中,我們需要不斷變向、轉身,需要在各個方向上都非常靈活,這就需要我們腳下必須協調,在保證速度的前提下,還要加入這些動作,所以我們即將進行和傳統敏捷梯同樣的訓練,但是要加入一些360度的元素,下面我們正式開始:
  • 10*10的健身訓練方法,通過高強度和高容量的健身訓練來增加肌肉
    10*10的訓練方法,通過高強度和高容量的健身訓練來增加肌肉每組10個,共10組的健身訓練方法已在健身界運用多年,以突破增肌的瓶頸期,獲得新的肌肉增長。如今,許多知名運動員仍在使用這種方法,甚至像查爾斯波利昆這樣的力量教練也是這種方法的倡導者,當他們的奧運會運動員需要快速增加他們的瘦體重時,他們就會使用這種方法。10組10次練習的好處和目標這種方法已經一次又一次的被證明是通過肌肉纖維的系統疲勞來增加肌肉質量的神奇方法。
  • CNN提速23.5倍!Facebook開源DL模塊帶給我們什麼?
    能做什麼Facebook表示,其開源優化的深學習模塊,加快了基於Torch的深度學習項目的運行速度,允許我們在更短的時間訓練規模更大的神經網絡加快我們的研究項目。開源的包括用於大型卷積網(ConvNets)的GPU優化模塊,以及那些在自然語言處理領域常用的網絡。
  • 算法| 超Mask RCNN速度4倍,僅在單個GPU訓練的實時實例分割算法
    在論文《YOLACT:Real-time Instance Segmentation》中,作者提出了一種簡潔的實時實例分割全卷積模型,僅使用單個 Titan Xp,以 33 fps 在MS COCO 上實現了 29.8 的 mAP,速度明顯優於以往已有的算法。而且,這個結果是就在一個 GPU 上訓練取得的!
  • 提高10公裡的成績,如何科學訓練?
    再輔助高抬腿、跨步跳和交叉步的練習;周四:30-50分鐘慢跑熱身後,分別進行2000米、1000米和400米的快速跑,配速達到5分50秒,以提高速度和耐力;周五:放鬆調整;周六/日:LSD訓練,進行一次3小時慢跑。
  • Keep產品分析,「智能訓練計劃」能否實現自律健身?
    4.2 優化方案智能計劃訓練課程功能結構如下,針對以上問題筆者用紅字部分標註新增的優化功能:這會使得用戶對動作產生畏懼感,降低完成度則訓練大打折扣、若持續畏懼將造成堅持度下降。修改建議:1. 運動後狀態反饋可在笑臉模式和專業模式中切換。專業模式下,將運動狀態量化為10級評估系統,用戶可通過滑動選擇運動狀態;笑臉模式下,增加表情至4個,每個表情下增加說明性文字,提高用戶選擇的準確性。後臺記錄運動狀態反饋,評估用戶心肺情況,調整後續訓練方案組間歇、組數、負荷等。
  • 快速訓練柴犬的方法,三日速成!
    其實最根本的就是沒有訓練好柴犬,今天就把我壓箱底快速訓練柴犬的方法告訴大家。1、指令訓練所謂指令訓練,是針對柴犬的服從性來說的。指令訓練包括日常的坐下、趴下、握手。對於這些指令訓練,主人要一邊說口令,一邊獎勵柴犬吃狗糧,讓它反覆練習,服從指令就獎勵它,沒有服從就耐心多次訓練,一天訓練三四次,基本三天就可以看到效果。2、定點訓練關於定點訓練,主要是針對柴犬的飲食和排洩。
  • Personal Power Plate,實現全家的訓練目標
    ,提高身體柔韌性,改善腰痛腰傷,讓自宅訓練也能快速有效。用Power Plate My0,在家中開始產後恢復訓練吧! ◆ 3D振動的功效 採用3D多方向振動的Power Plate,通過高速且精密的振動,激發神經、肌肉、筋膜等組織的自然反應,在更短的時間裡,實現有效的訓練。
  • 耐克為巴塞隆納推出全新訓練系列
    耐克為巴塞隆納足球俱樂部推出了全新訓練系列,與這家西班牙豪門俱樂部共迎新年。該系列採用充滿活力的「深寶藍/空間藍/淺熔化紅」配色,包含半拉鏈上衣、短袖上衣、收腿褲以及短褲。
  • 神經網絡訓練 trick 之 lr 設置
    optimization》指出高維優化問題中根本沒有那麼多局部極值。作者依據統計物理,隨機矩陣理論和神經網絡理論的分析,以及一些經驗分析提出高維非凸優化問題之所以困難,是因為存在大量的鞍點(梯度為零並且 Hessian 矩陣特徵值有正有負)而不是局部極值。因此在鞍點附近增加 lr,能夠讓我們快速跳出鞍點。