稿件來源:阿裡雲開發者社群(點選下面“了解更多”檢視原文)
導讀:深度網絡對機器學習研究和應用領域産生了巨大的影響,與此同時卻無法很清晰地解釋神經網絡的來龍去脈。迄今為止,深度學習不夠透明,神經網絡整體看來仍然是一個黑箱。是以,人們一直緻力于更透徹地去了解其中複雜的過程,進而達到進一步優化的目的。由于人類對于世界的認知和感受主要來自于視覺,良好的可視化可以有效地幫助人們了解深度網絡,并進行有效的優化和調節。
一. 背景
(圖檔引自 2018 AI predictions:8 insights to shape busi
盡管業界對于圖像和NLP領域,在可視化和可解釋性等方向上已經取得了一些進展,但對于計算廣告領域,目前還是空白,可以借鑒的平台或工具很少。而可視化的前提,是需要先對訓練模型進行相關資料透出,進而進行可視化分析評估,最終使得神經網絡從黑盒向白盒過渡,在一定程度上提高模型的可解釋性。但現有深度學習架構對資料透出的支援力度不大,還不足以滿足日常訓練的所有需求,尤其是針對一些棘手問題,更加難以定位分析,乃至無從調試。
同時,随着網絡複雜度的急劇提升,傳統的機器學習評估名額,如欠拟合/過拟合/精準率(PR)/召回率(Recall),并不能夠全面地評估一個深度學習網絡模型的品質,而我們正在尋找一種途徑或者說在摸索一種方式,嘗試着去定義深度學習品質體系,進而幫助人們更好地了解并評估模型本身,即在一定條件下,通過提高深度學習的可解釋性與可靠性,提升網絡模型的可控性。
基于此,平台在完善訓練任務生命周期管理的同時,緻力于提供更加全面的資料透出方式(如本期新增的線上動态更新資料透出功能),并以深度學習特有的多元度可視化等方向作為核心功能演進。
二. DeepInsight系統架構
目前來看:資料科學負責見解;機器學習負責預測;人工智能負責行為。同時,這幾個領域之間存在着很多重疊。資料科學與其他兩個領域不同,因為它的目标跟人類的目标尤其接近:獲得洞察力和了解力,這也是DeepInsight平台命名的由來。
DeepInsight是基于分布式微服務叢集化部署的深度學習可視化評估平台,由前端WEB平台+後端微服務+深度學習元件等三個子系統構成,各個微服務執行個體之間是隔離的,互不影響;目前支援TensorflowRS及原生Tensorflow訓練任務的生命周期管理。旨在通過資料透出及可視化等手段,解決模型調試及問題定位分析等系列問題,提高神經網絡的可解釋性;以生命周期管理的方式執行訓練任務,進而提供一站式的可視化評測服務。平台在賦能業務的同時,業務也會将後期處理過的資料回報給平台,進而建構以DeepInsight為基礎資料核心的AI可視化生态圈。
三. 基于資料透出的多元度可視化分析
目前深度學習元件(TF-Tracer/TF-Profiler等)主要負責資料透出、實時監控和輸出控制等,透出的資料主要是模型訓練過程中的Raw Data(未經加工或計算統計);後端微服務(Tensorboard+/Notebook+)和前端WEB平台(高維可視化)負責相關資料的線上離線互動式等方面的可視化分析評估;以模型訓練任務的生命周期管理(Lifecycle)貫穿始終,進而形成多元度可視化分析的生态循環。
3.1 深度學習元件
由于原生深度學習架構提供的功能有限,不能完全滿足日常訓練的調試分析需求。DeepInsight深度學習元件以透明的方式接入Tensorflow架構,支援本地和分布式模型訓練,以第三方庫方式的安裝。
1)基于原生的深度學習架構Tensoflow API(tf.train.SessionRunHook)編寫的即插即用元件,無需使用者開發額外的代碼,隻需使用者通過配置檔案增加相應配置資訊,即可使用對應的元件;
2)配置資訊由元件開關群組件配置參數資訊兩部分組成:
打開相應元件開關後,元件功能不會對原有訓練任務産生較大性能影響,進而保證線上訓練效率;
關閉相應元件開關後,對原有訓練任務無任何功能或性能上的影響;
3.1.1 TF-Tracer:基于計算圖的全面資料透出
資料透出元件TF-Tracer是基于Tensorflow 計算圖(tf.Graph)開發的,可以全面透出計算圖中的所有變量(tf.Variable),基于圖資料集(tf.GraphKeys),通過正規表達式對變量集合進行比對過濾,透出相應變量資料集合,同時也支援直接指定變量清單進行資料透出,支援NumPy/Bin兩種資料格式輸出。
對于非計算圖中的變量,使用者也可以通過回填的方式,添加到官方預置圖資料集或自定義圖資料集中;
TF-Tracer配置檔案示例,具體詳見TF-Tracer User Guide:
"trace": "true