專欄文章

何謂強化學習(Reinforcement Leaning)

強化學習是機器學習中針對「行為」的演算法。其目的是訓練能夠學會「做什麼」的一種技術。使用強化學習的訓練流程大致如下:

  1. 首先,先建立一個智能體(Agent)
  2. 然後這個智能體會根據所處的狀態(State)採取對應的動作(Action)
  3. 而系統會根據收到的動作回饋給智能體對應的收益(Reward),透過不斷地訓練得到一個收益最大的策略(Policy)。

我們用一個具體的例子說明:下圖有兩個小孩想去公園玩溜滑梯,可是過程中有許多障礙物,請您引導他們繞過障礙物到達目的地。如何訓練電腦來解決這個問題呢?這時強化學習就可以派上用場。

在強化學習的系統中智能體、狀態、動作與收益是一開始給定的,而我們的目的是要在這些給定的條件中找出一種「可以獲得最多收益的狀態轉移方式」。例:直走 → 直走 → 右轉,讓人可以安全(走最佳路徑)到目的地。

       

 

如下流程為強化學習的架構:

 

 

下表說明強化學習架構功能:

元素

解說

智能體(Agent)

例:右上圖2個小孩

動作(Action)

狀態轉移,例如:直走、右轉、左轉…。

狀態(State)

智能體可以進行動作選擇的位置,例:如右上圖中每一個轉角路口都是個狀態,人可以在路口選擇直走、右轉、左轉。

收益(Reward)

轉移到一個新的狀態時所能得到的報酬,報酬可以為正值,也可為負值。例:經過有障礙物的街道至下一個路口就獲得-1分(扣1分),沒經過障礙物的街道至下個路口就獲1分。

 

 

強化學習的目標就是輸出一個「可以讓總收益最大的動作執行策略」至於什麼是總收益呢?它與未來價值折現的觀念非常類似,我們用一個案例引導你思考。

例:Allen定存一筆錢到銀行兩年,收取10%的年利率並且一年複利一次。若Allen兩年後能收回10萬元,試問現在需要定存多少錢給銀行?

  • 解:
    • 未來價值(future Value) = 100000
    • 期數(Number of Periods) = 2
    • 利率(Interest Rate) = 10%

求算:現在價值(Present Value, PV)?

  •  (Allen現在定存82645元給銀行才可以兩年後收到10萬元。)

這個例子的計算過程可以用以下公式來做表達:

 

  • :利率
  • :週期
  • FV:未來價值,財富在未來的價值
  • PV:現在價值,代表財富現在的價值,或稱本金

先前所說的公式意義就是將未來的錢(FV)轉換成現在的錢(PV),由利率(Interest Rate)產生的利息就是借方(Allen)所賺取的利潤。假設Allen的資產只有現金,今天想要買房子需要貸款,您是銀行的職員會如何評估Allen能力呢?

可以從兩個方面著手:存款收入

  • 存款:現在可以動用的資金。
  • 收入:未來可以動用的資金。

Allen是一名上班族,最主要的收入就是薪水,當他有多餘的資金時會定存到銀行賺取利息。對於保守的銀行來說,為了避免風險,評估還款能力時對於存款的權重可能高一些,反之對於積極的銀行而言,收入的權重就會比較高,最終,存款與收入的加權總合即為還款能力

當我們理解了未來價值折現後,我們可以將他擴展,如果Allen考慮的定存可能有各種不同的期數,那麼就可以產生各種不同的未來價值,我們將各種期數下的未來價值折現後相加就是總收益(Gt),表達成下列公式:

  • :收益, 代表不同的時間點,例:一月、二月、三月。
  • γ :衰退率(Discount Factor),用於將未來價值轉換為現在價值,類似「折現率」的概念,其值的範圍介於0~1之間,離現在越近衰退率越小,反之越遠則越大。

我們把這個觀念對應兩個小孩想去公園玩溜滑梯案例中,進入有障礙物的路線就是降低收益,反之即增加收益,最終強化找到一個總收益最高的路線。所以強化學習的目標就是找到總收益最大的動作執行策略!

 

撰文者:政大人工智慧與數位教育中心   黃啟賢研究員