03.01 機器學習:通過 TensorBoard 將模型可視化

機器學習不像傳統的編程,它往往變幻莫測。模型間的細小差別和數據質量、參數微調中的小小改變都可能對最終成功與否造成巨大的影響。

機器學習:通過 TensorBoard 將模型可視化

用 TensorBoard 找到缺口

只有當我們跟蹤某些特徵數據在整個訓練過程當中的變化,並且縱覽模型結構,才能有效調校模型並調試所「看到」的問題。

這一抽象的流程往往難以通過可視化的方式呈現,不過現在 TensorFlow 內置瞭解決方案將會帶來改變。


現在一起來看看內置於 TensorFlow 的可視化方案 — TensorBoard,一個讓你更能把控大量操作的工具。不論是觀察模型整體結構還是監視整個模型訓練過程。

機器學習:通過 TensorBoard 將模型可視化

TensorFlow 在內部使用了計算機圖形理論的思想。

機器學習:通過 TensorBoard 將模型可視化

也就是說,為了取締傳統意義上兩數相加的思維,TensorFlow 構造了加法運算,並將之作為參數傳入,隨後數值將會被這一運算加在一起。

所以我們回頭思考 TensorFlow 訓練過程,其實就是將所有操作作為其圖的一部分來執行的過程。TensorBoard 可以將這些模型可視化,所以你能看到模型抽象出來是什麼樣子,更讓你得以檢查是否所有部分都按要求組合在了一起。

下面來個更復雜點的例子,一個同樣是用 TensorFlow 將模型可視化的例子。注意看上圖,TensorFlow 讓我們可以縮放、掃視、展開模型的各個元素以得到更多細節。這就是說,我們可以從不同的抽象層次觀察模型,從而降低了視覺複雜度。

機器學習:通過 TensorBoard 將模型可視化

並且,TensorBoard 除了向我們展示模型的結構,還會將各項特徵值的變化很好佈局在圖上。我們會將精確度、失真、跨熵等拿來佈局觀測,且另一方面,依賴於模型的眾多特徵值往往至關重要。至於 TensorFlow 的預置發射器,它們自帶了一套預設值用於在 TensorBoard 中使用。這一特性為後續使用做好了鋪墊。

TensorBoard 除了上述功能,還能展示包括條形圖、分佈圖以及諸如聲音、圖像、文字等與模型共生的數據等等大量的信息。不過關於那部分的詳細介紹要等到後面的視頻。


迴歸正題,我們來看看之前一直使用的線性模型在 TensorBoard 當中的表現。首先需要啟動 TensorBoard 並將之指向目標模型層次結構及重要中間文件所在的目錄:

<code>tensorboard --logdir=」/tmp/iris_model/」/<code>

此項操作會啟動一個偵聽 6006 端口的本地服務器。6006 看起來是不是非常像「GOOG」呀?

機器學習:通過 TensorBoard 將模型可視化

我們可以看到一些線性 classifier 默認提供的標量特徵值。稍後可以通過縮放和展開來研究這些圖像。

機器學習:通過 TensorBoard 將模型可視化

雙擊能夠回退到更高的縮放級別。可見,我們的模型訓練隨著時間推移正以逐漸降低的失真井然有序進行。並且我們能清晰看到模型訓練尚未完成,原因是失真下降率仍然不可忽視直至訓練的終點。所以這就提示我們,也許應當將訓練的過程再多持續一會兒,進而從訓練過程中獲得更多收益。

接下來看看 Graphs 小分頁。注意看,此時的圖還是非常簡單的。

機器學習:通過 TensorBoard 將模型可視化

我們能通過點擊小塊兒上面的加號展開查看更詳細的內容。比如,我現在展開了「linear」這個模塊,可以看到它由不少子模塊組成。我們可以通過滾輪來縮放視野,也可以通過點按拖拽來查看其他部分。

注意我們給特徵列的名字,比如此處的 flower_features 在圖中以模塊形式呈現。

機器學習:通過 TensorBoard 將模型可視化

這種方式將有助於調試並瞭解上面展示的圖中各部分是怎樣聯結起來的。大多數 TensorFlow 的操作是可以命名的,所以這是一個將模型闡述清楚和觀察當前訓練進展的好機會。


今天,我們學到了簡單有趣的機器學習模型重要特徵值可視化相關知識。TensorBoard 將讓你輕鬆體驗到這種樂趣,並且最妙之處是它已經完全內置在 TensorFlow 當中了。

記住下一次你想要把機器學習過程可視化時,TensorBoard 是你的不二選擇。


轉自;https://zhuanlan.zhihu.com/p/31497981


分享到:


相關文章: