帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
不插電學AI:快樂學習人工智慧
 

【作者: 高煥堂】   2018年12月25日 星期二

瀏覽人次:【9037】


當今的AI是屬於機器學習(Machine Learning)的一支,基於神經網路(Neural Network)的深度學習。現在,很多人想去理解AI電腦(即機器)到底是如何學習的,以便掌握AI技術熱潮,踏進這項未來10年的主流產業。


然而,AI機器學習的演算法(Algorithm)又非常依賴於高等數學的運算式,包括線性、非線性函數、N維矩陣(Array)、張量(Tensor)、微分導數、梯度(Gradient)下降、梯度消失等大家很陌生的數學概念和術語,這些複雜性大幅阻礙親近AI的機會和途徑。


觀摩一隻老鼠的學習

例如,有一隻老鼠居住在一個房間裡,這房間的只有四個洞可以出入,而洞外常常會有貓咪住在那裡。當老鼠走出洞時,若有貓咪住在洞外,就會受到貓咪的追逐和玩弄,老鼠會害怕、不快活。


最近,老鼠聽說房間外面來了幾隻貓,可能住在洞外,所以可能有些洞外沒有貓,老鼠可以安全地愉快進出,只是老鼠並不清楚到底那些洞外沒有貓。


這個時候,老鼠只好勇敢地試錯,從經驗學習中來提升其智慧。一開始,老鼠沒有任何經驗和知識來採取最好的抉擇,牠想從任何一個洞出去,幸與不幸的遭遇機會大概各一半,也就是有0.5的機率性不會碰到貓(圖1)。



圖1 : 不知道洞外是否有貓
圖1 : 不知道洞外是否有貓

於是,老鼠就展開行動,首先選擇A洞試試看,小心翼翼地從A洞走出來,發現有一隻貓追過來,牠(老鼠)被嚇得立刻奔回到洞裡,牠知道自己原來估算的0.5機率值是錯了,就把腦海裡這個機率值調整為0.0了。牠記下0.0機率值,也就記住了A洞外有貓(圖2)。



圖2 : 探索A洞(圖片引自妮圖網)
圖2 : 探索A洞(圖片引自妮圖網)

重複一樣的行動,繼續展開探索行動,選擇B洞試試看,小心翼翼地從B洞探出頭來,赫然看到也有一隻貓追撲過來,牠(老鼠)又立刻奔回到洞裡,牠知道對B洞的所估算的0.5機率值也是錯了,就把腦海裡這個機率值調整為0.0了(圖3)。



圖3 : 也就記住了B洞外有貓
圖3 : 也就記住了B洞外有貓

再重複一樣的行動,繼續展開探索行動,選擇C洞試試看,小心翼翼地探出頭來,哈哈,很輕鬆愉快地走出來了。玩一玩之後又安全地回到房間裡了。牠知道自己原來估算的0.5機率值也是不對的,就把腦海裡這個機率值調整為1.0了(圖4)。



圖4 : 記住了C洞外沒有貓
圖4 : 記住了C洞外沒有貓

最後一個洞,也想試試看,也展開探索行動,選擇D洞試試看,大膽地走出來,突然有一隻貓衝過來,差一點就被抓了。好險,幸運地逃回洞裡。牠知道自己原來估算(D洞)的0.5機率值是錯的,就把腦海裡這個機率值調整為0.0了(圖5)。老鼠經過4次的探索之後,從經驗中學習到智慧,變聰明了。



圖5 : 又記住了D洞外有貓
圖5 : 又記住了D洞外有貓

記錄老鼠的探索選擇及結果

由於老鼠會擔心過幾天自己忘記了這些經驗,所以就想把這些經驗寫在紙張上。同時,如果有其他老鼠朋友來訪時,也可以把紙張給朋友們看看,學習一下就可以具有一樣的智慧了,以免好朋友們被貓抓去玩弄了。


第1次探索時,選擇了A洞而沒有選擇B、C和D洞,就以數學的陣列(Array)來表示之,就表示為:[1,0,0,0]。接著,把第2次的探索經驗也記錄下來,以免忘記了。


