遲來的 Google Teachable Machine 簡介

Rick Liu

大約兩週前,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 應用發展門檻基本已經消失,當然在程式碼以及模型的維護方面還有一些議題需要研究,但是整體可行性已經相當高了。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade