精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
專訪TensorFlow貢獻者唐源:掌握 Google 深度學習框架的正確姿勢
userphoto

2017.02.24

關注

自 2015 年底開源到如今更快、更靈活、更方便的 1.0 版本正式發布,由 Google 推出的第二代分布式機器學習系統 TensorFlow 一直在為我們帶來驚喜,一方面是技術層面持續的迭代演進,從分布式版本、服務框架 TensorFlow Serving、上層封裝 TF.Learn 到 Windows 支持、JIT 編譯器 XLA、動態計算圖框架 Fold 等,以及 Inception Net、SyntaxNet 等數不勝數的經典模型實現,TensorFlow 已然已經成為深度學習框架的事實標準之一。

而另一方面,在開源一年多的時間里,TensorFlow 已經幫助了包括研究人員、工程師、藝術家、學生等在內的諸多用戶在各個領域取得了卓越進展,據 Google 官方統計,目前人們已經在 6000 多個在線開放代碼存儲區中使用 TensorFlow。那么,在業務場景及個人摸索實踐中,我們可以如何更好地使用 TensorFlow?以及掌握與運用深度學習、機器學習的正確姿勢?帶著諸多問題,我們特別采訪了 TensorFlow 項目貢獻者——美國 Uptake 數據科學家唐源,一起聊聊深度學習框架的那些事兒。

唐源,美國 Uptake 數據科學家,帶領團隊建立用于多個物聯網領域的數據科學引擎進行條件和健康監控,同時建立公司的預測模型引擎,現已被用于航空、能源等大型機械領域。是 TensorFlow 和 DMLC 的成員,TensorFlow、XGBoost、MXNet 等軟件的 committer,曾榮獲谷歌 Open Source Peer Bonus。在美國賓州州立大學獲得榮譽數學學位,曾在本科學習期間成為創業公司 DataNovo 的核心創始成員,研究專利數據挖掘、無關鍵字現有技術搜索、策略推薦等。GitHub:https://github.com/terrytangyuan

我是如何走上深度學習框架的開源貢獻之路的

CSDN:您在大學獲得榮譽數學學位,在此期間成為創業公司 DataNovo 核心創始成員,您是怎樣開始接觸到機器學習和深度學習?有哪些難忘的經歷?

唐源:這一切起源于本科與教授做的一個數值分析,接觸到了 Matlab 這樣的編程語言,由此開始對編程產生了特別濃厚的興趣,學習各種編程語言,也上過大部分的軟件工程的課程,因為在學校讀的是賓州州立大學榮譽學院的學位,很多課程都加深了難度,也認識了很多非常聰明和勤奮的同學,在導師 Luen-chau Li 的鼓勵下也慢慢開始上了好幾門統計、數學、以及計算機研究生的課程,其中第一門就是統計系 Le Bao 老師的研究生難度的數據挖掘課程,開始逐漸接觸機器學習,也對這方面產生了濃厚的興趣,也自己開始跟進了這方面的研究。

DataNovo 是我在上斯坦福公開課的時候和幾個小伙伴成立的公司,幾個核心成員分布在世界各地,我們有幾個經驗非常豐富的軟件工程師,有著對專利這一塊非常有研究的律師,也有擁有沃頓商學院 MBA 的數學家,在憑著我們各自已有的經驗基礎上,我們通過大量的討論和調查,一起探索了這個在當時還尚未被挖掘的領域,建立了許多基于機器學習和深度學習比較新穎的應用。比較難忘的是這個摸索的過程,有許多失敗也有成功,大家一起用帶著各國口音的英語,跨越世界上幾個不同的時區,來討論相關文獻和項目進展,一起朝著一個目標努力,是非常有意思的事情,在本科的時候就能夠有著這樣的創業和合作經驗,算是比較有成就感的一件事了。

CSDN:您在什么時候開始接觸到開源社區?什么情況下成為了多個深度學習框架的 committer?

唐源: 大四的時候在一家創業公司實習,公司對開源的政策特別開放,我們用到了各種各樣的開源軟件,用的過程中發現各種問題以及對用戶體驗度有著各種不滿,Github 上面有地方可以提交建議,但是項目的管理者太忙,我就干脆自己對源代碼進行研究然后提交修改,這樣養成了一種習慣,遇到問題的第一反應是自己研究研究代碼,然后自己直接去解決問題,獨立閱讀代碼的能力也就這樣慢慢培養出來了。很多時候由于對于某個開源軟件特別熟悉,經常在做項目中會想到一些有趣的點子來對項目的性能進行改進和功能進行延伸。

