AI Playground|設計一個中文智慧助理來控制「智慧教室」

by KC
0 comment
智慧教室 (Smart Classroom)
智慧教室 (Smart Classroom)

我們可以利用電腦控制周圍環境那些裝置呢?如果我們想要控制教室一些設備,例如風扇、電燈、投影機、電腦或是門窗,我們可以如何控制他們呢?這個活動將使用「自然語言處理 (NLP)」進行文字辨識,教電腦識別文字的意義,並進行您和機器之間的對話。同時教大家如何在熟悉的 Scratch-based 環境中,輕輕鬆鬆設計一個 AI 智慧助理,幫助您控制這些虛擬設備。

這篇文章會教讀者進行 3 個活動,分別是

  1. 活動一:使用基於規則(Rule-based)控制虛擬裝置
  2. 活動二:使用機器學習(Machine Learning)控制虛擬裝置
  3. 活動三:結合「語音辨識」控制虛擬裝置

活動目標及網址參考如下:

  • 活動目標:利用 NLP 技術進行文字辨識,並可以控制虛擬裝置
  • 活動網址:AI Playground (https://ai.codinglab.tw/)
  • 使用環境:桌上型電腦或筆記型電腦

1. 活動一:使用基於規則(Rule-based)控制虛擬裝置

1-1 我們應該如何控制風扇及燈 ?

先讓我們想一些語詞可以用來控制教室中「風扇」「燈」的開/關吧!例如

控制短語
控制短語

想好一些控制語詞後,使用者可以連到 AI Playground (https://ai.codinglab.tw/),直接點擊畫面上方的 AIBLOX 後就會進入下方畫面,準備開始來設計控制虛擬裝置。

AI 創作環境 - AIBLOX
AI 創作環境 – AIBLOX

1-2 你需要角色及背景的設計素材

我們可以建立如下圖「fan」和「lamp」兩個角色,以及建立一個背景。

建立角色及背景
建立角色及背景

1-3 你將需要這些積木

你將可能需要下方這些積木。這個專案所需的程式不會太複雜,所以製作時所需的積木也不會太複雜,您可以根據你的需要來調整使用這些積木。

專案所需積木
專案所需積木

你可以自行設計,也可以使用 AIBLOX 所提供的專案範本(點擊選單上方「專案範本」/智慧教室)。

1-4 邏輯流程圖

流程圖可以協助運算思維並建立程式代碼。其中有一些流程圖步驟可以直接轉成 Scratch 程式積木,而有些則需要更多的思考。這個專案活動會詢問您的答案,只要符合開/關「風扇」開/關「電燈」的指令就去執行動作,沒有符合指令就沒動作,而它的的執行是”永遠”循環。

邏輯流程圖
邏輯流程圖

1-5 將這些積木放在一起

角色「fan」與角色「lamp」的程式積木分別如下:

角色積木設計
角色積木設計

舞台背景的程式積木如下:

舞台積木設計
舞台積木設計

舞台背景完成的程式積木

(活動一)積木設計
(活動一)積木設計
(活動一)執行結果
(專案一)執行結果

當使用者輸入的文字不是原設計的「打開風扇」、「關閉風扇」、「打開電燈」、「關閉電燈」,此時虛擬裝置是不會有動作的,例如你輸入的文字是「請打開風扇」,系統並不認識這個指令。你可以試圖在條件式中加入如下圖的積木,雖然解決了這個問題,但不是好方法,因為情況太多。

此時我們可以進行下一個活動,將機器學習的概念加入,就可以解決這個問題。

調整驅動條件
調整驅動條件

在此之前使用者可以將第一個活動專案儲存下來。

儲存專案
儲存專案

1-6 到目前為止您做了些什麼?

  • 您使用基於規則 (Rule-based) 的方法,對智慧教室進行了程式設計。
  • 您的指令或命令是驅動虛擬裝置運作的唯一方法。
  • 如果你用不同的文字內容下命令,它將不會理解。
  • 如果您希望電腦能理解不同表達的命令,則需要使用 or 運算子來增加命令,或添加額外 if 區塊。
  • 您若希望電腦對於您所有的命令都能準確回應,那您可能需要列出所有可能的命令,這是一件非常困難也不是很好的方法。

2. 活動二:使用機器學習(Machine Learning)控制虛擬裝置

我們可以先看看下方基於規則 (Rule-based)的方式與機器學習 (Machine Learning)方式間的差異,你將會看到基於規則性的方式雖然可以解決一些問題,但會有諸多限制。了解初步差異後,你將會在後續活動中更了解機器學習的power與有趣的地方。

基於規則 (Rule-based)與機器學習 (Machine Learning)方式間的差異
基於規則 (Rule-based)機器學習 (Machine Learning)方式間的差異

兩種解決方案都有其優點和缺點,根據您的目標,兩者都可以執行。但對於此專案目標,機器學習模型會是更好的解決方案。

我們可以回到 AI Playground (https://ai.codinglab.tw/) 平台來進行接下來的機器學習活動。此平台是一個不需經由撰寫程式就可以進行機器學習的免費學習平台。

2-1 機器學習步驟

這裡,我們先簡單複習一下機器學習的基本步驟,即「收集資料」→「進行學習」→「預測評估」。如果讀者想要了解多一點資訊,可以參考《從 AI 到 生成式 AI:40 個零程式的實作體驗,培養新世代人工智慧素養》AI 入門書或「輕鬆認識機器學習三大步驟 – 以辨識貓、狗為例」文章,對讀者會很有幫助。

機器學習中的“類別”(或標籤)代表電腦經過訓練後的智慧輸出,而會將收集到的”文字數據”中的模式映射或預測到您所定義的相關“標籤”中。我們會在完成機器學習步驟後,將所訓練的 AI 模型帶到 AIBLOX 當中進行創作,並且與前一個使用基於規則 (Rule-based)的活動做比較。

機器學習步驟
機器學習步驟

2-2 建立類別及文字資料

你可以在左側選擇本活動需要進行的「文字辨識」,點擊資料區塊左上角並依序建立類別名稱,例如「開風扇」、「關風扇」、「開燈」、「關燈」。然後點擊”輸入“為每一個類別建立相關文字樣本,記得一定要改變每個文字樣本及保持清楚。
建議每個類別至少有 10 筆數據,數據愈多訓練效果過愈好

建立訓練樣本
建立訓練樣本

2-3 訓練您的模型

如果對您的類別(或標籤)及樣本數據感到滿意,您可以點擊“訓練模型”來進行「進行學習」此步驟。訓練過程不需要使用或設定任何 API Key,就可以讓您輕鬆進行機器學習。

進行訓練
進行訓練

完成訓練後,你將可以進行下一個步驟「預測評估」

2-4 測試您的模型

你可以使用一些文字短語(需與您訓練時的資料不同),來測試所訓練的模型,以確保它已被正確訓練。您的測試結果會以信心百分比來做為識別結果,並以您的類別名稱之一做為回傳結果。如果您的測試給了錯誤類別名稱,可以考慮增加更多文字資料並重新訓練,來改善您的訓練結果。

下圖是筆者的測試狀況,提供大家參考,你將可以看到訓練的模型對於所輸入的文字理解,是可以預測你的意圖。

預測評估
預測評估

2-5 將「基於規則(Rule-based)」專案調整為「機器學習(Machine Learning)」專案

您可以將剛剛在機器學習環境中訓練的 AI 模型帶到 AIBLOX 當中,並且產生對應的 AI 積木(類別積木)做使用。

創建 AI 積木
創建 AI 積木


AIBLOX 是一種基於 Scratch 演變而來的圖形編程雲端平台,整合了許多有趣實用的 AI 模組,可以輕鬆讓您在程式創作上發揮您的想像力。我們將會利用這些積木來改善前面基於規則(Rule-based)的專案,成為機器學習(Machine Learning)的專案。這些是你在 Scratch 網站上(scratch.mit.edu)所看不到的。

本活動專案我們只需要更換舞台背景的程式積木,就可以輕鬆解決問題。以下圖為例,我們試著調整第一個指令部份”打開風扇”來看看差異性。調整後,我們可以將使用者輸入的文字,提供給預測積木,它將會經由前面所訓練的 AI 模型了解你的語意意圖。這樣你將不用擔心是否需要輸入與程式中一模一樣的指令機器才會懂。

加入 AI 積木
加入 AI 積木

我們將前面基於規則(Rule-based)的活動專案,改為使用剛剛所訓練好的機器學習(Machine Learning)方式,如下圖。

(活動二)積木設計
(活動二)積木設計

此時,我們可以看到輸入不同文字後,智慧助理都可以理解意圖來完成我們想要的動作。

(活動二)執行結果
(活動二)執行結果

2-6 想一想並討論看看

  • 想一想為什麼基於數據(Data-based)的機器學習模型,會讓你的風扇/燈比基於規則(Rule-based)的模型更智能?
  • 想一想在智慧教室中可以增加那些設備(角色),而不僅僅只有風扇和燈。
  • 想一想在資料集區塊中可以增加那些樣本,讓智慧助理更能了解我們的意圖。

3. 活動三:結合「語音辨識」控制虛擬裝置

我們可以在原專案中結合「語音辨識」功能做為延伸應用,讓使用者用語音也能操控這些設備。我們可以在 AIBLOX 主畫面的左下角點擊「添加擴展」的 icon (如下圖)。

添加擴展功能
添加擴展功能

在擴充功能中點選語音辨識 (Speech to Text)就可以將相關的 AI 積木添加到主畫面中讓你創作使用。

選擇擴充功能
選擇擴充功能

下圖為筆者根據前面專案所進行的延伸應用,提供有興趣的讀者參考。對初學者來說是一個很不錯的練習,並且可以發揮更多的創意設計。

(活動三)積木設計
(活動三)積木設計

下面是執行過程影片(可開啟喇叭),提供大家參考。

(活動三)執行結果

本篇文章介紹了如何設計一個中文智慧助理來控制「智慧教室」,並且利用有趣的幾個活動來說明基於規則 (Rule-based)的方式與機器學習 (Machine Learning)方式間的差異,以及利用語音辨識來進行延伸利用,這篇文章對許多已具有 Scratch 基礎的讀者可以透過 step by step 的方式來進行機器學習、文字辨識、語音辨識等 AI 活動,同時兼具運算思維,後續文章會在此基礎上,學習更多觀念及有趣的專案。

如果大家想要多了解一些 AI 自然語言處理(NLP)的基礎概念,可以參考這一本書【從 AI 到 生成式 AI:40 個零程式的實作體驗,培養新世代人工智慧素養】,它將帶領讀者不會程式、不會數學也OK!的情況下,建立最完整的 AI 入門知識。

如果你喜歡這篇文章歡迎訂閱、分享(請載名出處)追蹤,並持續關注最新文章。同時 FB 及 IG 也會不定期提供國內外教育與科技新知。

Related Posts

Leave a Comment

error: Content is protected !!