這次探索選擇了B洞而沒有選擇A、C和D洞,就以數學的陣列(Array)來表示之,就表示為:[0,1,0,0]。同樣地,也把第3、4次的探索經驗也記錄下來。總共寫下了4次的探索經驗。如圖6所示。



圖6 : 寫下了牠探索時的選擇
圖6 : 寫下了牠探索時的選擇

接著,老鼠發現到了,這樣的紀錄似乎仍不夠完整,最好把「有沒有看到貓」的實際結果也記載下來,就更完美了。如下圖7所示。



圖7 : 把探索的結果也寫下來
圖7 : 把探索的結果也寫下來

其實,結果只有兩種可能:「沒有貓」或是「有貓」。於是,老鼠就拿1與0來代表之。也就是,以1代表成功走出洞外;而0代表看到貓又逃回洞裡。這就包含兩個陣列了,分別是:「探索選擇」陣列與「探索結果」陣列。並且拿X來表示「探索選擇」陣列;並且拿T來表示「探索結果」陣列。如圖8所示。於是,就紀錄完整、不必擔心會忘記這些探索的經驗了。



圖8 : 拿X[]和T[]陣列來表示兩項資料
圖8 : 拿X[]和T[]陣列來表示兩項資料

老鼠當教練:訓練AI機器人

以簡單數學式,讓機器人表達智慧

話說有一天,老鼠的一位朋友來訪,想在老鼠家(這個房間)居住幾天。這位朋友是華碩公司出產的Zenbo機器人,老鼠知道Zenbo也很怕貓,所以很想把自己的經驗迅速傳授給Zenbo機器人。


於是,老鼠就來想一想,如何讓自己成為教練,把自己的探索經驗和智慧傳授給Zenbo。而且基於機器人的超快運算能力,只要幾秒鐘的學習,就能得到很好的智慧。如圖9所示,老鼠就進一步思考:如何教導(或訓練)這些機器人朋友呢?



圖9 : 把智慧表示出來
圖9 : 把智慧表示出來

於是,老鼠就正式擔任起教練的角色了,讓Zenbo機器人來模擬老鼠的學習和提升智慧的過程。一開始,老鼠沒有任何經驗和知識來採取最好的抉擇,牠想從任何一個洞出去,幸與不幸的遭遇機會大慨各一半,也就是有0.5的機率性不會碰到貓。所以,一開始估算各洞的機率值都是0.5。就拿一個簡單的數學式來表示為:


y = x1*0.5 + x2*0.5 + x3*0.5 + x4*0.5


其中,x1、x2、x3、x4就代表一次探索的選擇,現在就把這數學式寫入到Zenbo機器人的腦海裡(圖10)。



圖10 : 把數學式放入機器人腦海裡
圖10 : 把數學式放入機器人腦海裡

拿第1筆資料來訓練機器人

老鼠第1次探索時選擇了A洞,就是:


[x1, x2, x3, x4] = [1, 0, 0, 0]


而y就代表這次探索的整體估算值,可以估算出這次能順利走出房間的機率值,也就是這隻老鼠的信心度。於是,就把這個陣列值[1,0,0,0]帶入數學式裡,可以讓機器人來運算(圖11)。



圖11 : 帶入X[]資料,展開訓練
圖11 : 帶入X[]資料,展開訓練

把這個陣列值[1,0,0,0]帶入數學式裡,經過機器人的快速運算,可以算出y值為:0.5。這y值就代表這次探索的整體估算值,也就是這次能順利走出房間的機率值(圖12)。



圖12 : 估算第1次探索的成功信心度(即y值)
圖12 : 估算第1次探索的成功信心度(即y值)

以上,完成了老鼠智慧的模仿,也成為機器人智慧的表達,就能讓機器人運用智慧來進行估算,以達到三思而後行的效果。


老鼠在房間裡針對其探索的選擇,在還沒有任何經驗下,運用其現有智慧來估算後,得出0.5估算值(即猜想有50%是沒有貓)之後,展開行動走出A洞。卻發現了貓追撲過來,趕快轉身奔回洞內。


牠回到洞內,靜下心想了一想,以牠現在所紀錄的智慧,所估算的值0.5與實際值0(即有貓),兩者來比較一下,是很大落差的。機器人也可以模仿及表達如圖13所示。