至于成為深度學習框架的 committer,我最先開始參與的是 MXNet,當時只是業余時間做了一些小的深度學習的項目,發現這個開源項目還在初期,有很大的發展空間,然后又剛開始在其他項目中使用 Scala,在劉憶智的邀請和鼓勵下,我們一起合作做了 MXNet Scala 語言包。又是機緣巧合,覺得 TensorFlow 的低階 API 太難學也太難用,于是和谷歌的朋友合作建立了高階的 API,也就是早期的 Scikit Flow, 類似數據科學領域中很熱門的 Scikit-learn, 現在由于在 Google 內部和外部都需求特別大,也成為了 TensorFlow 中重要的一部分。

深度學習、機器學習的正確姿勢

CSDN:機器學習在 Uptake 數據科學引擎的工作流程中扮演什么樣的角色?

唐源:數據科學是 Uptake 的核心,我們成功地和大型工業界的巨頭,比如說 Catepillar,來合作建立比較有需求的產品,幫助解決傳統工業上的一些痛點,比如 24 小時對火車每個重要部件進行條件和健康監控,幫助維修工程師找到問題所在,推薦高效的解決方式,新部件的自動下單訂購,等等。機器學習在這個過程中起到非常重要的角色,我們需要用機器學習來建立很多有效的預測模型,由于數據量的龐大,數據性質的特別,以及出于物聯網數據在傳統大型工業領域還沒怎么被深度探索的原因,我們也不能僅僅依賴于現有的技術,我們有著非常優秀的研發團隊來支撐這一整個技術鏈。

CSDN:對于數據科學團隊來說,您認為他們需要對深度學習了解到什么樣的程度?

唐源:深度學習并不是萬能鑰匙,很多問題往往用傳統的機器學習算法就足夠了。如果設計到很多圖像,語音,文本這樣的數據,深度學習的算法當然更加適用,基本上能大概清楚有一些什么樣的算法以及他們適用于什么樣的問題,就能實現一些簡單的應用了。但是往往很多問題不是簡單的分類和回歸模型就能解決的,這中間可能涉及到多個值得研究和仔細設計的步驟,來讓模型更加精確,這時候對深度學習扎實的功底就派上用場了,因為需要自己設計一些特殊的模型架構來解決這些問題,比如說涉及時間序列的應用,更需要仔細推敲和設計出最理想的算法,這涉及到對現有的多種類型的模型進行結合和改動,需要對這些已有模型有非常深的理解才行。

CSDN:對于數學功底不是很好的程序員,如果想掌握深度學習,甚至成為數據科學家,您有什么好的建議?

唐源:深度學習其實一開始也就是從一個簡單的神經網絡發展來的。如果想扎扎實實做這一方面的研究,當然數學越好以及知識越廣能夠帶你走的更遠。但是如果沒有很好的數學功底,走應用的路線也是非常好的,畢竟也不是所有的研究都有很大的影響力或者用到了很高深的數學,很多時候只要能夠讀懂大概的算法思路,知道這個算法在什么樣的應用中適用就行了。現在數據科學家的門檻其實也是越來越低,以前是有 Scikit-learn 的幫助,現在是有著各種深度學習框架,甚至最近 TensorFlow 在機器學習應用方面的側重,比如說大力研發高階的 Estimator API,也更是讓更多人能夠更有效地學習和更快地進入到這個行業當中。

CSDN:如果沒有數學基礎的限制,能否給剛入門深度學習的開發者提供一些學習和實踐經驗?

唐源:可以對這些深度學習的算法和架構都進行了解,要知道每個算法都適用于哪些類型的運用,基礎好的話可以直接讀一些好的會議以及期刊論文,關注一下前沿的研究。一定要多積累實戰經驗,可以多參與項目,參與像 Kaggle 這樣的競賽,最近的 Data Science Bowl 就是個很好的切入點,可以多融入到論壇中的討論,來學習學習大家的思路和方法。如果對模型具體的實現感興趣的話,可以嘗試著讀一讀源代碼,因為這不僅能幫助理解模型,也能了解到對于這個模型的實現,具體有哪些需要注意的地方,比如說性能上為什么這樣處理會更好,API 為什么這樣設計,等等。

