2018年10月28日 星期日

AI 深度學習體感自走車

好久沒寫文了(咳)

mBlock5 認知服務以及深度學習功能出來一陣子了,
有興趣的朋友請看 這裡

目前試玩過微軟認知服務(人臉辨識、語音辨識、人臉年齡、文字辨識),
深度學習也嘗試過簡易無人商店專案、猜拳遊戲

試著能夠結合硬體,看看能有甚麼發揮之處
mBlock 本身就結合很多 MakeBlock 自家的硬體
之前試用過用語音(微軟認知服務)控制 Rnger 上的燈環
(例如我口語說"黃色",燈環就亮黃色)
但感覺應該還可以有更多發揮

對了,深度學習建好的模型,辨識好的結果要怎麼讓硬體(Ranger, mBot)知道呢
沒錯,你猜對了,就是用變數,因為機器學習和認知功能都只藏在軟體(角色),
硬體是沒有的喔
所以我們會將辨識結果存在一個變數,然後再用硬體讀取這個變數,
再根據變數內容下判斷進而決策

之前偶然看到一個範例,是透過深度學習結合體感,
來玩小精靈 https://storage.googleapis.com/tfjs-examples/webcam-transfer-learning/dist/index.html

今天突然靈光一閃
若是能夠結合深度學習來控制實體自走車
應該蠻有趣
但是目前離線方式都是類似 Arduino,是離線燒錄的自走車,
燒錄完就與電腦無關
倘若需要深度學習模型"辨識",還有需要使用攝影機,車子得跟電腦連線不可,
但若使用USB連線,車子不能到處走也很瞎 

後來有一招,就是類似連線模式,但不要用到線,用藍芽嗎?  
是的,但是筆電 mBlock5 無法使用內建藍牙去跟mBot連線,
(mBlock3 還支援用筆電藍芽藍線連接硬體說,嘆......)
需要買他們自家官方的藍芽 adapter 才行
噴了我快600大洋

















買來後,只要先將 mBot 開機,然後再按藍芽adapter,
等到快閃燈完畢,就連上去了,
當然軟體還要再執行一次連線,連線詳細步驟看 這裡

接下來就是深度學習建模和編程啦

首先,先想好五個動作,分別代表讓車子前進、後退、左轉、右轉、停車
五個動作差異越大越好,而且要讓機器學習
(此時考驗你的恥度)















例如這個動作就是代表"前進",要反覆取樣,拍照多一點,
樣本建議最好超過50張,
樣本多樣化一點,例如身體可調整些微角度,或者是手的高度,



接下來就是編程,先來做深度學習模型判斷
(舉例,像是辨識結果為"前進"這個動作,就將forward 這個值放到變數direction)





接者在硬體這邊,根據direction變數的值,
來控制車體行進方向





















然後就可以開始玩了,耶~~
不清楚的就看影片吧,看完你會更不清楚(咦?)
這個也會列入社團 AI 課程,
也希望未來能研發更多 AI 結合硬體有趣的專案。



親子天下MakerParty今年新北創客小學堂有獲邀擺攤,
到時候會讓學生帶著大家體驗這個 AI體感車,
有空來玩喔~

https://makerparty.parenting.com.tw/2018?tomorrow




2018年2月18日 星期日

在中小學課程玩一下機器學習與人工智慧可能性

之前一直在思考,該如將機器學習、AI、深度學習等內容,帶到教學當中。

但是,我想要不一樣。

一般課程,大都是認知型的介紹,頂多拿身邊的例子來說明,例如 Siri,
或者是講機器人、自動駕駛、語音辨識、圖像辨識。
然後.....然後就沒有了@@


這就是 AI ??

之前發展過類似的課程,
例如以實際數據調查出發的類似課程:



翻轉的資訊課:Big Data(其實是small data), Machine Learning, 資料分析, 社區改造運動與資訊教學:雪特分析(上)


還有運用 mBlock 呼叫微軟雲端認知服務 AI 應用的課程:


以上約莫是兩到三年前發展的課程,

現在有更好更多的工具以及,更多成熟的 AI 運用實例,課程應該可以發展更完整。


我想像中的課程,除了單純的認知課程之外,
應該是搭配實作+素養著手,
而不只單從認知的角度切入。


這個是我的相關課程素材(持續編修中) 課程素材  相關 item 說明如下:

啥米是機器學習? 啥米是人工智慧?<===比較屬於單純認知型的介紹課程

