lucasw
大佬教麻
你可以叫我 000 / Lucas
建國中學資訊社37th學術長
建國中學電子計算機研習社44th學術
校際交流群創群者
不會音遊不會競程不會數學的笨
資訊技能樹亂點但都一樣爛
專案爛尾大師
IZCC x SCINT x Ruby Taiwan 聯課負責人
建國中學電子計算機研習社44th學術+總務
是的,我是總務。在座的你各位下次記得交社費束脩給我
技能樹貧乏
想拿機器學習做專題結果只學會使用API
上屆社展烙跑到資訊社的叛徒
科班墊神
人工智慧
機器學習
監督式學習
非監督式學習
強化學習
深度學習
強化學習
reinforcement learning
Agent
Action
Environment
New State
Reward
可能是超越人類的智慧
Q:可以用強化學習做監督式學習嗎
人為標註的資料
人為標註的資料
跟環境互動獲取資料
做出預測
做出決策
存在唯一正解
可能有多種最佳解
誤差越小越好
獎勵越多越好
模仿人類智慧
透過試錯自行產生智慧
自駕車
大型語言模型(RLHF)
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
\(S=\{S_1,S_2,...,S_n\}\)
\(S_4\rightarrow S_8\rightarrow S_7\)
\(S_7\)
\(S_6\)
\(S_5\)
50%
30%
20%
*相加必等於1
\(S=\{S_1,S_2,...,S_n\}\)
\(S_7\)
\(S_7\)
\(S_6\)
\(S_5\)
50%
30%
20%
\(S=\{S_1,S_2,...,S_n\}\)
\(S_4\rightarrow S_8\rightarrow S_7\)
\(S_7\)
\(S_6\)
\(S_5\)
50%
30%
20%
有些問題可能一開始不具有馬可夫性質
可以將歷史資訊也當作狀態使其具備馬可夫性質
\(S=\{\{S_4,S_8,S_7\},S_1,S_2,...,S_n\}\)
\(S=\{上課,困惑,睡覺\}\)
滿足馬可夫性質的狀態序列
上課
50%
上課
上課
困惑
睡覺
30%
20%
睡覺
10%
上課
困惑
睡覺
30%
60%
困惑
30%
上課
困惑
睡覺
30%
40%
\(上課\rightarrow 上課\rightarrow 困惑\)
\(H\)
\(p(H)=0.5\times 0.5\times 0.3\)
上課
50%
上課
上課
困惑
睡覺
30%
20%
睡覺
10%
上課
困惑
睡覺
30%
60%
困惑
30%
上課
困惑
睡覺
30%
40%
將狀態轉移的機率以矩陣表示
上課 | 困惑 | 睡覺 | |
---|---|---|---|
上課 | 0.5 | 0.3 | 0.2 |
困惑 | 0.3 | 0.3 | 0.4 |
睡覺 | 0.1 | 0.3 | 0.6 |
上課
50%
上課
上課
困惑
睡覺
30%
20%
睡覺
10%
上課
困惑
睡覺
30%
60%
困惑
30%
上課
困惑
睡覺
30%
40%
原來狀態
後來狀態
上課
50%
上課
上課
困惑
睡覺
30%
20%
睡覺
10%
上課
困惑
睡覺
30%
60%
困惑
30%
上課
困惑
睡覺
30%
40%
將原來狀態也以矩陣表示
ex.一開始在上課\(\rightarrow S_0=[1,0,0]\)
可由轉移矩陣求得下個狀態的機率
可由同個關係式
\(S_{n+1}=S_nT\)
求得再下個狀態的機率
上課 | 困惑 | 睡覺 | |
---|---|---|---|
上課 | 1 | -1 | -10 |
困惑 | 1 | 0 | -10 |
睡覺 | 1 | 0 | 0 |
原來狀態
後來狀態
獎勵(Reward)表:狀態轉移時獲得由環境決定獎勵
回報(Return or Gain):馬可夫鏈的獎勵總和
\(G_t\):從t時刻(狀態\(S_t\))到中止的回報
\(G_t=R_t+R_{t+1}+R_{t+2}+...=\sum^{\infty}_{k=0} R_{t+k}\)
對未來的期望要打折扣
而且越遠的未來折扣越多
\(\rightarrow\)後一個時刻的獎勵要多乘上一個折扣因子\(\gamma\)
(\(0\le\gamma\le 1\))
\(G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+...=\sum^{\infty}_{k=0} \gamma^kR_{t+k}\)
為每個狀態S
設定一個狀態價值V(s)
代表這個位置的好壞
這樣一來
策略就可以簡單地設定為朝狀態價值高的方向走
條件機率表示為\(P(A|B)\),讀作「A在B發生的條件下發生的機率」
10%
\(s\)
5%
20%
15%
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_n\)
條件機率 \(p(s'_1|s)=10\%,p(s'_2|s)=15\%...\)
.
.
.
可表示成矩陣型式
\(V=R+\gamma PV\)
狀態實際上是根據採取的動作(Action)進行改變
\(s\)
\(a_1\)
\(a_2\)
\(a_n\)
.
.
.
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.1
0.3
0.6
0.2
0.5
0.3
0.0
0.8
0.2
Agent(智能體)根據採取的策略決定執行的動作
\(S_t=s\)
\(\pi\)
\(A=\{a_1,a_2,...,a_n\}\)
\(p(s|s,a)\)
\(S=\{s_1,s_2,...,s_n\}\)
\(R_t\)
\(S_{t+1}=s'\)
\(S_t=s\)
\(\pi\)
\(A=\{a_1,a_2,...,a_n\}\)
\(p(s|s,a)\)
\(S=\{s_1,s_2,...,s_n\}\)
\(R_t\)
\(S_{t+1}=s'\)
\(\pi (a|s) = p(A_t=a|S_t=s)\)
\(P(s'|s) = \sum \pi (a|s)P(s'|s,a)\)
\(\pi (a|s) = p(A_t=a|S_t=s)\)
\(P(s'|s) = \sum \pi (a|s)P(s'|s,a)\)
\(s\)
\(a_1\)
\(a_2\)
\(a_n\)
.
.
.
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.1
0.3
0.6
0.2
0.5
0.3
0.0
0.8
0.2
評估一個動作的價值
\(v^\pi(s)\)
\(Q^\pi(s,a_1)\)
\(v^\pi(s'_1)\)
\(s\)
\(a_1\)
\(a_2\)
\(a_n\)
.
.
.
\(v^\pi(s)=\sum \pi(a|s)Q^\pi(s,a)\)
\(a_1\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.1
0.3
0.6
\(Q^\pi(s,a_1)=R(s,a)+\gamma \sum P(s'|s,a)v(s')\)
\(a_1\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.1
0.3
0.6
\(s\)
\(a_2\)
\(a_n\)
.
.
.
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.2
0.5
0.3
0.0
0.8
0.2
\(a_1\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.1
0.3
0.6
\(s\)
\(a_2\)
\(a_n\)
.
.
.
\(s'_1\)
\(s'_2\)
\(s'_3\)
\(s'_1\)
\(s'_2\)
\(s'_3\)
0.2
0.5
0.3
0.0
0.8
0.2
\(s'\)
\(a_1'\)
\(a_2'\)
\(a_n'\)
\(s\)
\(Q^\pi(s,a)=R(s,a)+\gamma \sum P(s'|s,a)v(s')\)
\(v^\pi(s)=\sum \pi(a|s)Q^\pi(s,a)\)
\(s'\)
\(a\)
我們要訓練Agent做出最好的決策
也就是有最佳策略「*」
根據此策略可以得到以下結果
* => 選Q值最高的動作
observation,reward,terminated,truncated,info = env.step(action)
observation: 新環境觀測資料
reward: 執行動作所獲得的獎勵
terminated: 遊戲是否結束
truncated: 遊戲異常終止(ex.超時)
info: 額外資訊,通常用不到
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
\(\pi\)
\(v\)
動態規劃
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
不制訂策略(直接往價值高處走)
拿下個狀態中價值最高的來更新
重複更新直到收斂即可
策略梯度
Actor-Critic
Q-Leaning
DQN
策略迭代
價值迭代
現在沒有人告訴我們轉移方式跟機率了
怎麼辦
重複採樣取得所求機率分布的近似值
1 episode
紀錄每次個點的\(G_t\)
\(G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+...=\sum^{\infty}_{k=0} \gamma^kR_{t+k}\)
\(S_t\)
\(a\)
\(S_{t+1}\)
\(a\)
\(S_{t+2}\)
\(a\)
terminate
1 episode
\(S_t\)
\(a\)
\(S_{t+1}\)
\(a\)
\(S_{t+2}\)
\(a\)
terminate
\(R_t\)
\(R_{t+1}\)
\(R_{t+2}\)
\(G_t=R_t+\gamma R_{t+1}+\gamma ^2 R_{t+2}\)
1 episode
\(S_{t+1}\)
\(a\)
\(S_{t+2}\)
\(a\)
terminate
\(R_{t+1}\)
\(R_{t+2}\)
\(G_{t+1}=R_{t+1}+\gamma R_{t+2}\)
1 episode
\(S_{t+2}\)
\(a\)
terminate
\(R_{t+2}\)
\(G_{t+2}=R_{t+2}\)
1 episode
\(S_{t+2}\)
\(a\)
terminate
\(R_{t+2}\)
\(G_{t+2}=R_{t+2}\)
1 episode
\(S_t\)
\(a\)
\(S_{t+1}\)
\(a\)
\(S_{t+2}\)
\(a\)
terminate
\(R_t\)
\(R_{t+1}\)
\(R_{t+2}\)
1 episode
\(S_t\)
\(a\)
\(S_{t+1}\)
\(R_t\)
\(G_t=R_t+\gamma G_{t+1}\)
1 episode
\(S_{t+1}\)
\(a\)
\(S_{t+2}\)
\(R_{t+1}\)
\(G_{t+1}=R_{t+1}+\gamma G_{t+2}\)
1 episode
\(S_{t+2}\)
\(a\)
terminate
\(R_{t+2}\)
\(G_{t+2}=R_{t+2}\)
好處
更新較快,不必每次都玩到終點在更新
By lucasw