CSDN:在忙碌的工作之余,您把大量的時間都貢獻給了開源社區以及圖書編寫,但您是否有其他興趣愛好(除了爬山和燒烤:))?

唐源:沒錯,爬山和燒烤!我還喜歡 K 歌,認識新的朋友,旅游,以及各種運動,比如說乒乓球,羽毛球,籃球,滑冰,游泳,等等。

業務場景下的深度學習實現

CSDN:很多大公司都開源了自己的機器學習平臺,側重的模型可能有所不同,但都會有分布式、編程方面的優化,在您接觸過的平臺中,您如何推薦從業者在什么情況下采用哪種框架?

唐源:我認為還是得具體看自己的應用、需求、以及團隊的背景。如果在語音上面的應用很多的話,需要用到很多類似于 LSTM, RNN,等深度學習模型,那可以在做實驗比較的時候會考慮到這些模型在不同框架上的速度。如果團隊的背景很多元,比如在做研究的時候可能用的編程語言不統一,那就得考慮一下哪個平臺能夠對這些語言提供更好的支持。再具體一點,可能要考慮哪個平臺使用起來是既能夠實現目的又能夠靈活地在現有基礎上進行必要的拓展來達到各種需求。社區的支持也很重要,不僅僅是開源社區,研究社區對某一平臺的支持也是需要考慮進去的,比如說如果對 Facebook 的研究很感興趣,那可能會更關注 Torch,因為他們的最新研究成果都會首先開源 Torch 的實現。

為什么我們應該使用 TensorFlow

CSDN:TensorFlow 開發者大會給我們呈現了大量的信息,您最為關注的有哪些?

唐源:我最關注的是那些高階一點的 API,比如 Estimator 和 Keras 在 TensorFlow 內部的發展,我最早是和谷歌的 Illia Polosukhin 合作創建了 Scikit Flow 這個項目,然后緊接著被 TensorFlow 接受,放在了 TensorFlow 里面,得到了谷歌內部的大力支持和貢獻,不僅僅適用于深度學習,也提供了許多機器學習的 Estimator,比如 KMeans、SVM、隨機森林,等等,來幫助更廣范圍的用戶方便地使用像 TensorFlow 這樣分布式的系統。TensorFlow 對一般用戶來說確實很難學好也很難寫得很正確,尤其是一些分布式的邏輯,這樣的高階的 API 是特別有需求的。還有比較關注也是一直在關注的就是 DeepMind 在研究上的一些進展,比如說對皮膚癌的圖片分類,對藝術和音樂的自動生成,這些都是非常有意義的事情,我很高興他們能夠不僅僅花時間在研發這個框架,也能夠好好利用這個框架來做這一些有意義有影響力的一些研究。這也是各種深度學習框架的意義所在:把先進的技術免費提供給大家,幫助大家更好更有效地做研究和分享研究成果。

CSDN:XGBoost 最初的優勢在于 boosting,不了解 DMLC、MXNet 的人也可能很喜歡 XGBoost,您最開始改進和延伸了 XGBoost 項目,請介紹近期的發展或進展,未來的重要工作是什么?

唐源: XGBoost 算是我比較早期的時候就開始一直參與的項目,經過了 Kaggle、學術界、以及工業界很多用戶的千錘百煉,對于最近比較值得注意的一些進展,大家可以看看新增加的 Callback 功能,可以用來更方便地監控和觀察模型的訓練,最近也支持了 GPU,以及對 Spark、Flink 等大數據平臺的結合使用的支持,未來的很大一部分工作就是更好地幫助用戶使用,從他們的使用當中了解需求,盡可能幫助到大家更好地從事數據科學工作。

CSDN:如果用戶已經使用 Spark 作為大數據處理平臺,也用了 MLlib,有什么理由是他必須使用 TensorFlow 的?