先來用一用人工智慧的服務吧<===這邊是體驗型的課程,讓學生試著用一些線上的 AI服務,例如語音辨識、圖像辨識、文字情緒偵測等,用實例導入,會對 AI 比較有fu一點
運用人工智慧服務動手實作<===這邊就是實作型的課程,孩子們不但知道和體驗過 AI 的威力,甚至還能運用 AI 做一些事情,從消費者視角轉變為生產者的視角,這邊得視教師能力以及學校設備是否能 support 視情況來導入

人工智慧對於人類,是助力?是威脅? 我們會不會被操縱擺弄?<===這邊是素養型的課程,雖然相信未來還會有很大的變化,但是 AI 造成的衝擊已經是現在進行式,我們會受到甚麼影響?我們該如何面對?該如何與 AI 共處?隨之而生的倫理與道德相關問題該如何思考?(例如自動駕駛車肇事,責任如何釐清?) 



舉其中一個例子,就以 Amazon 的無人商店為例,我會這樣玩:

(1
)首先以認知為前提出發,讓孩子認識 AI ,能有初步認識,並引導孩子觀看 Amazon無人商店影片:




(2)試著玩一些線上人工智慧服務

例如:
語音辨識服務
https://www.google.com/intl/en/chrome/demos/speech.html
圖像辨識服務 https://www.clarifai.com

這些服務都是不需要寫程式,直接將想辨識的資料填入即可獲得結果

(3)實作一個簡單的商品辨識系統

基本實作方式請參考:
http://bbs.makeblock.com/forum.php?mod=viewthread&tid=3090 ,有提到軟體安裝、下載以及使用教學
 (目前軟體還在Alpha,多少會有點狀況,且微軟 AI 認知服務的區塊目前尚不可用,所以請大家再多嘗試
微軟 AI 認知服務的區塊目前已經可用,只是需要申請帳號登入後再行使用。這邊使用的是深度學習區塊)

基本上軟體建構深度學習的方式應該是仿效自 Google Teachablemachine 專案


首先讓學生找三種商品(對,目前僅三種,請忍耐XDDDD 20180223修正:最多可以支援30種物體)來讓演算法學習辨識
這邊不講太多演算法,先以實作出能利用 AI 運作的系統為原則

認識一下商品:藍筆

讓電腦認識不同角度的藍筆

認識一下商品:電池




















































認識一下商品:方塊酥




















深度學習演算法建模中


















然後寫一點程式,變成簡單的商品辨識系統:(適合有 Scratch 基礎的孩子來玩)



























(3)思考與反省(素養導入)

我們遇到這樣的問題XDDDD
我不是電池啊啊啊啊啊啊哭哭(菸)





















這顯然是一個大誤判,我們還發現,若是背景更為複雜,會產生更多奇怪的結果,
若是這個辨識系統不 work或出問題,以商店交易行為來說,
消費者權益該怎麼保障?

這邊可以引出許多 AI 與法律、道德、倫理相關的議題可以探討。


AI 的確對現在和未來衝擊甚大,也是一個不可逆的趨勢,
我倒不是希望孩子成為很厲害的攻城獅,因為技術只會越來越進步,
所以我也不打算深入介紹演算法或單純介紹技術。


有人會說,不介紹演算法,怎麼算講 AI?
啊現在也是很多攻城獅僅了解呼叫雲端 AI 的 API,結合到自己的服務當中,
演算法也不見得是自己開發,不是嗎?
甚至於 Data 都不一定是自己的,建模也都是人家建好的,

差異只是孩子們的介面不是文字介面的 code ,是 Scratch,
其實他們在做的事都一樣。

真的要搞演算法,留待之後孩子真的有興趣再去深入探索吧
甚至未來若是像 Google AutoML 這樣的 service 能起來,
進入的門檻更低了啊啊啊啊啊


整個課程希望能透過實作,讓孩子們更理解 AI ,
明白 AI 的威力和缺陷(也許以後都會解決,也許會出現更多問題也不一定),
但是還是希望孩子們去思考 AI 方便之餘,
我們該如何與 AI 共處?牽涉倫理道德層面的問題怎麼解決?

其實許多問題目前都還沒有標準答案,
但還是試著讓孩子們去思考看看。


還有孩子對於未來的 AI  ,會有怎麼樣的想像?

圖中被實驗的童鞋,他說若是可以結合圖像辨識的 AI 做出一個眼鏡給盲朋友用,
讓眼鏡給盲朋友聽,讓盲朋友更清楚他現在身處的環境和世界。

我喜歡這樣的運用。

(20180222補充:感謝張原禎老師提供訊息,真的有人在研發這麼棒的服務呢!!)