Blog7

增強式學習之4~Q-learning

3-4:Q-learning 增強式學習裡面,有一個很基本的技巧,叫做Q-learning。Q是Quality的意思,指在某種狀態下,採取某個行動的價值,或者說在幾個可供選擇的行動中,各個行動品質的量化評估。 Q-learning的演練例子當中,除了先前提過的迷宮遊戲之外,Open AI公司所提供的Gym Cart-Pole,「木棒平衡滑車」遊戲 ,是被引用次數相當多典型範例,它訓練滑車左右快速移動,來讓繞軸轉動的木棒可以維持平衡。 上圖的實驗是不容易複製的,除了程式設計之外,還要有精準的機械控制模組來協作,一般人是沒辦法模仿的。 所以變通的方式,就是純粹用電腦動畫遊戲來模擬看看。但模擬過程的計算還真不好處理,因為木棒的軌跡,除了移動還有轉動,要做得維妙維肖,除了程式語言,還要有力學的演算技巧。只是一般設計程式的人,往往連「角速度乘以曲率半徑等於線性速度」,這樣的物理基礎都沒有,所以設計出來的動畫遊戲,就如下圖這般形似而神異了。 Cart-Pole這個訓練遊戲的重點,是在決定整個環境(environment)有哪些狀態(state),代理人(agent)有哪些動作(action)。只不過它的四個狀態中,木棒角度和角速度就會難倒很多人,嚴格來講,這個練習並不適合讓初學者來嘗試。 值得慶幸的是它的代理人動作倒還很簡單,就是滑車在某個位置時,要決定下一步是朝左移動、朝右移動或靜止不動這三種。我們把這三種動作維持不變,場景改成類似個人版的乒乓球遊戲,狀態就可大幅簡化成三個物體的位置,如此,初學者就可以很清楚,在套用Q-learning的時候,Q-table的四軸陣列,應該要如何建立起來了。 https://mobile-learning-testing.com/wp-content/uploads/2024/12/pon.mp4 上圖的訓練遊戲,它的reward值,在球接觸到拍子的狀態,應該是一個大的正數,在球接觸到地板的狀態,應該是一個大的負數,其他的狀態,給予 -1的reward即可。它可據此算出各個狀態的最適行動Q值,來決定下一步應該採取的行動。 這整個場景像是一維半(1.5D)的乒乓球遊戲,因為兩個球都只能在垂直方向移動,如果可以讓一個球在二維平面(2D)上持續移動,那就是個人乒乓遊戲的AI版本了。

增強式學習之4~Q-learning Read More »

增強式學習之3~隨機決策

3-3:隨機決策 早先提到的CNN神經網路中,其遮罩的係數(也就是權重),一開始是用隨機的方式來指定,在多次的訓練之後,會利用越來越小的誤差,逐步修正到比較合適的權重值。中間的步驟,也有用拋棄層(Dropout Layer)來做隨機處理的。 而增強式學習的隨機選擇考量,則是因為訓練初期獲得的資訊量有限,所以讓模型勇於嘗試各種可能性,在歷經了各種情況且反覆摸索之後,計算出最大報酬值以找出最好的策略。 前者隨機的部份是在訓練開始就全部完成,後者是在訓練過程逐次降低其比重。兩者相似的地方,就是隨機計算的處理都很快速,只不過一個是在神經層,另一個在時間序列當中。 蒙地卡羅模擬(Monte Carlo Simulation),是著名的隨機運算技術,它利用亂數產生器得到大量隨機數據,分析其統計分佈,進而引用來估計實際問題的答案,常被應用在增強式學習當中。 圖3-3-1. 提到蒙地卡羅的博弈產業,很容易聯想到隨機決策。 我們把先前的9×9迷宮訓練例子,用Python軟體再做一次比較完整的介紹。 編輯的軟體名稱為”Spyder”,是下載自Anaconda網站。程式在執行的時候,除了輸出的數據,也呈現出動態的迷宮視窗。”O”型的藍色圈代表尋找寶藏的主角(agent),經過數十回合的摸索與計算,終於找到最佳的路徑策略。 在這裡隨機選擇的比重,第1回合自然是100%,接下來就以0.8的等比級數下降。剛開始的前10個回合的機率都在10%以上,到了30回合以後漸趨為零,因為這時候得到的數據,已足夠自主判斷接下來的路徑了。當然這只是基礎的範例,比較大的問題訓練回合數可達幾萬甚至幾百萬。 https://mobile-learning-testing.com/wp-content/uploads/2024/08/mymaze.mp4 我們在”人工智慧入門”這一單元的貼文,暫時告一段落,隨後會用不定期的方式,進行這方面的發文。緊接著,我們將進入到”Python程式設計”單元,介紹實務上的一些常用指令,歡迎有心想鑽研技術細節的朋友,繼續閱讀本社團貼文。