唐源: TensorFlow 提供的不僅僅只是現有的一些比較熱門的模型實現,深度學習和機器學習這個領域的發展是非常快的,很多問題往往不是簡單的現有模型能夠解決的,最重要的是一個框架的靈活性和可拓展性一定是不能丟的,Spark 的 MLlib 很優秀地實現了一些工業界需求比較大的一些算法,但是 TensorFlow 能提供的不僅僅是這些,它提供了很多建立機器學習和深度學習必有的元素,比如,TensorFlow 有著自己的 metrics、losses、optimizers、layers 等模塊來幫助建立各種各樣的深度學習模型,它也提供了許多高階的 Estimator API 來幫助用戶更好地搭建和定義自己的分布式的模型,FeatureColumn 模塊來幫助數據科學工作中很重要的特征工程,DataFrame 和 QueueRunner 等模塊來更好地實現數據的預處理,提取批量隊列,等等。另外,TensorFlow 省去了在各種不同的設備(比如 CPU、GPU、TPU)上的實現,用戶只需要集中精力調用已經實現好的 API 就可以在各種設備上進行自動優化以及資源分配,這些都是 Spark 目前還不能或者是很難做到的。最近雅虎開源的 TensorFlowOnSpark 也挺有意思,可以在現有的 Spark/Hadoop 分布式集群的基礎上部署 TensorFlow 的程序,這樣可以避免數據在已有 Spark/Hadoop 集群和深度學習集群間移動,HDFS 里面的數據能夠更好地輸入進 TensorFlow 的程序當中。

CSDN:您如何與黃文堅老師配合完成《TensorFlow 實戰》?怎樣實現了工作和寫作之間的平衡?寫完此書有哪些收獲和體會?

唐源:我們一個在國內一個在國外,理論上來說合作起來本應該是相當困難。但由于我們都是 TensorFlow 的貢獻者,對 TensorFlow 都是算比較熟悉的了,所以我們寫起書來也是比較獨立,每人負責幾個章節。寫的過程中也積極地互相交流,討論書中的各個例子有沒有更好的實現方法,書也不是一天兩天就能寫完的,所以在寫的過程中也都得互相跟進和討論 TensorFlow 的最近進展。寫作基本上都是工作之余完成的,確實需要花很多的時間,因為畢竟是寫出來幫助大家的,對很多代碼和應用的解釋,以及背景知識的介紹也需要反復推敲。寫書的過程中也發現和激起了對 TensorFlow 沒有貢獻到的一些模塊的興趣,通常寫著寫著發現自己已經打開了無數的代碼文件而只寫下了一兩段話,寫書也是一個不斷學習,靈感不斷涌現的過程。

CSDN:在開發人員讀完《TensorFlow 實戰》之后,可能需更進一步的提升,您是否有下一步相關著作的計劃?或者有其他的學習途徑可以推薦?

唐源:我們這次雖然大部分的例子都是基于最新的 1.0 版本,但是 TensorFlow 的發展特別快,我們會在下一版介紹更多的新的功能,也會根據讀者的反饋意見來更好地幫助大家學習。其他的學習途徑,可以參考官方的一些例子,一般都是和代碼比較兼容的,然后 Github 上面也有很多值得學習的代碼和例子,如果對源代碼比較感興趣,也鼓勵大家積極參與貢獻。

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
《TensorFlow實戰》和《TensorFlow:實戰google深度學習框架》兩本書有何異同?...
分布式深度學習平臺DistBelief和TensorFlow
GitHub 上 57 款最流行的開源深度學習項目
技術丨“深度學習”八大開源框架之一TensorFlow
有助于你掌握機器學習的十三個框架
High&NewTech:2021 年Google谷歌 I/O 開發者大會 Kemal 等三人主題演講分享《TensorFlow 在機器學習領域的進展》
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 酒泉市| 洮南市| 玉树县| 平原县| 石台县| 汤原县| 屏东县| 视频| 镇赉县| 金山区| 中超| 措美县| 永定县| 濮阳市| 伊川县| 永修县| 乐陵市| 宁德市| 深泽县| 陵水| 黄大仙区| 陆丰市| 扶沟县| 沁阳市| 新沂市| 土默特左旗| 宁乡县| 宝丰县| 车险| 昭苏县| 三台县| 县级市| 娱乐| 泾源县| 津市市| 泗阳县| 西城区| 崇仁县| 五原县| 江孜县| 岢岚县|