《TensorFlow技術解析與實戰》——第3章 可視化TensorFlow 3.1PlayGround
本節書摘來自異步社區《TensorFlow技術解析與實戰》一書中的第3章,第3.1節,作者李嘉璿,更多章節內容可以訪問雲棲社區“異步社區”公眾號查看
第3章 可視化TensorFlow
可視化是認識程序的最直觀方式。在做數據分析時,可視化一般是數據分析最後一步的結果呈現。把可視化放到“基礎篇”,是為了讓讀者在安裝完成後,就能先看一下TensorFlow到底有哪些功能,直觀感受一下深度學習的學習成果,讓學習目標一目了然。
3.1 PlayGround
PlayGround[1]是一個用於教學目的的簡單神經網絡的在線演示、實驗的圖形化平台,非常強大地可視化了神經網絡的訓練過程。使用它可以在瀏覽器裏訓練神經網絡,對Tensorflow有一個感性的認識。
PlayGround界麵從左到右由數據(DATA)、特征(FEATURES)、神經網絡的隱藏層(HIDDEN LAYERS)和層中的連接線和輸出(OPUPUT)幾個部分組成,如圖3-1所示。

圖3-1
3.1.1 數據
在二維平麵內,點被標記成兩種顏色。深色(電腦屏幕顯示為藍色)代表正值,淺色(電腦屏幕顯示為黃色)代表負值。這兩種顏色表示想要區分的兩類,如圖3-2所示。
圖3-2
網站提供了4種不同形態的數據,分別是圓形、異或、高斯和螺旋,如圖3-3所示。神經網絡會根據所給的數據進行訓練,再分類規律相同的點。
圖3-3
PlayGournd中的數據配置非常靈活,可以調整噪聲(noise)的大小。圖3-4展示的是噪聲為0、25和50時的數據分布。
圖3-4
PlayGournd中也可以改變訓練數據和測試數據的比例(ratio)。圖3-5展示的是訓練數據和測試數據比例為1 : 9和9 : 1時的情況。
圖3-5
此外,PlayGournd中還可以調整輸入的每批(batch)數據的多少,調整範圍可以是1~30,就是說每批進入神經網絡數據的點可以1~30個,如圖3-6所示。
圖3-6
3.1.2 特征
接下來我們需要做特征提取(feature extraction),每一個點都有X1和X2兩個特征,由這兩個特征還可以衍生出許多其他特征,如X1X1、X2X2、X1X2、sin(X1)、sin(X2)等,如圖3-7所示。
圖3-7
從顏色上,X1左邊淺色(電腦屏幕顯示為黃色)是負,右邊深色(電腦屏幕顯示為藍色)是正,X1表示此點的橫坐標值。同理,X2上邊深色是正,下邊淺色是負,X2表示此點的縱坐標值。X1X1是關於橫坐標的“拋物線”信息,X2X2是關於縱坐標的“拋物線”信息,X1X2是“雙曲拋物麵”的信息,sin(X1)是關於橫坐標的“正弦函數”信息,sin(X2)是關於縱坐標的“正弦函數”信息。
因此,我們要學習的分類器(classifier)就是要結合上述一種或者多種特征,畫出一條或者多條線,把原始的藍色和黃色數據分開。
3.1.3 隱藏層
我們可以設置隱藏層的多少,以及每個隱藏層神經元的數量,如圖3-8所示。
圖3-8
隱藏層之間的連接線表示權重(weight),深色(藍色)表示用神經元的原始輸出,淺色(黃色)表示用神經元的負輸出。連接線的粗細和深淺表示權重的絕對值大小。鼠標放在線上可以看到具體值,也可以修改值,如圖3-9所示。
圖3-9
修改值時,同時要考慮激活函數,例如,當換成Sigmoid時,會發現沒有負向的黃色區域了,因為Sigmoid的值域是(0,1),如圖3-10所示。
圖3-10
下一層神經網絡的神經元會對這一層的輸出再進行組合。組合時,根據上一次預測的準確性,我們會通過反向傳播給每個組合不同的權重。組合時連接線的粗細和深淺會發生變化,連接線的顏色越深越粗,表示權重越大。
3.1.4 輸出
輸出的目的是使黃色點都歸於黃色背景,藍色點都歸於藍色背景,背景顏色的深淺代表可能性的強弱。
我們選定螺旋形數據,7個特征全部輸入,進行試驗。選擇隻有3個隱藏層時,第一個隱藏層設置8個神經元,第二個隱藏層設置4個神經元,第三個隱藏層設置2個神經元。訓練大概2分鍾,測試損失(test loss)和訓練損失(training loss)就不再下降了。訓練完成時可以看出,我們的神經網絡已經完美地分離出了橙色點和藍色點,如圖3-11所示。
圖3-11
假設我們隻輸入最基本的前4個特征,給足多個隱藏層,看看神經網絡的表現。假設加入6個隱藏層,前4層每層有8個神經元,第五層有6個神經元,第六層有2個神經元。結果如圖3-12所示。
圖3-12
我們發現,通過增加神經元的個數和神經網絡的隱藏層數,即使沒有輸入許多特征,神經網絡也能正確地分類。但是,假如我們要分類的物體是貓貓狗狗的圖片,而不是肉眼能夠直接識別出特征的黃點和藍點呢?這時候怎樣去提取那些真正有效的特征呢?
有了神經網絡,我們的係統自己就能學習到哪些特征是有效的、哪些是無效的,通過自己學習的這些特征,就可以做到自己分類,這就大大提高了我們解決語音、圖像這種複雜抽象問題的能力。
最後更新:2017-05-24 12:31:50