Facebook的交互式神經網絡可視化系統ActiVis,打開神經網絡的“黑盒子”
之前許多媒體在熱烈討論神經網絡的“黑盒子”(black box)問題。復雜的模型處理預測性工作負載時表現良好,但是說到回溯系統是如何得出最終結果的,根本沒有一種清晰的方法來了解什么做對了、什么做錯了,或者了解模型如何打開自己、得出結論。
對于老式機器學習模型而言,這問題不大;但是如今對于非線性隱匿式數據結構和無數參數而言,這卻是個問題。對于為科學應用部署神經網絡的研究人員而言,黑盒子缺乏再現性(reproducibility)這個問題帶來了驗證方面的障礙,不過對于深度學習框架的生產級用戶來說,因缺乏可見性而無法深入了解網絡行為還存在其他問題,尤其是在優化模型,以獲得更好的性能、效率和準確性方面。
要解決這個問題,一個辦法就是對神經網絡模型實行可視化――這正是社交媒體巨頭Facebook與佐治亞理工學院(Georgia Tech)的研究人員共同致力于攻克的課題。Facebook的深度學習使用場合不僅僅局限于圖像分析,這意味著不同類型的數據被饋送到模型。遺憾的是,用于神經網絡可視化的工具大多數專注于圖像數據集,這激發了Facebook研究用于Facebook生產環境中的一種名為ActiVis的工具,這是一種交互式可視化系統,可用于解釋大規模神經網絡模型和結果。
佐治亞理工學院的研究團隊就在一年多前開始與Facebook的工程師合作,了解他們的分析平臺、什么可視化工具適用。除了開發這種一樣工具面臨的重大技術挑戰外,這種工具除了能夠融入到Facebook的現有機器學習平臺,還要“具有靈活性,可推廣到Facebook等公司用于其許多產品和服務的眾多模型和數據集”。
該平臺由幾個不同的機器學習元素組成。核心元素是Facebook的統一機器學習平臺,名為FBLearner Flow,它負責協調不同的機器學習工作流程。Flow的目標是,讓開發人員不用編寫代碼就可以訓練模型,并查看結果。
ActiVis支持兩種解釋策略來用于可視化和比較多個實例和子集。它統一了基于實例的檢查和基于子集的檢查;它緊密地整合了復雜模型的概述和局部檢查,可靈活擴展,支持一系列廣泛的行業規模的數據集和模型――對于想針對其數據使用現有模型,但是又不想深入實施細節的那些人來說,Facebook里面的這個工具非常寶貴。ActiVis特別專注于FBLearner Flow用于可視化,一方面是由于其用戶群。
“ActiVis直觀地顯示用戶指定的實例或實例子集如何激活神經元,從而幫助用戶了解模型是如何導出預測的。用戶可以使用原始數據屬性、變換的特征和輸出結果,隨意定義子集,可以從多個角度來檢查模型。”
佐治亞理工學院的團隊表示,對于大規模設計這類可視化系統的任何人來說,為神經網絡構建一個穩固的平臺涉及幾個元素。他們提到了輸入源和數據格式的多樣性、龐大數據量、復雜的模型架構,不一而足。
“雖然許多現有的深度學習可視化工具支持基于實例的探索,ActiVis卻是***款同時支持對深度神經網絡模型進行基于實例的探索和基于子集的探索的工具。此外,為了幫助用戶了解模型的大致情況,它使用圖形顯示了模型架構,用戶可以在此基礎上深入分析,在每個模型層或節點這一層面,對神經元激活執行局部檢查。”
該團隊表示,想要使用這種可視化工具的Facebook開發人員添加了幾行代碼,這些代碼告訴模型在FBLearner Flow界面中的訓練過程:它需要生成可視化所需的數據。訓練結束后,界面提供了這個基于Web的工具的鏈接,以便可視化和探索模型。
該團隊稱:“ActiVis旨在處理Facebook的許多不同的模型和數據集。由于經常使用復雜模型和大型數據集,ActiV具有可擴展性和靈活性很重要,那樣工程師可以為其模型輕松采用ActiVis,用戶可以可視化和探索模型,用于處理分析任務。”
***,對神經網絡進行可視化以解決黑盒子問題不是什么新鮮事,但是由于模型變得更復雜――這歸因于硬件和更多的數據,今后會更加需要諸如此類的工具。我們預計,在今后幾年,接入到關鍵平臺(包括TensorFlow、Caffe及其他)的類似的可視化工具會開源,甚至可能實現商業化,對生產環境和科學計算這兩種使用場景來說都是如此。