Tensorflow實現深層學習完備流程

地址:代碼演示LV3

前兩節所描述的代碼演示LV1和代碼演示LV2是都是為了分析方便而選擇的淺層任務,深層學習對其並不具備什麼優勢,其他機器學習演算法恐怕要比深層學習做的更好。

真正可以發揮深層學習的是具有特定結構的任務。

這一節有兩個目的:

  • 換一個高度非線性和複雜的任務來再次體會一下深層學習的功能
  • 熟悉深層學習訓練的完整流程。

代碼演示LV3用於構建網路的代碼和代碼演示LV2的幾乎相同,但參數等有所改變。全部代碼在github上。所用到的數據輸入輸出數據分別是 X.npy 和 Y.npy。

任務描述:

  • 目標:用聲音來預測口腔移動。
  • 維度:兩者都是實數域,輸入是39維,輸出是24維:input∈R39;label∈R24
  • 任務類型:因為預測的數值全部都是連續的實數,所以是回歸(regression)任務。
  • 樣本數:39473
  • 輸出層激活函數:linear(無)
  • 損失函數:預測數值和真實數值的差異可用均方差(mean square error:MSE)來表示。

  • 初始預覽:下面是未訓練前真實值與預測值在四個不同維度的對比圖。目的就是要給網路很多組(輸入,輸出)數據來更新網路權重,使網路輸出儘可能符合真實值的預測。完美情況就是藍線(真實值)和綠線(預測值)重合。下圖中,橫軸是時間,縱軸是數值。

預測值隨訓練的變化(動態圖)手機請查看原圖:

網路結構圖:

訓練/驗證集loss圖:

推薦閱讀:

第五周筆記:神經網路分類問題應用
Tensorflow新手通過PlayGround可視化初識神經網路
你說說激活函數?
一文看懂各種神經網路優化演算法:從梯度下降到Adam方法

TAG:神经网络 | TensorFlow | 深度学习DeepLearning |