增強式學習之3~隨機決策 Read More »

增強式學習之2~監督式學習之瓶頸

3-2:監督式學習之瓶頸 監督式學習,好像是學生在準備社會科考試一樣,唸的題目越多,背的標準答案越多,答題的準度和分數就會越高。但是要從90分考到95分,究竟要再多記憶多少內容,沒有人能提出精準的數據評估,甚至多背些考題是否一定就會提高分數,也很難講。 而且,除了記憶事物之外,舉一反三、觸類旁通的能力也很重要啊!它讓我們可以從有限的記憶中,摸索推理出不曾背誦過的資訊,這也許是人類智慧中更重要的部份。 例如有個題目問,“美國第一大都市在哪裡?”,我們很快可以回答是“紐約市”。如果再問“紐約在荷蘭人佔領期間的名稱是甚麼?”,或者“新阿姆斯特丹的北城牆,為現今金融中心的甚麼街?”,這些加以思考推理或許就可得到的答案,監督式學習必須輸入更多的資料來訓練,否則無法回答。 所以有好事者比喻,一味地只知道使用監督式學習,就像是古代巴比倫人建好巴別塔,自認為已經可以通達天際了,實際上還差了十萬八千里。 圖3-2-1. 古巴比倫人建立的巴別塔,高聳入雲霄,他們認為可以藉此和天際溝通了。 這個時候,增強式學習就可以提供有價值的處理方向了。 增強式學習,訓練次數少則數十回合(episode),多則數萬甚至數百萬回合。剛開始訓練的少數回合當中,在做決定過程時,會有比較多的隨機選擇,等到訓練過較多的回合了,能夠藉以參考的數據足夠了,就會逐漸增加自我判斷的比率,同時持續減少隨機選擇的次數。 這隨機選擇的功能,就程式設計而言,是要避免它無法跳脫不定次數迴圈;就策略規劃而言,是希望它儘量嘗試各種可能性,以真正找出最佳的報酬策略,這當中自然就會帶有一些推理成份了。 下面的9×9迷宮遊戲,主角起始位置在迷宮正中央,右下角格子的reward=+30,代表寶藏地點,找到這裡該回合即結束;左上角格子的reward= – 30,是大魔王地點,抵達此處會被吃掉,該回合同樣結束。黑色格子是不可穿越之障礙區,其餘格子皆reward= – 0.2,所以每多走一步都會被扣0.2,要用最少的步數才能得到最大的報酬(return)。 圖3-2-2. 一個9×9的迷宮遊戲,希望用最少的步數,讓主角由正中央的起始位置,找到右下角寶藏地點。 我們第一次執行模型,讓它跑100個回合,並刻意使其隨機選擇的比率以較快的速度減少,發現它要找到最佳步數的8次會比較吃力。 第二次同樣讓模型跑100個回合,但讓它的隨機選擇以較慢的速度減少,發現它的訓練成效有改善了。

增強式學習之2~監督式學習之瓶頸 Read More »

增強式學習之1~馬可夫決策過程