圖13 : 比較一下估算值與實際值
圖13 : 比較一下估算值與實際值

走出A洞之前的估算值0.5,與走出A洞時得到的實際值0,兩者拿來比較一下,發現其所依賴的智慧是有待改進的。俗語說:不經一事、不長一智。所以老鼠經歷了這次的探索之後,牠的智慧就會有所成長了。


那麼,又如何讓機器人來表達其智慧的成長呢?也就是如何調整上一小節裡所紀錄的智慧呢?可以來看看估算值和實際值的差距有多大,兩者相減得到-0.5的誤差。接著拿這項誤差值(即-0.5)來修正機器人裡的數學式(圖14)。



圖14 : 修正數學式的參數(權重)
圖14 : 修正數學式的參數(權重)

此時,拿這項誤差值(即-0.5)來與權重相加,其計算是:-0.5 + 0.5 = 0.0。因此,得到新的權重是:0.0。如圖15所示。



圖15 : 智慧成長了
圖15 : 智慧成長了

此時,已經修正了數學式裡的參數,又稱為:權重(Weight)。修正後,其數學式變成為:


y = x1*0.0 + x2*0.5 + x3*0.5 + x4*0.5


由於第1次探索時選擇了A洞,就是:


[x1, x2, x3, x4] = [1, 0, 0, 0]


而y就代表這次探索的整體估算值,機器人可以估算出這次能順利走出房間的機率值。於是,就把這個陣列值[1,0,0,0]帶入數學式裡,如下:


y = x1*0.0 + x2*0.5 + x3*0.5 + x4*0.5


= 1 * 0.0 + 0 * 0.5 + 0 * 0.5 + 0 * 0.5


= 0


所以修正數學式之後,經由運算而得到的估算值是:0。而實際值也是0,非常準確,沒有誤差,這呈現機器人智慧的成長了。


拿第2筆資料來訓練機器人

接著,老鼠準備給予Zenbo展開第2筆資料的訓練,這次是基於老鼠先前探索B洞的經驗記錄,來做為訓練資料。於是,把X[]陣列值[0,1,0,0]帶入數學式裡(圖16)。



圖16 : 帶入X[]資料,展開第2筆的訓練
圖16 : 帶入X[]資料,展開第2筆的訓練

把這個陣列值[0,1,0,0]帶入數學式裡,經過機器人的快速運算,可以算出y值為:0.5。這y值就代表這次探索的整體估算值,也就是這次能順利走出房間的機率值(圖17)。



圖17 : 比較一下估算值與實際值
圖17 : 比較一下估算值與實際值

依據老鼠的經驗,牠走出B洞之前的估算值0.5,與走出B洞時得到的實際值0,兩者拿來比較一下,發現其所依賴的智慧是有待改進的。所以老鼠經歷了這次的探索之後,牠的智慧就會有所成長了。


那麼,也讓Zenbo機器人的智慧也繼續成長吧。現在來看看估算值和實際值的差距有多大,兩者相減得到-0.5的誤差。就拿這項誤差值(即-0.5)來修正機器人裡的數學式(圖18)。



圖18 : 修正數學式的權重
圖18 : 修正數學式的權重

也就是,拿這項誤差值(即-0.5)來與權重相加,其計算是:-0.5 + 0.5 = 0.0。因此,得到新的權重是:0.0。如圖19所示。



圖19 : 智慧繼續成長了
圖19 : 智慧繼續成長了

此時,已經修正了數學式裡的權重,修正後,其權重變為:0.0。而數學式也變成為:


y = x1*0.0 + x2*0.0 + x3*0.5 + x4*0.5


由於這是基於老鼠的第2次探索經驗,當時選擇了B洞,就是:


[x1, x2, x3, x4] = [0, 1, 0, 0]


而y就代表這次探索的整體估算值,機器人可以估算出這次能順利走出房間的機率值。於是,就把這個陣列值[0,1,0,0]帶入數學式裡,如下:


y = x1*0.0 + x2*0.0 + x3*0.5 + x4*0.5


= 0 * 0.0 + 1 * 0.0 + 0 * 0.5 + 0 * 0.5 = 0


