Joel Grus — FizzBuzz in TensorFlow
從網路上看到的幽默問題,算是一個很有趣的使用,適合在做完 Classification 後練習。
輸入資料處理和原版程式碼一樣,因為還蠻直觀的:
- 1 – 000000001 –
[0 0 0 0 0 0 0 0 1] - 2 – 000000010 –
[0 0 0 0 0 0 0 1 0] - ………
輸出則是用 [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1] 來代表四個分類。
輸入輸出都是一個矩陣的形式。利用兩層 hidden layer 分別是 512 和 256,激勵函數選擇 relu,剩下的就交給 tensorflow 分類。
結果
一開始一直分不出來,都會卡在把每個資料都判定成同一類 (0.533)。後來減低每次訓練丟進去的量就 OK 了 (忘記一開始做分類時也只丟一點點進去)。
卡在 0.533 代表他受非 5 非 3 倍數的值影響很大,畢竟是機率最高的地方。也看成是 local minimum,要跳出去就是使用 batch。
這是有加入 0.8 dropout 的結果,可以看到訓練跟測試差不多,而且很快就達到 1.0 的準確率。