3-1:馬可夫決策過程 增強式學習這幾年來廣受各方矚目,主要的原因,當然是它成功地被引用在ChatGPT當中。但除了大型語言模型,增強式學習還有很多重要的應用,例如像無人載具、機器人的路徑規劃,以及數位電路、核融合及渦輪引擎的效率最佳化設計等。 增強式學習的基本概念,在於透過多次訓練逐步形成最佳策略,以找出最大報酬的最適路徑。迷宮遊戲,是最常被拿來舉例說明的範本。 圖3-1-1上圖之中,橘色球形代表遊戲的主角(agent),整個6×6迷宮就是環境(environment),其中任何一個格子的x,y座標就是狀態(state),橘球要上下左右朝哪一方向移動,就是行動(action)。 走到相鄰任何格子的獎勵(reward)應為 -1,但有兩個格子獎勵為4和5,其中並有黑色的障礙禁止區。想要成功走完迷宮的基本邏輯思考,就是以最少的步數走到獎勵為5的格子,來獲得最大的“累積獎勵”(稱為“報酬”,return)。 圖3-1-1下圖之中,是在說明,經過多個回合(episode)的訓練,系統會慢慢計算出每個格子的價值(state value),agent在決定要朝哪個方向移動下一步時,就會傾向鄰近價值最高的格子,並更新目前所在格子的價值,這就是所謂的策略(policy)。 圖3-1-1. 迷宮遊戲,是增強式學習常用的範例。 迷宮遊戲只是增強式學習的起步,但已需要一些程式設計的基礎了,這方面,適當的Python語言訓練,加上良好的直覺(intuition)是很有幫助的。 學理方面,則必須面對比較不好掌握的統計機率。這個部份,馬可夫決策過程(Markov Decision Process, MDP)當中,有一個假設需要先瞭解。 這個假設是說,“目前的時序狀態,只取決於前一個時序的狀態與行動”。換句話講,它假設了前面的時序已包含了更前面時序的訊息。所以可以利用遞迴的做法,將所有時序的關係串接起來。 馬可夫先生(1856~1922),早年就讀彼德堡文法學校,格格不入。後來就讀聖彼得堡大學,在隨機過程領域做出重要貢獻。但他並未忘情早年訓練,曾利用馬可夫鏈來模擬俄國文學中輔音和元音的頭韻法。 圖3-2. 馬可夫(Markov)畢業自聖彼得堡大學,是俄國著名的數學家。

增強式學習之1~馬可夫決策過程 Read More »

增強式學習

第三章:增強式學習 ChatGPT這種語言模型,是屬於監督式學習,例如訓練英翻中的時候,輸入一個英文句子“I have been expecting you.”,一定要同時輸入它的中文翻譯“我恭候您多時了”,用以計算其損失函數,做為回饋修正模型權重之用。模型訓練完成可以回答提問者的問題了,就是到了模型預測的階段。 但我們在不同時間點,問ChatGPT同一個問題,常常會得到有所差異的答覆。這是因為,模型一般是利用(exploit)學習經驗回答問題,但有時會探索(explore)隨機答案,目的是想增加回答內容的多樣性。 如此一來,在預測階段所提的問題,加上不同評分的答覆內容,就可以再放進模型裡面,當作另一筆訓練的資料和標記值。這樣的學習訓練方式,讓ChatGPT在往後的答覆更加合理,並且文字益形通順。 例如,“You should have studied harder.”,如果翻譯成“你原本應該更用功讀書”給予5分,如果翻成“你應該更用功讀書”給予3分,如果翻成“你應該用功讀書”給予1分。這樣的獎懲方式是「增強式學習」的基本概念,搭配上既有的監督式學習,是OpenAI公司迎頭趕上Google的重要關鍵。 圖3-1. 增強式學習(Reinforcement Learning, RL),其獎勵或懲罰(Reward),是建立最佳行動策略的重要因素。 增強式學習,和監督式及非監督式學習,並稱是人工智慧的三大學習方式。但這種學習方式有其獨特的地方。 它在建立其內部神經網路時,資料集是由自己計算所得,不需要再從外部蒐集資料;它應用的範圍甚廣,包括遊戲策略、自動駕駛、機器人控制、金融投資策略…………。 OpenAI早期喜用增強式學習來訓練遊戲,看似不務正業,實則在蓄積能量,待時機成熟即一鳴驚人。有志於這方面研發的工作人員,建議應先打好程式及理論基礎。 圖3-2. 捉迷藏遊戲,是OpenAI相當著名的增強式學習遊戲。

增強式學習 Read More »

Shopping Cart