所以修正數學式之後,經由運算而得到的估算值是:0。而實際值也是0,非常準確,沒有誤差。這呈現了機器人的智慧繼續成長了。至此,老鼠已經對機器人朋友完成第2筆資料的調教(訓練)了。其藉由訓練資料來驅動機器人對其數學式做修正,讓其估算更加準確。


拿第3筆資料來訓練機器人

剛才已經展開了2次訓練了,依循同樣的過程,老鼠準備給予Zenbo展開第3筆資料的訓練,這次是基於老鼠先前探索C洞的經驗記錄,來做為訓練資料。


依據老鼠的經驗,牠走出C洞之前的估算值0.5,與走出C洞時得到的實際值1,兩者相減得到誤差值:0.5。接著,繼續拿這項誤差值(即0.5)來修正機器人裡的數學式。如圖20所示。



圖20 : 修正數學式的權重
圖20 : 修正數學式的權重

也就是,拿這項誤差值(即0.5)來與權重相加,其計算是:0.5 + 0.5 = 1.0。因此,得到新的權重是:1.0。


拿第4筆資料來訓練機器人

剛才已經展開了3次訓練了,依循同樣的過程,現在,老鼠準備給予Zenbo展開第4筆資料的訓練。依據老鼠的經驗,牠走出D洞之前的估算值0.5,與走出D時得到的實際值0,兩者拿來比較一下,發現其所依賴的智慧是有待改進的。此時,已經修正了數學式裡的權重,修正後,其權重變為:0.0。如圖21。



圖21 : 經過4筆資料的訓練
圖21 : 經過4筆資料的訓練

至此,老鼠已經對機器人朋友完成第4筆資料的調教(訓練)了。


驗證

經過4筆資料的訓練,其訓練後的權重值,可以表示為:


W = [w1, w2, w3, w4] = [ 0.0, 0.0, 1.0, 0.0]


於是,老鼠就來檢測一下Zenbo機器人的智慧,看看它依據數學式而計算出來的估算值,是否與實際值是一致的。


Step-1

首先,老鼠再拿取訓練資料X[]和T[],把其中的第1筆: X = [1,0,0,0 ]


交給Zenbo機器人,它立即展開數學是的計算:


y = x1*w1 + x2*w2 +x3*w3 + x4*w4


= 1*0.0 + 0*0.0 + 0*1.0 + 0*0.0 = 0


得出的估算值是0,它與實際值0是一致的。


Step-2

檢測過了第1筆資料,接著檢驗第2筆: X = [ 0,1,0,0 ]


交給Zenbo機器人,它立即展開數學是的計算:


y = x1*w1 + x2*w2 +x3*w3 + x4*w4


= 0*0.0 + 1*0.0 + 0*1.0 + 0*0.0 = 0


得出的估算值是0,它與實際值0是一致的。


Step-3

檢測過了第2筆資料,接著檢驗第3筆:X = [ 0,0,1,0 ]


交給Zenbo機器人,它立即展開數學是的計算:


y = x1*w1 + x2*w2 +x3*w3 + x4*w4


= 0*0.0 + 0*0.0 + 1*1.0 + 0*0.0 = 1.0


得出的估算值是1.0,它與實際值1是一致的。至此,經過了檢測,看到Zenbo的智慧已經相當不錯了,其估算值都符合訓練資料的要求。於是,老鼠教練的初步訓練工作就算大功告成了。


相關文章
智能設計:結合電腦模擬、數據驅動優化與 AI 的創新進程
生成式AI與PC革新
機器學習可以幫助未來的癌症診斷
資料科學與機器學習協助改善頸部損傷評估
MATLAB與Simulink整合自動化機器學習與DevOps
comments powered by Disqus
相關討論
  相關新聞
» 科盛科技於印尼雅加達設立新據點 深耕東南亞市場
» 智慧校園 ICT+AI 把關 7-11未來超商X-STORE 8啟動
» 金屬中心於2024 TASS展示多項創新技術 攜手產業加速綠色轉型
» 銳能EMS率先接入台電ELMO系統 助力社區強化EV充電安全
» 金屬中心研發成果加值五金產業硬底氣 搶占全球供應鏈席次


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.13.59.148.240
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw