5 月 23 日週三晚,TensorFlow 中國研發負責人、Google 搜索架構技術總監李雙峯受邀參與北京大學「人工智能前沿與產業趨勢」系列座談會,分享了深度學習的發展與應用、TensorFlow 從研究到實踐的相關內容。html
感謝做爲北京大學「人工智能前沿與產業趨勢」系列座談會合做媒體的量子位旗下公衆號「吃瓜社」俞晶翔、張康對活動的記錄,演講嘉賓李雙峯也參與本文的聯合撰寫和修改。前端
主講嘉賓:李雙峯,TensorFlow 中國研發負責人、Google 搜索架構技術總監。Google 中國最先期的工程師之一,目前在 Google 領導了涉及人工智能、搜索架構和移動應用領域的多個項目。他負責 TensorFlow 中國研發團隊,並整體推進 TensorFlow 在中國的發展。算法
用深度學習解決最具挑戰性的問題瀏覽器
深度學習帶來機器學習的革命。咱們看到「深度學習」這個詞在搜索中的熱度近年來快速提高。服務器
在 arXiv 上的機器學習論文數量急劇增加,增加速度竟然遇上了摩爾定律。微信
咱們先看一個圖片分類的例子:給一張圖片,識別這張圖是一隻貓仍是一條狗。它是多層的神經網絡結構,裏面有不少的參數,通過不少的訓練以後,能識別出這張圖是一隻貓。網絡
深度學習不只僅可以解決圖像識別的問題,它擁有很是強大的學習能力。把深度神經網絡比喻成一個函數,這個函數很是強大,能夠處理多種輸入和輸出,而深度學習算法能夠自動學習這個函數。架構
用類似的簡單方法,解決多個問題,這是產業界特別喜歡的東西,由於他們大大減小了工程方面的複雜度。框架
深度學習並非全新的東西,但爲何在過去的幾年當中帶來了極大的突破?機器學習
咱們看到兩條線:一條是基於深度神經網絡的解決方案,一條是基於其餘機器學習方法。在八九十年代以前,神經網絡就已經出現了,不過那個時候受限於計算能力,模型的規模比較小,因此它的表現不如一些通過優化過的其餘機器學習方法,這樣就很難解決真實的大規模問題。
隨着計算能力的增長,能夠看到深度學習解決問題的精度,已經超過了其餘機器學習方法。
以圖片識別問題爲例,在 2011 年的時候,它的錯誤率是 26%,而人只有 5%,因此這個時候離實用有很是大的距離。到 2016 年爲止,它的錯誤率已經減小到了 3% 左右,深度學習在該領域呈現出很是驚人的能力,這就是爲何深度學習在圖像識別領域吸引了產業界的大量關注。
咱們看看深度學習如何幫助解決工程界的重大挑戰。
2008 年美國工程院發佈了 21 世紀的一系列重大挑戰,其中包括:便宜的太陽能、藥物工程優化、虛擬現實、和個性化學習等等。
咱們也許還能夠加上兩個:跨語言的自由交流,更通用的人工智能系統。回到 2008 年,機器翻譯的提高遇到了瓶頸,而你們也以爲AI要打敗圍棋高手,要須要不少年。
回頭來看,隨着深度學習的發展,不少領域都有一些重大突破,包括健康醫療、語言交流方面等方面。下面咱們仔細看看深度學習如何推進解決這些重大挑戰。
交通是一個面臨重大挑戰的問題。Google 的母公司 Alphabet 旗下有一家公司叫 Waymo,專一於自動駕駛。他們已經作了大量的真實道路測試,以及模擬環境的測試。他們的車可以識別路上各類移動的對象,以及交通燈。
咱們發現自動駕駛離真實應用愈來愈近,有了無人駕駛以後,城市基礎設施會有一個巨大的突破。
過去十年中,Google 在機器翻譯領域的工做在業界領先,可是以前都是基於短語統計的方式 ,質量提高遇到了瓶頸。
過去兩年,Google 推出了基於神經網絡的機器翻譯技術(GNMT),大大提升了翻譯質量。在多個語言的質量評估上,平均質量提升 50% 到 80% 以上,這超過了過去十年的工做。在若干語言的翻譯上,機器翻譯已經接近人類水平。這是促進人類溝通和交流的一個重要突破。
更重要的是,Google 不只把該技術的論文發表,並且開放了基於 TensorFlow 的源代碼。開發者使用這些代碼很是簡單,一兩百行代碼就能夠作一些相似於 GNMT 的基於神經網絡的機器翻譯系統。
這讓一些小公司也有能力作出不錯的機器翻譯系統。好比歐洲某個公司,以前是傳統翻譯公司,可是擁有不少翻譯數據,基於這些開源系統,很快就能作出很不錯的結果。
基於神經網絡的機器翻譯還有一些很是有意思的特性,好比說,當咱們把英文翻譯成日文,而後再翻譯回英文的時候,傳統的方式可能在翻譯回英文這個階段會出現措辭與原文不太同樣,但基於神經網絡的翻譯能保證部分還原性。
另一個意義是在工程上。從工程的角度來講,但願用盡可能簡單的方案,去解決複雜問題;而不是爲每一種語言對的翻譯都設計不一樣的系統和模型。從這個角度來講,基於神經網絡機器翻譯可以帶來明顯優點。
舉個例子,假設有不少訓練的數據,他們是一對一對的,從英文到韓文有對應,咱們適當地作了一些編碼,也就是翻譯以前把語言標註了。那麼,一樣一個模型在解決不一樣語言之間的翻譯都會起做用,這樣語言之間能夠經過統一的簡單方式來實現。
特別是對 Google 來講這頗有價值,由於咱們的目標是一百多種語言對之間相互翻譯,這是一個很是複雜的問題,對工程人員來講很是麻煩。用同一個基於神經網絡的模型去翻譯不一樣的語言,使得在工程上工做量獲得了大大簡化。
另外:假設咱們學習到英文到韓文翻譯的同時,也學習英文到日文之間的翻譯,那麼基於神經網絡的翻譯模型,就可以自動學習到從日文到韓文之間的翻譯,這也證實神經網絡翻譯具備更強的學習能力。
醫療是 Google AI 研究投入的一個重要方向,由於咱們認爲醫療領域是 AI 應用一個很是重要的場景,也對造福人類具備深遠意義。
好比AI檢測眼科疾病:左邊是正常的視網膜照片,右邊是糖尿病可能致使的視網膜病變照片,它可能會致使糖尿病患者失明。若是咱們可以儘早發現這些病變,就可使用較爲廉價的藥物進行治療。
咱們在一個權威的美國醫學雜誌上發表的研究代表:AI 識別這些有病變的視網膜照片的精度,水平超過了眼科醫生的平均水平。
圖像識別是一類問題,包括剛纔提到的視網膜照片監測問題,還有 X 光拍片的識別。
更難的問題是能不能基於已知的我的醫療信息,對整個信息作預測,好比預測將來須要住幾天院,須要吃什麼藥。這樣診斷的是比較難的問題。Google 已經與斯坦福醫學院等好幾個學校的醫學機構合做,開展了相關工做,初步取得不錯的預測效果。
下一步看看科學的發展。
工具在人類歷史的發展中扮演重要角色,好比區分石器時代和青銅時代的重要依據是人類使用的工具。今天科學研究會作不少實驗,你們也製做了不少實驗儀器。
不過,有沒有一些工具,可以幫助加速科學發現的進程呢?
這是咱們推出 TensorFlow 這樣的開源機器學習平臺的重要緣由,但願它可以極大地促進深度學習發展,促進用深度學習技術解決科學上的一些重大發現。
TensorFlow 的目標是成爲人人可用的機器學習平臺,可以幫助機器學習的研究者、開發者,去表達本身的想法,去進行探索性研究,去創建本身的系統,去實現基於具體場景的AI應用和產品。有了通用的平臺,才能更好的促進行業交流,推進行業創新。Google 內部大規模使用 TensorFlow 來作研究和產品,而業界能夠基於 Google 的實踐和經驗。
大概在 2015 年末咱們開源了 TensorFlow,在過去兩年當中它的發展速度很是快,基本上如今一兩個月就有新的版本發佈。好比,咱們增長了更多的平臺能力、更多的工具,以及更簡單的 API。
到今天爲止,全球有超過 1100 萬的 TensorFlow 下載量,這也說明了全球開發者的熱情。
深度學習有不一樣的模型,如何更好地訓練模型參數,須要很多機器學習的經驗,這對於普通公司而言,仍然有不小的挑戰。AutoML 是一個很重要的話題,它的基本想法是可以更加自動化地作機器學習。Google 有一個相關工做,叫作 Learning to Learn,目前取得不錯的進展。
今天,咱們如今作機器學習的解決方案,須要機器學習方面的專家,須要數據,也須要不少的計算。
解決方案=機器學習專家 + 數據 + 計算
機器學習專家須要不少時間來培養,咱們開始思考,能不能讓更多的計算能力來解決人才的缺口問題?那麼:
解決方案=數據 + 100倍的計算
咱們使用強化學習的方式來搜索神經網絡結構:以必定機率產生一些模型,訓練若干小時,而後對生成的幾個模型在測試集上作評估,並利用模型的損失做爲強化學習的信號,促進下一次迭代時選擇更好的模型。
這張圖是經過神經網絡搜索找到的模型結構,模型結構看起來很複雜,讓人很難以理解,它並無人類設計的模型那麼有層次化,並不直觀。不過實際測試的效果卻很是好,差很少比目前人類所找到的模型都要好。
機器學習專家在過去的好多年中作了不少研究,手工設計了不一樣的精巧的模型,這些模型會平衡運算的複雜度以及模型精度。
若是咱們追求比較高的精度,那麼運算量更大,好比 ResNet;若是模型比較簡單,好比 Google 的 MobileNet,精度會低一點,但運算量小,很適合用在移動設備上;中間也有一系列計算和精度適中的模型。在這些年的發展過程當中,頂尖的機器學習專家一直在基於前人成果不停地作結構優化。
而經過 AutoML 所獲得的新模型,比人類的多年研究成果都要好。在一樣精度的狀況下能夠作到計算量更小一點,而在一樣的計算量下精度更好。Google 經過 AutoML 學習到的模型也公佈了,叫作 NASNet。
這是一個鼓舞人心的開局,讓咱們看到 AutoML 的巨大前景。
AutoML 的工做也爲計算帶來了更大的挑戰。不過計算還有很大的可提高空間,咱們能夠針對深度學習作一些定製化的優化。
好比傳統 CPU 上的運算講究精度,而進行深度學習時,咱們能夠丟棄一些精度要求,讓運算更快一些。
另外一方面,咱們發現神經網絡運算主要是矩陣運算,這樣就能夠設計一些特別的硬件來加速矩陣運算。
好比 Google 針對深度學習,特別設計了新的硬件 TPU。第一代 TPU 只能作一些推理的工做,第二代就既能推理又能訓練,而今年 5 月份 Google I/O 推出的第三代 TPU,計算速度比第二代又快了 8 倍,計算能力不斷地在提高。
咱們也把 TPU 的能力經過 Google 雲平臺開放出來,給產業界和學術界使用。特別是,咱們開放了 TensorFlow Research Cloud,有許多 TPU,免費開放給頂級的研究學者使用,共同來推進開放的機器學習研究。你們能夠經過 g.co/tpusignup 申請。
總結上面所講的,深度神經網絡和機器學習已經帶來了很是大的突破。咱們能夠考慮如何用深度神經網絡,幫助解決世界上的一些重大挑戰。
第二部分,咱們來談談基於 TensorFlow 的應用。
AI 領域一個很重大的突破,就是 AlphaGo 打敗人類頂尖圍棋選手,以前你們廣泛認爲這還須要多年。DeepMind 的 AlphaGo 也是基於 TensorFlow 實現的,早期版本使用了大量的 TPU,須要大量的計算。
初始版本的 AlphaGo 須要人類的經驗,好比以歷史上的圍棋棋譜做爲輸入,可是最後的 AlphaGo Zero 並不須要人類經驗就能自我學習。
AlphaGo 的工做也發表了論文,咱們看到有國內公司基於公開論文,基於 TensorFlow,很快就重現了高水平的圍棋系統。
這很好地說明了 TensorFlow 的意義,有了這樣的開放平臺,全球的研究者和開發者都能很方便交流,快速提升機器學習的水平,而且可以基於前人的優秀成果,快速開發出新的產品和系統。
自動駕駛是另外一例子,利用 TensorFlow 能夠自動識別移動中的人和物體,包括交通燈。
科學發展史當中,天文學有不少很是有挑戰的問題。如何在浩瀚的星空當中,發現有意思的信號,好比尋找一個像地球同樣的行星,圍繞像太陽同樣的恆星轉,這是一件很是有挑戰的事情。
天文學家利用基於 TensorFlow 的深度學習技術,在太空的大量信號中搜索到相似地球的行星,叫作 Kepler-90i,這個是迄今爲止發現的第八個。
農業方面,荷蘭的養殖場監測奶牛的行爲和身體數據,使用 TensorFlow 來分析奶牛健康情況,好比是否運動,是否生病等等。
巴西亞馬遜叢林的護林人員,使用 TensorFlow 來識別叢林中的聲音,來判斷是否有盜伐者。
在非洲,開發者使用 TensorFlow 製做出判斷植物是否生病的手機應用,只要對植物進行拍照,就能進行鑑定。
Google 開源了基於 TensorFlow 的 Magenta 項目,一個功能是可以自動生成音樂,你輸入一個音符,程序可以建議下一個音符。
在藝術和文化領域,你能夠拍一個照片,程序能找出和你類似的藝術照片。
谷歌翻譯能夠在沒有聯網的狀況下實時進行翻譯。有這樣一個上面印有「Milk」的包裝盒,你只要打開谷歌翻譯並用手機對準它,谷歌翻譯就能自動識別文字,自動翻譯出「牛奶」,並把翻譯的結果貼在原來這個照片上。這樣的例子對於出國旅遊者很是實用。
Google 的大量產品使用了 TensorFlow。好比在語音方面,包括語言的識別和合成,像 DeepMind 發佈的語音合成算法 WaveNet,合成的效果很是好。對人機對話,Google I/O 發佈了 AI 打電話預約的 Demo,叫作 Google Duplex。
在視覺方面,Google Photos 能自動把全部照片作分析,識別裏面的人和物體,自動獲得一些標籤,你能夠直接搜索這些照片,再也不須要手動加標籤。還有 Google 的 Pixel 系列手機,拍照模式中,自動把前景突出一些,背景模糊化處理。
這就是機器學習帶來的產品的突破。
在機器人領域,可使用 TensorFlow 讓四腳機器人學習如何站立和平衡。
最後,還能使用 TensorFlow 來幫助 Google 數據中心作能耗優化。當機器學習控制的開關開啓後,能耗明顯下降,而一旦關閉,能耗快速上升。
第三部分,講一講 TensorFlow 的一些基礎知識。
機器學習愈來愈複雜,構造的網絡也愈來愈複雜,做爲研究者,如何管理這種複雜度是一個很大的挑戰。好比 Inception v3 模型,有 2500 萬個參數。
模型越複雜,對計算要求就越高,須要大量的計算,每每不是一臺計算機就能知足,須要作不少分佈式的計算,那分佈式計算怎麼去管理,這是一個難題。
更進一步,傳統的機器學習運算都發生在服務器端,而如今愈來愈多的計算在手機端或者是在設備端,怎麼去管理這些多元的設備和異構的系統,是一個挑戰。
咱們但願 TensorFlow 可以幫助管理這些複雜度,讓研究者專一作研究,讓作產品的專一作產品。
TensorFlow 是一個開源的軟件平臺,它的目標是促進人人可用的機器學習,推進機器學習的發展。
一方面,TensorFlow 但願快速地幫助你們去嘗試一些新的想法,進行前沿探索。另外一方面,也但願很是靈活,既能知足研究的需求,也能知足產業界作大規模產品的需求。面對多元的需求,怎麼讓你們可以用同一個框架來表達本身的想法,這是 TensorFlow 的重要設計目標。
研究可能會是小規模的,但在作產品的時候,可能涉及到成百上千的服務器,怎麼去管理這些分佈式計算,TensorFlow 須要有很好的支持。
一開始設計人員就把這些因素都考慮進去,最重要的緣由是,TensorFlow 其實是配合 Google 內部的產品需求設計的,經歷過 Google 大量產品和團隊的大規模考驗。在它開放以前還有一個內部版本叫作 DisBelief,咱們總結了DisBelief 的經驗,作了新的版本,而且在大量的項目中通過真實的驗證,也根據產品的真實需求在作一些新的特性。
Google Brain 有不少研究人員,他們不斷髮表論文,同時他們的研究工做也會轉化成產品。你們都用 TensorFlow 這樣的語言去表達,就極大地促進了研究成果的轉換。
到目前爲止,GitHub 上 TensorFlow 項目的提交已經超過 3 萬次,超過 1400 多個貢獻者,6900 多個 pull request。
TensorFlow 提供了一個完整的機器學習工具集。下面咱們來總體看看 TensorFlow 的架構。
TensorFlow 有一個分佈式執行引擎,可讓 TensorFlow 程序運行在不一樣硬件平臺上,好比 CPU、GPU、TPU,移動端的一些硬件如 Android 和 iOS,以及各類異構的一些硬件。
執行引擎之上,有不一樣的前端語言的支持,最經常使用的是 Python,也支持 Java,C++ 等等。
前端之上,提供了一系列豐富的機器學習工具包。除了你們所知道的神經網絡支持,還有決策樹,SVM,機率方法,隨機森林等等,不少是你們在各類機器學習競賽中經常使用的工具。
TensorFlow 很是靈活,既有一些高層 API,簡單易用,也有一些底層 API,方便構造一些複雜的神經網絡,好比,你能夠基於一些基本的算子去定義網絡。
Keras 是一個定義神經網絡的高層 API,在社區中很流行,TensorFlow 對 Keras 有很是好的支持。
進一步,咱們也封裝了 Estimator 系列 API,你能夠定製訓練和評估函數,這些 Estimator 能夠高效地分佈式執行,和 TensorBoard 以及 TensorFlow Serving 有很好的集成。
最上層,有一些預約好的 Estimator,開箱即用。
TensorFlow 提供了全面的工具鏈,好比 TensorBoard 可讓你很是容易去展現 Embedding,多層次呈現複雜的模型結構,以及展現機器學習過程當中的性能數據。
它支持不少移動平臺,好比 iOS,Android,以及樹莓派等嵌入式平臺。
支持的語言包括 Python,C++,Java,Go,R 等語言。最近,咱們也發佈了 JavaScript 和 Swift 的支持。
不少學校和機構都發布了 TensorFlow 課程,好比北京大學,中科大等學校就開設了 TensorFlow 相關課程,國外頂尖大學好比斯坦福、伯克利等,在線教育機構好比 Udacity,Coursera、DeepLearning.ai 上都有 TensorFlow 課程。咱們也在支持教育部產學合做項目,支持高校開設機器學習課程,國內會有愈來愈多基於 TensorFlow 的原創課程。
下面講一下 TensorFlow 的 API。
TensorFlow 能夠幫助用戶定義計算圖,圖表明瞭計算,圖的每一個節點表明了某個計算或者狀態,而計算能夠運行在任何設備上。數據隨着圖的邊流動。而圖能夠用不一樣的程序語言好比 Python 來定義,而且這個計算圖能夠被編譯和優化。經過這樣的設計,能夠把圖的定義和實際計算過程分離開來。
TensorFlow 可讓你很是容易地表達線性迴歸,可使用 LinearRegressor,這是封裝好的 Estimator。深度神經網絡一樣能夠很方便的表達,好比使用 DNNClassifier,你只須要說明每個隱層的節點數。
TensorFlow 能夠自動執行梯度降低過程,實現反向傳播算法。而且這些計算能夠分佈在多個設備上,這樣圖的執行是一個分佈式的過程。
?是另外一類 API,能夠對應到神經網絡的層的概念,好比一個 CNN 網絡,你有多個 CONV 層和多個 MAX POOLING 層,每一層都有一個對應的函數,方便你把多層組織起來。這些封裝好的層包含了一些最佳工程實踐。
進一步,?是社區中很是流行的 API。好比你想構造一個可以自動去理解視頻,而且回答問題的玩具程序。你能夠問:這個女孩在作什麼?程序回答:打包。問:這個女孩穿什麼顏色的 T-shirt?程序回答:黑色。
你可能會構造一個網絡來實現:左邊是視頻處理邏輯,使用 InceptionV3 來識別照片,而後加上 TimeDistributed 層來處理視頻信息,之上是 LSTM 層;右邊是 Embedding 來處理輸入的問題,而後加上 LSTM,以後把兩個網絡合並起來,再加上兩層的 Dense。這就能夠實現一個具備必定智能的程序,是否是很神奇?
使用?,你用幾十行程序就能夠完成核心的代碼邏輯,好比 InceptionV3 的使用你只須要一行代碼。
進一步,除了前面講的靜態圖的方式,咱們還有動態圖的支持,叫作即刻執行(Eager Execution)。它能夠減小一些冗餘的代碼,讓你的程序更加簡單,同時當即報錯。
固然,靜態圖有它的優點,好比它容許咱們提早作不少優化,無論是基於圖的優化仍是編譯優化;能夠部署到非 Python 的服務器或者手機上;還能夠大規模的分佈式執行。
而即刻執行的優勢是讓你快速迭代,方便 debug。
好消息是,在 TensorFlow 當中,即刻執行和靜態圖執行能夠很是容易的進行轉換,平衡了效率和易用性。
第四部分,咱們來談談關於 TensorFlow 的高級知識。
TensorFlow Lite 是爲移動或嵌入式設備特別設計的輕量級機器學習庫,它更小,也更快。咱們提供了工具,很方便的把 TensorFlow 模型轉換成 TensorFlow Lite 格式的模型,而後在移動端,提供了 TensorFlow Lite 解釋器去執行這些模型。
在 Android 上,咱們利用了 Android 的 NN API,利用硬件加速。TensorFlow Lite 也對 iOS 有很好的支持。
TensorFlow.js 是最新公佈的基於 JavaScript 的 TensorFlow 支持庫,它能夠利用瀏覽器特性好比 WebGL 來加速計算。這意味着更進一步讓 TensorFlow 程序能夠運行在不一樣的環境當中,讓 AI 無處不在。
好比咱們能夠用 TensorFlow.js 來實現吃豆人遊戲,電腦攝像頭捕捉你的頭像,來控制吃豆人的移動。這一切都運行在瀏覽器當中。
TensorFlow 的分佈式執行對於大規模的模型很是重要。TensorFlow 能夠很方便地實現數據並行工。舉個例子:你能夠寫一個 Cluster 的描述文件,分配哪些是計算資源「worker」,哪些是參數的服務器「ps」,這樣能夠在咱們定義圖的時候能夠把這些計算分配在不一樣的設備上,進行分佈式的執行。
更進一步,谷歌支持了開源的 Kubernetes 項目,來管理大規模計算資源,它被業界普遍採納,特別是一些雲平臺。而爲了更好地讓機器學習運行在大規模集羣上,谷歌也帶頭推進了 KubeFlow 的項目,你們能夠關注。
而在 Benchmarks 方面,谷歌也公開了測試的程序。咱們能夠看到 TensorFlow 系統的可擴展能力很是強,基本上機器的數量和能力是線性正相關的。
在最近一個月,公司也發佈了一個 MLPerf,便於你們公開地比較機器學習的性能,這樣能夠推動產業的發展。
爲了更好的促進模型共享,咱們發佈了 TensorFlow Hub (TF Hub)。例如,一我的設計機器學習模型,他能夠從 GitHub 中找到不一樣的模型,進行組合,從而造成更強大的能力。
咱們能夠看到,一個模塊包含了訓練好的權重和圖,這就是一個簡單的模型,咱們能夠將這個模型組裝,重用,或者再訓練。
目前咱們已經公開了不少模型,包括圖像,語言相關等等,這些都須要大量的 GPU 訓練才能獲得。開發者能夠在這些基礎上,作一些遷移學習的工做,用很小的代價,就能夠利用現有的模型幫助解決本身的問題。
另一個是關於提升機器學習的技巧,叫?。舉個例子,在 CPU 上,訓練速度是很大的限制,但當咱們加上 GPU後,訓練速度就獲得了極大的提高,可是 CPU 輸入變成了一個瓶頸。數據須要作一些轉換使得能夠加載,進行訓練。
你們知道,計算機體系結構研究中一個主要的問題是如何加速並行化,而提升 CPU 和 GPU 的運行效率,是提升機器學習系統很重要的問題。而提供了一系列工具,幫助開發者更好的並行地輸入和處理數據。
更進一步,和 TensorFlow 訓練相關的 Packages/Features 還有不少,例如 Estimators, Feature Engineering, XLA, TensorFlow Serving 等等,這些能夠在不少行業上均可以獲得方便的應用。
當構建一個真實的端到端的機器學習系統時,除了上面討論的核心機器學習算法以外,還有大量相關係統須要構建,好比數據的獲取,數據的分析,模型部署,機器學習資源管理等等問題。
谷歌內部有一個大規模的系統 TFX (TensorFlow Extended) ,它是基於 TensorFlow 的大規模部署的機器學習平臺,相關論文已經發表在 2017 年的 KDD。目前咱們已經開源了一些重要的部件,更多的部件開源正在進展當中,作產業界的朋友能夠關注下。
最後,談談 TensorFlow 在中國的發展。
基本上,咱們看到中國領先的技術公司大都在使用 TensorFlow,來解決多種多樣的問題,好比:廣告推薦、點擊預測,OCR,語音識別,天然語言理解等等。包括不少家知名公司,像京東,小米,網易,搜狗,360,新浪,聯想等等;也包括不少的創業公司,好比知乎,出門問問,雲知聲,Kika,流利說等等。
還有一些研究機構,好比清華大學的朱軍老師,將貝葉斯網絡和深度學習結合起來,開源了基於 TensorFlow 的系統,叫「珠算」。
另外一個例子也是來自清華大學,開源了一些基於 TensorFlow 的知識圖譜工具。
在中國,TensorFlow 社區活動很是豐富。好比,這是三月底在谷歌北京辦公室舉辦的 TensorFlow 開發者峯會北京分會場活動,凌晨 1 點,Jeff Dean 和 TensorFlow 中國開發者視頻互動的場景:
另外還有咱們在重慶的活動,支持教育部產學合做協同育人項目,有上百位大學老師參加,奧斯卡經典電影咱們但願培訓更多大學老師來教機器學習等。
更多官方中文文檔,能夠訪問:
https://tensorflow.google.cn/
不久前,咱們還開源了 Google 內部使用的兩天機器學習速成課程(MLCC),過去幾年大量 Google 工程師學習了該課程。你們能夠訪問:
https://developers.google.cn/machine-learning/crash-course/
另外,推薦 TensorFlow 微信公衆號,你們能夠在微信上搜索「TensorFlow」找到。
你也能夠加入 TensorFlow 中文社區,和業界一塊兒來學習和探討 TensorFlow 技術,訪問:
https://www.tensorflowers.cn
TensorFlow 社區的基本理念是:開放,透明,參與。
咱們但願儘可能開放,因此發佈了 TensorFlow 的開發路線圖,使技術更加透明化,增長社區人員的參與感,共同推進技術的發展。Google 內部使用的 Tensorlow 也和外部也同樣,咱們每週都在不斷同步。
在這個開放的社區裏,無論是初學者,研究者仍是產業界開發者,每一個人均可以分享本身的問題,發佈本身的代碼、數據和教程,幫助其餘社區成員,組織線下技術小組聚會等等。更一步,能夠申請成爲谷歌開發者專家(GDE)榮譽稱號。
咱們公開了 Tensorlow 開發路線圖,你們能夠在下面網站找到:
https://tensorflow.google.cn/community/roadmap
另外,也能夠加入相關興趣小組,給 Tensorlow 提出發展建議。
總結而言,我以爲有如下幾個方向:
首先這是 TensorFlow 的設計目標,讓儘量多的人能用上深度學習技術,託福算分嘗試新的研究想法,作產品,解決難題。
這樣一方面能夠推進深度學習技術的發展,加快不少方面的 AI 應用。而這些 AI 應用,更須要擁有廣闊背景的衆多開發者來一塊兒推進。
另外一方面,從簡單地用到一些模型,到比較專業的深度優化,仍是有很多距離。若是你只是達到平均水平,付出能夠比較少,但要達到更高水平的突破,還須要不少的經驗。
你們須要有一點工匠的精神,對問題的理解程度,參數的調節,數據的清洗和處理等等,這些都是須要積累的。
咱們但願能夠下降 TensorFlow 使用的難度,也提供一系列的工具集來輔助用戶,但願可讓初級用戶更多的探索應用場景,而高級用戶能夠作更多的前沿科技研究。
我我的的感覺是,加入了深度學習,確實帶來了很大的突破。像機器翻譯,語音,天然對話,圖片翻譯,搜索排序,廣告預估等等,Google 的衆多產品都有深度學習的深入影響。
我的認爲:無人駕駛領域,醫療診斷方面,還有,好比語言對話方面,讓人充滿期待。我我的更期待AI能推進人類重大問題上的發展,好比農業,環境,教育,跨語言的自由交流等等方面,但願能夠藉助 TensorFlow 獲取突破的契機。
研究是基於真實的問題,而產品化緊密協做,把研究成果落實到產品上去,而且得到真實世界的大量反饋,這是一個快速迭代的過程。研究和產品是比較緊密的結合過程,能夠由真實問題的驅動去尋找解決方案。某種意義上,Google 的工程師,混合了研究和產品的角色,既要研究問題,也要實現產品。
查看更多 TensorFlow 和人工智能相關的內容,請關注谷歌官方「TensorFlow」微信公衆號:
文章來源:https://blog.csdn.net/jILRvRTrc/article/details/80578131