遲來的 Google Teachable Machine 簡介

Rick Liu
3 min readOct 15, 2017

大約兩週前,Google 發布了 Teachable Machine,各大科技網路媒體以各種噱頭標題爭相報導:「不用寫程式,只要鏡頭,Google 最新專案讓你三分鐘搞懂機器學習」我想,作為 deeplearn.js 的推廣應用,Teachable Machine 真的起到了很大的作用,關於 Teachable Machine,大家可以觀看示範影片,或是閱讀 Google 官方網誌文章

deeplearn.js

deeplearn.js 大約在今年八月發布的,一個使用硬體加速的機器學習套件,使用 TypeScript,官網提供的應用範例,除了這次的 Teachable Machine 以外,還有

  • Performance RNN:一個結合 magenta 與 deeplearn.js 的範例,將 magenta 使用 tensorflow 訓練的結果,移植到 deeplearn.js 並在瀏覽器執行。
  • model-builder:讓我們可以在瀏覽器訓練模型的範例,輸入資料可以選 MNIST、Fashion MNIST、CIFAR 10,模型的部分可以選 Fully Connected、Convolutional、或是自己建構,還有一些參數可以設定,畫面右邊則是訓練過程的視覺化呈現。
  • imagenet:用 webcam 作為輸入的即時 imagenet 辨識,也可以選擇幾個內建的圖片做測試。
  • nn-art:是一個 CPPN 的應用,看名字還以為會是之前那個紅極一時的 nerual art style 勒。
  • benchmark:故名思議就是跑效能數據的一個應用。按下想要測試的運算,會執行小量的測試,給出執行時間,以及 CPU 和 GPU 執行時間的差異。

至此,我們可以理解,有了 deeplearn.js 作為基礎,Teachable Machine 可以在瀏覽器執行,有了硬體加速,Teachable Machine 運算時間更短,因此可以有即時的反應。但是訓練模型呢?看到這種少量訓練資料的應用,第一個反應就是 pre-trained model,不過各個 pre-trained 深度學習模型的檔案都太大了,不適合網頁應用,這個載入時間看似也沒有下載體積龐大的檔案。於是,在 Teachable Machine 的原始碼裡我們找到了答案。

SqueezeNet

根據 SqueezeNet 論文的標題表明,這是一個精準度媲美 AlexNet,但是參數量小 50 倍,檔案大小不足 0.5 MB 的模型,這裏有一篇簡中的簡短介紹,文中包含數據的比較表,或是有興趣的朋友可以進一步參考該專案的 Github 頁面

Teachable Machine

拼出 Teachable Machine 的四塊拼圖

  • 瀏覽器端的機器學習套件
  • 運算使用硬體加速
  • 小體積的預訓練模型
  • 可接受的精準度

再加上從 Performance RNN 範例中,看到 TensorFlow 移植到 deeplearn.js 的實現方式,我感覺,行動網頁端 AI 應用發展門檻基本已經消失,當然在程式碼以及模型的維護方面還有一些議題需要研究,但是整體可行性已經相當高了。

--

--