熱文導讀 | 點擊標題閱讀
哈佛學霸說:自制力極差的人該如何拯救?
哈佛研究: 長期太忙會變傻
放羊和砍柴的故事——他們的結局是這樣的……
翻譯:王軍福
原文連結:https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap
如果你是深度學習領域的一名新手,可能會遇到的第一個問題是「應該從哪篇論文開始讀起呢?」
這裡給出了深度學習論文閱讀路線圖!
路線圖按照下面四個準則構建而成:
從提綱到細節
從經典到前沿
從通用領域到特定領域
專注於最先進的技術
你將會發現很多近期發表但是確實值得一讀的論文。
我們將持續不斷的給這條路線圖添加論文。
1.2 深度信念網絡(DBN) (深度學習開篇的裡程碑)
閱讀完上面這些論文後,通過對深度學習模型(包括CNN,RNN,LSTM)的基礎框架,以及深度學習如何應用於圖像和語音識別問題的理解,你將會對深度學習的歷史有一個基本的認識。下面的論文將帶你深入理解深度學習模型,深度學習在不同領域的應用和前沿。我們建議你根據自己的興趣和研究方向選擇下面的論文進行閱讀。
2.4RNN/ Sequence-to-Sequence模型
3.5機器翻譯
Some milestone papers are listed in RNN / Seq-to-Seq topic.
王軍福,北京理工大學,目標識別從業者。愛折騰,善實踐,對新鮮事物永葆一顆好奇的心。作為數據派新晉活躍分子,在Github知識分享與Kaggle數據實踐的道路上為喜歡數據的玩家挖掘有意思的新鮮事。
工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是數據科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。
你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於數據科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯繫,THU數據派產學研的背景為志願者帶來好的發展機遇。
其他福利:來自於名企的數據科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的夥伴。
另一篇
圖解TensorFlow架構與設計
作者:劉光聰
中興通訊高級系統架構師,專注機器學習算法,分布式系統架構與優化。
TensorFlow是什麼?
TensorFlow基於數據流圖,用於大規模分布式數值計算的開源框架。節點表示某種抽象的計算,邊表示節點之間相互聯繫的張量。
計算圖實例
TensorFlow支持各種異構的平臺,支持多CPU/GPU,伺服器,行動裝置,具有良好的跨平臺的特性;TensorFlow架構靈活,能夠支持各種網絡模型,具有良好的通用性;此外,TensorFlow架構具有良好的可擴展性,對OP的擴展支持,Kernel特化方面表現出眾。
TensorFlow最初由Google大腦的研究員和工程師開發出來,用於機器學習和神經網絡方面的研究,於2015.10宣布開源,在眾多深度學習框架中脫穎而出,在Github上獲得了最多的Star量。
本文將闡述TensorFlow的系統架構,幫助讀者加深理解TensorFlow的工作機理。
本文假設讀者已經了解TensorFlow的基本編程模型,包括計算圖, OP, Tensor, Session等基本概念。
系統概述TensorFlow的系統結構以C API為界,將整個系統分為「前端」和「後端」兩個子系統:
前端系統:提供編程模型,負責構造計算圖;
後端系統:提供運行時環境,負責執行計算圖。
TensorFlow系統架構
如上圖所示,重點關注系統中如下4個基本組件,它們是系統分布式運行機制的核心。
Client
Client是前端系統的主要組成部分,它是一個支持多語言的編程環境。它提供基於計算圖的編程模型,方便用戶構造各種複雜的計算圖,實現各種形式的模型設計。
Client通過Session為橋梁,連接TensorFlow後端的「運行時」,並啟動計算圖的執行過程。
Distributed Master
在分布式的運行時環境中,Distributed Master根據Session.run的Fetching參數,從計算圖中反向遍歷,找到所依賴的「最小子圖」。
然後,Distributed Master負責將該「子圖」再次分裂為多個「子圖片段」,以便在不同的進程和設備上運行這些「子圖片段」。
最後,Distributed Master將這些「子圖片段」派發給Work Service;隨後Work Service啟動「子圖片段」的執行過程。
Worker Service
對於每以個任務,TensorFlow都將啟動一個Worker Service。Worker Service將按照計算圖中節點之間的依賴關係,根據當前的可用的硬體環境(GPU/CPU),調用OP的Kernel實現完成OP的運算(一種典型的多態實現技術)。
另外,Worker Service還要負責將OP運算的結果發送到其他的Work Service;或者接受來自其他Worker Service發送給它的OP運算的結果。
Kernel Implements
Kernel是OP在某種硬體設備的特定實現,它負責執行OP的運算。
組件交互組件交互
如上圖所示,假設存在兩個任務:
接下來,我們將進一步抽絲剝繭,逐漸挖掘出TensorFlow計算圖的運行機制。
客戶端Client基於TensorFlow的編程接口,構造計算圖。目前,TensorFlow主流支持Python和C++的編程接口,並對其他程式語言接口的支持日益完善。
此時,TensorFlow並未執行任何計算。直至建立Session會話,並以Session為橋梁,建立Client與後端運行時的通道,將Protobuf格式的GraphDef發送至Distributed Master。
也就是說,當Client對OP結果進行求值時,將觸發Distributed Master的計算圖的執行過程。
如下圖所示,Client構建了一個簡單計算圖。它首先將w與x進行矩陣相乘,再與截距b按位相加,最後更新至s。
構造計算圖
Distributed Master在分布式的運行時環境中,Distributed Master根據Session.run的Fetching參數,從計算圖中反向遍歷,找到所依賴的最小子圖。
然後Distributed Master負責將該子圖再次分裂為多個「子圖片段」,以便在不同的進程和設備上運行這些「子圖片段」。
最後,Distributed Master將這些圖片段派發給Work Service。隨後Work Service啟動「本地子圖」的執行過程。
Distributed Master將會緩存「子圖片段」,以便後續執行過程重複使用這些「子圖片段」,避免重複計算。
執行圖計算
如上圖所示,Distributed Master開始執行計算子圖。在執行之前,Distributed Master會實施一系列優化技術,例如「公共表達式消除」,「常量摺疊」等。隨後,Distributed Master負責任務集的協同,執行優化後的計算子圖。
子圖片段子圖片段
如上圖所示,存在一種合理的「子圖片段」劃分算法。Distributed Master將模型參數相關的OP進行分組,並放置在PS任務上。其他OP則劃分為另外一組,放置在Worker任務上執行。
SEND/RECV節點插入SEND/RECV節點
如上圖所示,如果計算圖的邊被任務節點分割,Distributed Master將負責將該邊進行分裂,在兩個分布式任務之間插入SEND和RECV節點,實現數據的傳遞。
隨後,Distributed Master將「子圖片段」派發給相應的任務中執行,在Worker Service成為「本地子圖」,它負責執行該子圖的上的OP。
Worker Service對於每個任務,都將存在相應的Worker Service,它主要負責如下3個方面的職責:
處理來自Master的請求;
調度OP的Kernel實現,執行本地子圖;
協同任務之間的數據通信。
執行本地子圖
Worker Service派發OP到本地設備,執行Kernel的特定。它將盡最大可能地利用多CPU/GPU的處理能力,並發地執行Kernel實現。
另外,TensorFlow根據設備類型,對於設備間的SEND/RECV節點進行特化實現:
對於任務之間的數據傳遞,TensorFlow支持多協議,主要包括:
Kernel ImplementsTensorFlow的運行時包含200多個標準的OP,包括數值計算,多維數組操作,控制流,狀態管理等。每一個OP根據設備類型都會存在一個優化了的Kernel實現。在運行時,運行時根據本地設備的類型,為OP選擇特定的Kernel實現,完成該OP的計算。
TensorFlow Core
其中,大多數Kernel基於Eigen::Tensor實現。Eigen::Tensor是一個使用C++模板技術,為多核CPU/GPU生成高效的並發代碼。但是,TensorFlow也可以靈活地直接使用cuDNN實現更高效的Kernel。
此外,TensorFlow實現了矢量化技術,使得在行動裝置,及其滿足高吞吐量,以數據為中心的應用需求,實現更高效的推理。
如果對於複合OP的子計算過程很難表示,或執行效率低下,TensorFlow甚至支持更高效的Kernle實現的註冊,其擴展性表現相當優越。
技術棧最後,按照TensorFlow的軟體層次,通過一張表格羅列TensorFlow的技術棧,以便更清晰地對上述內容做一個簡單回顧。
TensorFlow技術棧
深度學習入門資料:
http://book.paddlepaddle.org/index.html
作者 | 圖文來自網絡、如涉及版權問題,請聯繫我們以便處理。文章內容純屬作者個人觀點,不代表本網觀點。
編輯 | 老貓
讀書吧 | QQ群:481160039
-END-