譯者:林晉寬
版權聲明:
Computer Science activities with a sense of fun: Created by Paul Curzon, and Peter McOwan Queen Mary University of London for Teaching London Computing: http://teachinglondoncomputing.org
本教材以創用CC 3.0 姓名標示-非商業性-相同方式分享釋出(creative commons 3.0 BY-NC-SA)
https://creativecommons.org/licenses/by-nc-sa/3.0/deed.zh_TW
原文教案與教材連結:
https://teachinglondoncomputing.org/the-sweet-learning-computer/
https://teachinglondoncomputing.files.wordpress.com/2016/07/sweetlearningcomputerboards.pdf
活動名稱:用糖果學習的電腦 The sweet learning computer
課前準備: 你還需要:
活動設計:
機器怎麼學習呢?他們不是盲目地根據規則辦事嗎?你可以只用杯子和糖果建造一個在簡單遊戲中學習如何打敗人類的機器,他可以從錯誤中學習(當他輸掉遊戲時,你會拿走他的糖果,使他知道錯誤),讓我們來看他如何建立一個玩Hexapawn的遊戲。
用糖果學習電腦,做一個可以學習的機器人。
來自Paul Curzon和 Peter W McOwan, Queen Mary University of London。機器怎麼學習呢?他們不是盲目地根據規則辦事嗎?你可以只用杯子和糖果建造一個在簡單遊戲中學習如何打敗人類的機器,他可以從錯誤中學習(當他輸掉遊戲時,你會拿走他的糖果),讓我們來看他如何建立一個玩Hexapawn的遊戲。
Hexapawn這遊戲是在一個3*3的板子上玩,有3個X和3個○棋放在板子上的第一列和最後一列,就像是只用士兵(Pawn)在玩小型板的西洋棋,你可以有2種方法移動你的旗子。
1.若前面沒東西,則可往前動一格。或是
2.取代在對角線方向對手的棋子。
例如下圖1,箭頭標出4個叉叉移動的可能位置。
下方板子有3種移動X而獲勝的範例。
1.讓一個棋子到達最後一排。
2.讓對手處於沒辦法動的情況。
3.拿到對方所有的旗子。
這就是他的所有規則,稍微玩一下來掌握它的概念。
創造用糖果學習的電腦:
1. 把24個板子貼到24個塑膠杯上。
2. 將所有杯子展開,可以依據動作將他們分類,以便更容易找到。
3. 分別放置和板上所有的相應顏色糖果到各個杯子裡,例如標記為A1(上圖)的 杯子具有紅色,綠色和橙色的糖果,則放紅、綠、橙 色糖 果到那個杯子裡。
4. 把杯子放在遊戲開始的起始位置。
電腦為後攻角色(使用X),每當輪到電腦的時候,
1. 找到與遊戲狀況對應的杯子。
2. 如果選到的杯子內已經沒有糖果則放棄。
3. 如果選擇的杯子裡有糖果,拿起來,用手遮住杯子頂部,閉上眼睛,搖動杯子,隨意取出糖果。
4. 看糖果的顏色,然後根據同色箭頭移動到對應位置,例如,如果在板位A1(見上圖),並且你選擇一個橙色的糖果,機器的舉動是將最 右邊的X向前推,如橙色箭頭所示。
5. 把糖果放在杯子旁,記錄他剛剛做的動作。
注意,第一個玩家的第一步,向左或向右動(對稱位置),因為它們是相同的,我們只提供了一組對稱的位置(上面的A1位置),也就是說,對於這個版本的遊戲,第一個玩家只能在第一個動作中移動左邊或者中間的棋子。我們這樣做來加速機器的學習能力,一旦你了解他怎麼運作,接下來想辦法補充一些不足的部分。
為了讓他能夠從錯中學,你必須根據下面規則,把他的糖果拿走。
1. 當遊戲結束時,吃掉最後一個做出動作的糖果。
2. 將所有其他糖果放在他們原來的杯子裡。
到底發生什麼事
一開始,電腦電腦隨機移動,所以輸掉的機率大一些,每當他輸掉,他就不會再重蹈覆轍,犯一樣的錯(因為拿掉糖果代表他將不會再走這一步),最後每個導致落敗的位置都會沒有糖果,所以機器會放棄。導致落敗的糖果將會被拿走,他開始知道什麼是壞的第二步和第一步,然後愈變愈好,當所有壞的步驟都被改掉,他就不會再犯錯,剩下的糖果讓他能夠完美的贏得比賽,畫一張他勝負的機率圖,來檢視他的學習狀況。
如下圖
機器怎麼學習呢?他們不是盲目地根據規則辦事嗎?你可以只用杯子和糖果建造一個在簡單遊戲中學習如何打敗人類的機器,他可以從錯誤中學習(因為當他輸掉遊戲時,你把他的糖果吃掉),讓我們來看他如何建立一個玩Hexapawn的遊戲。
這簡易的指南是為Royal Society Summer Exhibition 2016.所開發。