本文所介紹的數據可視化項目都可在 https://research.google.com/bigpicture/中找到。
機器學習已經成為一個日益強大的工具,該工具可以應用到橫跨物體識別、語言翻譯、健康醫療等各種領域。然而,目前,常常只有具備能夠處理共用機器學習庫的計算資源和技術專家的開發商才可以開發機器學習系統。
下面開始分別介紹 Google 大腦團隊的可視化項目。
Deeplearn.js 是一款基於硬體加速的開源 JavaScript 庫,可被用在機器智能領域。
Deeplearn.js 將高性能的機器學習構建模塊引入到 web 開發領域。通過 DeepLearn.js,可以實現在瀏覽器中訓練神經網絡模型,也可在推理階段運行預訓練模型。該庫可以直接在您的瀏覽器中運行,而無需進行安裝,也無需藉助後端運行。
在當前深度學習的浪潮下,deeplearn.js 為瀏覽器構建了強大的交互式機器學習工具,幾乎可以被用在任何領域,包括教育、模型的理解、藝術項目等。
Facets 是一款旨在幫助用戶理解並分析各類機器學習數據集的開源可視化工具。
由於機器學習數據集可以包含數億個數據點,每個數據點由數百 (甚至數千) 的特徵組成,幾乎不可能以直觀的方式了解整個數據集。Google 開源的 Facets 就是專門為解決這個痛點而生。
Facets 包含兩個部分——Facets Overview 和 Facets Dive——允許用戶從不同的粒度觀看其數據的全景圖。你可以使用 Facets Overview 可視化數據每一個特徵,或者使用 Facets Dive 探索個別的數據觀察集。這些可視化允許你調試數據,這在機器學習中和調試模型一樣重要;還可以輕易地被用在 Jupyter notebooks 之內,或者嵌入網頁之中。我們除了開放 Facets 原始碼,還創建了演示網站,允許任何人在瀏覽器中直接可視化數據集而無需安裝任何軟體或設置,也無需數據離開你的計算機。
一種提高 sensitivity masks 的技術。
當機器學習模型做出預測時,我們通常會想要確定輸入(像素、圖像)的哪些特徵對預測很重要。如果模型做出錯誤的預測,我們可能想知道是哪些特徵導致了錯誤分類。為了做到這一點,我們可以將特徵重要性蒙版可視化為與原始圖像具有相同尺寸的灰度圖像,其亮度與像素的重要性相對應。這種就叫做 sensitivity mask。
有很多技術可以用來計算特定預測的圖像的 sensitivity mask。其中最簡單的方法是,根據輸入像素,進行一個類預測神經元的梯度計算。這種方法讓我們知曉了像素的微小改變會對預測產生多大的影響。從視覺上看,這個 mask 通常有很多噪點。
SmoothGrad 技術通常會為 sensitivity mask 進行顯著的降噪。該技術將像素高斯噪聲添加到圖像的許多副本中,並簡單地平均所得到的梯度。
一款高維數據的開源可視化工具。
隨著機器學習系統的廣泛採用,研究科學家能夠的探索數據如何被模型解釋變得越來越重要。然而,探索這些數據的主要挑戰之一是,數據通常有數百甚至數千維度,需要用專門的工具來探索、調查高維數據空間。為了實現一種更為直觀的探索過程,Google 開源了一款用於交互式可視化和高維數據分析的網頁工具:Embedding Projector,作為 TensorFlow 的一部分,Google 還在 projector.tensorflow.org 上發布了一個獨立版本,用戶可以在上面直接運行可視化其高維數據,而無需安裝和運行 TensorFlow。
使用 Embedding Projector,用戶可以通過 2D 或 3D 模式瀏覽數據視圖,使用自然的點擊和拖動手勢縮放,旋轉和平移。在該可視化中單擊任何點(其代表對於給定單詞的向量維度點),引出語義最相近詞語的點和維度空間距離的列表。這種類型的交互代表一種重要的方式,人們可以探索算法如何執行。
Embedding Projector 提供了三種常用的數據維數降低方法,允許更容易地顯示複雜數據:PCA、t-SNE 和定製線性投影。 PCA 通常有效地探索嵌入的內部結構,揭示數據中最具影響力的維度。另一方面,t-SNE 對於探索局部鄰域和找到有用的同類,確保嵌入保留數據中的含義(例如,在 MNIST 數據集中,看到相同的數字被聚集在一起)。最後,自定義線性投影可以幫助在數據集中發現有意義的「方向」:例如語言生成模型中正式和休閒的語調之間的區別,這將允許設計更適合的機器學習系統。
Embedding Projector 網站包括幾個可以應用的數據集。用戶可以輕鬆地發布和與他人分享其結果(只需點擊左側窗格中的「發布」按鈕)。Google 希望 Embedding Projector 將是一個有用的工具,幫助研究團體探索和改進他們的機器學習應用程式,以及使任何人能夠更好地了解機器學習算法如何解釋數據。
嘗試不同的權衡,來理解公平性和機器學習的問題。
隨著人工智慧的發展,人類將會把越來越多的決策權交給機器。但是,從目前的一些事例看,基於機器學習的決策並非那麼公正完美,相反,那些決策也滲透著偏見。確保這些決策不具歧視性的工作變得至關重要。
我們希望機器能夠為我們執行起關鍵作用的的任務(比如自動駕駛,理財或者手術等),機器是公平、可靠和透明的。換言之,我們希望機器學習系統能夠更加安全、更加通用,更加透明/可解釋,以及能夠通過小樣本和知識推理來解決問題,這將會是機器智能邁向通用智能(AGI)的重要方向。
Google 使用了「閾值分類器」(threshold classifiers)的概念,這是機器學習系統的一部分,它對歧視問題至關重要。從本質上來說,閾值分類器做出「是 / 否」的決定,將事物放在一個類別或另一個類別中。我們看看這些分類器是如何工作的,它們可能缺乏公平性的公式,以及如何將不公平的分類器變成一個更公平的分類器。例如,我們在貸款發放的場景中,銀行可以根據單個的、自動計算的數字 (比如信用評分) 來授予或拒絕貸款。這就涉及到機器學習的公平性。
現在計算機科學家已經組成一個團隊,稱為機器學習公平、透明、問責制( Fairness, Accountability and Transparency in Machine Learning)
Google 發布的神經網絡機器翻譯(GNMT:Google Neural Machine Translation)系統,該系統使用了當前最先進的訓練技術,能夠實現到目前為止機器翻譯質量的最大提升。
機器翻譯,即跨語言間的自動翻譯,是機器學習社區最活躍的研究領域。在機器翻譯的眾多方法中,序列到序列(sequence-to-sequence,seq2seq)模型近期獲得巨大成功。由於其可以使用深度神經網絡獲取句義,該模型成為 Google 翻譯等多數商業翻譯系統事實上的標準模型。但是,儘管有關 OpenNMT 或 tf-seq2seq 等 seq2seq 模型的資料已經非常豐富,但能夠指導人們快速構建高質量翻譯系統的知識和技能仍然略顯不足。
以詞組為基礎的傳統翻譯系統將源語言句子拆分成多個詞塊,然後進行詞對詞的翻譯。這使得翻譯輸出結果流暢性大打折扣,遠遠不如人類譯文。我們會通讀整個源語言句子、了解句子含義,然後輸出翻譯結果。神經機器翻譯(NMT)竟然可以模仿人類的翻譯過程!
Geodetic Velocities Visualization一款研究地震周期的開源可視化工具。
為了幫助研究人員更好地了解地震周期並探索相關數據,Google 發布了一種新的交互式數據可視化方法,通過相對於真實位置放大位置估計值,在地形圖頂部繪製大地測量速度線(geodetic velocity lines)。與現有方法——集中於小段時間或單個觀測站位置不同,新的可視化方法可以一次顯示整個陣列所有觀測站的數據。獲取開原始碼可以訪問 GitHub,用的是 Apache 2 許可證。這種可視化技術是哈佛大學地球與行星科學系與 Google 機器感知(Machine Perception)和大圖片(Big Picture)團隊之間的合作成果。這種新的方法可以幫助科學家快速評估地震周期各階段的變形——包括地震(同震)和(地震)之間的時間。 例如,我們可以到站的方位角(方向)反轉,因為它們與地形結構和活動斷層有關。挖掘這些運動將幫助科學家審查他們的模型和數據,而這兩者是開發準確的計算機表徵的關鍵,有助於預測未來的地震。
這次研究人員採用的可視化方法很簡單:通過放大每天的經度和緯度位置變化,顯示每個站的位置隨時間演變的軌道。這些放大的位置軌跡被示為劃在陰影浮雕地形頂部上面的軌跡,從而給觀看者一種在地理情景中位置演變的感覺。
Tensorflow Playground 是 Google 開源的一個神經網絡深度學習展示 demo,以圖形化形式展示,可以直觀地理解神經網絡的工作原理。
PlayGround 是一個在線演示、實驗的神經網絡平臺,是一個入門神經網絡非常直觀的網站。這個圖形化平臺非常強大,將神經網絡的訓練過程直接可視化。同時也能讓我們對 Tensorflow 有一個感性的認識。
在 Tensorflow Playground 這個平臺上我們可以選擇不同的參數和設計,神經網絡訓練的每一步迭代將會用可視化顯示出來。Google 已經把開原始碼放在 GitHub 上了,就是希望能夠讓入門和學習神經網絡變得更加容易。拉到網頁的最上面一行,我們會看到有一個參數選項列表。現在對我們對這些選項一一進行解釋:
Activation 是激活函數,定義了每一個神經元的輸出,Google 提供了四種選擇。用戶可以一一嘗試並且通過可視化清楚的看懂他們的區別。
Learning Rate 是學習率,決定每一步學習的步長。這個和前面的問題裡我們談到梯度學習有關。運用梯度下降算法進行優化時,在梯度項前會乘以一個係數,這個係數就叫學習率。學習率如果太小函數收斂很慢,太大則可能無法找到極值,甚至函數無法收斂。
Unfiltered News 意為「未過濾新聞」,其最大的價值在於呈現出用戶所在地區未報導的全球新聞與觀點,使其看到自己世界觀之外其他地方正在發生的事件,甚至是同一個事件在不同地區的相異觀點。
Unfiltered News 用視覺化圖譜的方式,動態的呈現出全球地圖上各地的焦點話題,以氣泡大小展現話題熱度,並且可以在地圖上自由縮放移動,快速聚焦某些地區或主題的話題。類似的功能其實 Google 新聞也能在切換不同語言時看到,事實上 Unfiltered news 就是去讀取 Google 新聞的資料庫,但是做了全新的視覺化呈現,用全球地圖的鳥瞰,一次展現出多元並陳觀點,閱讀與挖掘起來更容易。
TensorFlow Graph Visualizer一款 TensorFlow 計算圖的高級視圖的開源可視化工具。
TensorFlow 計算圖功能強大但複雜。圖表可視化可以幫助用戶理解和調試它們。TensorFlow 採用數據流圖(Dataflow Graph)來表達機器學習算法的計算過程,用戶可以定製不同的數據流圖來構建自己的算法。然而,隨著深度學習的興起與流行,各類神經網絡漸趨大規模、複雜化。算法開發者僅憑藉自身的理解與記憶、很難把握算法的各部分體系結構,相互之間也難以進行溝通。為此,Google 提出了可視化工具 TensorFlow Graph Visualizer,通過可視分析幫助用戶在 TensorFlow 中進行算法分析與開發。
用戶可以通過輸入自然語言指令,來讓 Google Sheets Explore 自動生成合適的圖表。
Sheets 中的 Explore 由機器學習驅動,它能夠幫助團隊迅速發掘出數據的意義。不需要公式,只要簡單地用文字輸入一些問題,你就能迅速地對數據進行分析。比如:「賣出去的產品是如何分布的?」或是「每周日的平均銷量如何?」隨後 Explore 就會幫你找到答案。
Google 在 Explore 上運用相同的技術來讓數據可視化工作變得更為容易。如果用戶找不到自己需要的圖表,讓 Explore 來搞定就行。輸入「2017 年客戶評級的直方圖」或是「冰淇淋銷量的條形圖」,圖表就會自動生成在用戶面前。
用戶可以在 Google Sheets 對你的電子表格數據生成口頭的見解。
Google 在 Sheets Explore 應用了機器學習,使得艱澀的數據得以用語言形式(Data Verbalization)來描述,讓數據更為人們容易理解。
Google 對經典的元素周期表推出了可視化版本。
門捷列夫元素周期表是非常經典的表格,Google 推出了可視化版本,用戶可以在其上選擇三種視覺方式來交互,效果非常炫酷。
查看隨時間推移,不同的音樂流派如何變得流行,並發現每種流派都有哪些藝術家。
Google 發布了「Music Timeline」,這款可視化工具能夠調用 Google Play Music 上的音樂播放匯總數據信息,用來顯示藝術家和流派在數十年間的起起伏伏,從而揭示音樂是如何風靡和過時的。
在這個網站中你不僅能夠查看一些經典的依然保存在消費者收藏夾裡面的歌曲,也能夠針對藝術家的流派閱讀音樂背後的故事,當然在閱讀這些參數的時候你能夠跳轉到 Google Play 上試聽這些音樂。
Digital Attack Map 源於 Google Ideas 和 Arbor 網絡的合作,通過展現匿名的攻擊數據向用戶提供歷史性的攻擊數據和報告。
Digital Attack Map 展現的數據是由 Arbor 網絡 ATLAS 全球智能威脅系統搜集和發布。ATLAS 通過分布在全球的 270 家以上的 ISP 客戶尋求數據,當然這些 ISP 客戶同意分享匿名網絡通訊數據和攻擊統計數據。這些數據每小時更新一次,也可以在 Arbor 的 ATLAS 威脅入口中找到。
因為流量屬性的變化和監測範圍的問題,不太可能在線展現完整的攻擊情況。儘管 Digital Attack Map 的數據來自可用的最完整的數據集之一,但它仍然是不全面的地圖。在 Arbor 網絡觀測的數據中可能有未經確定的或非活躍攻擊的數據,還有可識別的攻擊中有高威脅趨勢的數據。Digital Attack Map 是一個展現全球流量攻擊活躍程度的工具,它搜集的數據均是匿名的,並不包含在任何特定攻擊中可識別的攻擊者或受害目標的信息。
了解單詞的詞源及其使用量。
Google 推出了 Google Dictionary,使用這款可視化工具可以了解單詞的起源以及隨著時間變化的使用量的變化。
要使用 Google Dictionary,你只需在 Google 上搜索欲查的單詞時,前面加上「define:」就可以了。下圖所示,是搜索單詞 mortgage,鍵入 define:mortgage 後的結果頁面,從下圖我們可以看到單詞 mortgege 的起源,並且還能看到在過去某段時間內的使用情況。
Google 推出的內容分析工具 YouTube Trends Map,這款產品可以讓用戶實時了解全美最受歡迎的視頻,同時允許他們按照年齡和性別獲取實時信息圖。
想知道美國最受歡迎的劇集是哪部嗎?你可以使用 YouTube Trends Map,為什麼說要用這個功能呢?就是因為 YouTube 建立了一個 Trends Map,功能就是以一個地圖加影片縮圖的形式去顯示當下有什麼影片是在 YouTube 上多人看的,那些數據是基於本來的已經支持很多地區的 Trends Dashboard,不過 Trends Maps 目前就只是支持美國而已,用戶可檢視美國個別地區的情況。雖然如此,Trends Map 卻可以為用戶帶來一個更宏觀的檢視方式。當然地,Trends Dashboard 原本支持的性別和年齡過濾功能是有的,所以依然可以看到個別群組的人在看什麼。
儘管 YouTube Trends Map 的界面設計極其簡潔,它卻可以讓用戶知道視頻內容在不同地區或城市的受歡迎程度;通過對比不同內容,用戶可在頁面展示的地圖上看到視頻的縮略圖,而這些圖示正是各支視頻在全美各地區的熱門排名。另外,如果 YouTube 剛好擁有這些視頻的播放版權,那麼它會在對應處標註出內容連結。
流可視化(Flow Visualization)是 Google Analytics 的一個新功能。
訪問流報告、導航流報告和目標流報告,是分析人們如何在內容間瀏覽的一種新方式。長期以來,Google Analytics 中沒有真正的點擊路徑分析。雖然有導航摘要和進入路徑報告,但是這些都非常有限。絕大多數點擊路徑報告,無論什麼分析工具,都幾乎沒有價值。為解決這一痛點,Google 推出了新的流可視化報告,希望改善這個問題,使用戶可以更簡單的理解訪問者的行為,理解訪問者如何在內容間移動。
點擊路徑報告長久以來一直被人們詬病,是因為將海量的數據塞進了確實相當蹩腳的界面中。Google 想要用新的可視化、維度下拉菜單和聯繫滑塊解決這個問題。你可以控制查看的數據,以便讓分析有的放矢。
用流可視化,用戶可以看到人們從哪裡來,跟著他們到不同的頁面並且評估跳出率,看一下在著陸頁之後他們看了什麼內容。
流可視化將對 Google Analytics 產生比大絕多數人所認為的更大的影響。確實,這些報告很誘人。但是,這種數據可視化是關鍵的改變。我相信我們將看到 Google 將包含更多的有創造性的數據可視化來幫助分析。這才是真正激動人心的。
Ripples 是由 Google+ 上的公開信息打造的公開分享情況互動圖表。
Google+ Ripples 是 Big Picture Group 的第一個可視化產品,這個可視化產品展現了一條消息是怎樣在 Google+的社交網絡裡被分享傳播的。每個轉發和評論都是一個圈,被再轉發次數越多圈就越大。箭頭從原帖指向轉發的消息。把滑鼠移到圈上可以看到消息的內容。
Ripples 讓用戶查看相應信息在網絡中的傳播情況,讓用戶發現新的感興趣的人加入關注列表。它不僅可以顯示誰分享了用戶的內容,當有人轉貼,並分享了你的內容,Ripples 可以為用戶提供一個可視化的總覽概觀,並告知最有用且最主要的影響力分布在哪些地方。
在下面的圖裡,我們可以看到 Glenn Thomas 的消息被轉發了很多次,其中有三個消息又再次被轉發。在可視化的下面還有時間軸來可視化轉發的歷史。點擊播放甚至可以回放轉發的過程。最下面還有關於參與轉發的用戶的社交影響指數及和這個消息傳播範圍有關的統計數據。這個可視化信息量不小但是設計的非常簡單明了,很不錯。
如果喜歡我們的內容,記得給我們「留言」和「點讚」,給編輯鼓勵一下!