Teachable Machine 是一個由 Google 所開發的線上機器學習平台,讓使用者可以在瀏覽器中建立自己的機器學習模型,而不需要具備任何機器學習相關的專業知識,並且能讓所有人輕鬆且快速的建立自己的機器學習模型。無論是教育工作者、學生、創作者或是對機器學習有興趣的初學者,都非常適合使用這項工具。你可以在不必撰寫任何程式碼的情況下,就能訓練電腦來辨識圖像、音訊及姿勢,這也是目前 Teachable Machine 平台所提供的模型類型。訓練完成後,你可以單純與其互動測試,也可以將模型用於自己的專案、網站、應用程式和其他地方。
本篇文章將藉由『教電腦辨識水果』機器學習活動,對所有初學者完整介紹 Teachable Machine 的基本功能。不僅教大家如何收集及建立資料集,並將自己所訓練獨一無二的模型匯出使用,並分享所訓練的模型作品。未來將會以此為基礎教大家做一些有趣的 AI 專案,藉此認識 AI 及機器學習。現在就讓我們一起來認識無程式碼機器學習工具 Teachable Machine 吧!
1. 機器學習
我們將在 Teachable Machine 平台上進行活動,此平台不用註冊就能使用機器學習功能。同時我們將根據機器學習基本三大步驟(收集資料→進行訓練→預測評估)來進行這個活動,而這三大步驟也將是未來初學者利用 Python 學習機器學習或深度學習時的重要基石。
- 活動目的:教電腦辨識水果
- 訓練項目:圖片辨識
- 活動平台:Teachabel Machine
- 使用環境:桌機及瀏覽器
首先我們會先連到 Teachabel Machine (https://teachablemachine.withgoogle.com/train)。您將會看到如下圖畫面,該畫面包含三種專案類型 – 圖片 (Image)、音訊 (Audio)和姿勢 (Pose)。
選擇圖片專案後,您將看到兩個選項,標準圖像模型 (Standard image model) 和內嵌圖像模型 (Embedded image model),此活動將選擇標準圖像模型。若是想要應用於微控制器 (microcontrollers) 則可以考慮選擇後者,整個過程也將會是一樣的,只是模型不同而已。
點擊標準圖像模型後,您將被引導至下圖所示的畫面,我們將在這裡增加想要藉助模型進行分類的類別及資料建立。使用者可以有兩種資料收集的選擇方式 – (A)從攝影機鏡頭捕捉圖像資料或是(B)將收集到的資料上傳,本次活動將示範(B)上傳所收集到的資料集,而讀者若有興趣也可以另外試著用攝影機鏡頭來收集資料。
接下來我們將根據機器學習三大步驟(收集資料→進行訓練→預測評估)來進行這個活動。
Step 1:收集資料
我們將建立一個水果分類模型,使其可以辨識蘋果、香蕉、橘子及三種混合在一起的圖片。我們將使用來自 Kaggle 的水果影資料集。您可以從 https://www.kaggle.com/datasets/mbkinaci/fruit-images-for-object-detection 下載此資料集。
下載後將其解壓縮,你將可以看到這些不一樣的水果圖片。
建立欲識別圖片的類別名稱(例如 apple、banana、orange、mix),並上傳對應的水果圖片,讓電腦學習將圖片特徵及類別名稱關聯起來,其實就是為這些圖片進行標註 (label),而這也就是所謂的「監督式學習 (Supervised Learning)」基本概念。
當將圖片資料與對應的類別名稱都建立好後,我們就算完成了機器學習的第一個步驟 – 收集資料。
接下來我們就可以準備訓練電腦,讓它開始學習認識這些圖片。
Step 2:進行訓練
點擊中間「訓練模型」按鈕來開始進行第二個步驟 – 進行訓練,Teachable Machine 將會根據背後的學習演算法進行訓練,由於Teachable Machine 平台著重的是無程式碼機器學習,所以對初學者來說可以先暫時忽略背後相關技術,待後續學習時可以再深入了解。
如果讀者對機器學習已有了基本認識,或是想要多一點了解,那可以試著點擊「訓練模型」按鈕下方的進階,你將可以看到中間有一些參數是可以調整,以及從右側圖形中深入了解機器學習過程中,每個訓練週期準確率及損失的狀況。而這些參數用法及相關細節我們將會在後續文章仔細說明。
Step 3:預測評估
模型訓練完後,我們可以進行第三個步驟 – 預測評估。讀者可以在 kaggle 所下載的資料集中看到 test 資料夾,這些照片都是機器在學習過程中所沒有看過的圖像,因此可以拿來測試看看效果。
我們試著用一些圖片進行測試,可以明顯發現效果都還不錯(如下圖)。如果發現測試效果不好的圖像時,可以試著理解看看原因與評估方式,思考看看可以用什麼方法解決,例如變更背景/環境等等。而這也是下一篇文章中會介紹給大家的內容。
如果訓練後的模型覺得還不錯想要儲存下來以後使用,可以點擊下圖中的方式,將可下載 .tm 格式的專案檔案,或是將其儲存在 Google 雲端硬碟 ( .zip 格式)。除了存專案檔外,您還可以儲存各類別的所有樣本(典籍類別右上角)或是模型。
到目前為止,我們已經利用 Teachable Machine 平台,透過機器學習三大步驟(收集資料→進行訓練→預測評估),輕鬆進行了無程式碼機器學習專案,同時訓練出你第一個模型。下面小節將說明如何將訓練好的模型,分別應用在不同裝置或環境中進行創作與應用。
2. 匯出模型應用
首先,我們可以點擊上圖中預覽區上方的「匯出模型」,你將會進入到下方畫面。當匯出模型後,您可以有幾種選擇以及程式代碼片段,來幫助您將模型與應用程式做整合。Tensorflow.js 模型適用於每個 JavaScript 函式庫 (library) 或框架 (framework),而另外一些框架只支援某些特定模型(例如行動裝置),使用前可以先確認。我們點選 Tensorflow.js ,然後點擊上傳模型,系統將會將模型上傳到雲端並產生一個連結網址,我們再記得點擊複製連結。
讀者若想要將自己獨一無二的模型試著用積木程式來創作時,可以考慮登入 AI Playground (https://ai.codinglab.tw/) 這個免費平台後,點擊上方 AIBLOX 的積木創作平台。
將會進入到熟悉的積木環境 (Scratch-based),然後點擊下方擴充功能。
進入到擴充功能後,你將會看到此平台提供非常多的 AI 擴充功能。我們先點擊 Teachable Machine – Images 擴充功能。
然後將剛剛複製的模型連結,在下圖中位置貼上並按一下積木,系統將會產生你所訓練出的獨一無二 AI 積木(如下圖所示),此時你將可以利用這些積木進行許多創作,尤其是可以讓許多有 Scratch 基礎的學生可以進行 AI 創作。
3. 模型分享
你也可以直接將複製的連結分享給朋友(如下圖),只要在瀏覽器貼上網址即可使用所訓練的模型,是不是很方便也很有趣呢。
本邊文章主要是介紹 Teachable Machine 無程式碼機器學習平台,並完成一個簡單的教電腦辨識水果的小專案。過程中利用機器學習三大步驟(收集資料→進行訓練→預測評估)來完成自己的模型,並進而輸出創作集分享,後續文章會在此基礎上,學習更多觀念及有趣的專案。
如果你喜歡這篇文章歡迎訂閱、分享(請載名出處)與追蹤,並持續關注最新文章。同時 FB 及 IG 也會不定期提供國內外教育與科技新知。