Reinforcement Learning

Created onDibuat pada
Last updated onTerakhir diperbarui
11 min read11 menit baca
IDreinforcement-learningSARSAQ-learningDQNdata-science
ContributorsKontributor
Razi Rachman Widyadhana - @zirachw

Reinforcement Learning atau RL adalah paradigma pembelajaran mesin untuk masalah pengambilan keputusan. Agen belajar dari interaksi dengan lingkungan, menerima reward, dan berusaha memilih aksi yang memaksimalkan akumulasi reward jangka panjang.

#Link to this headingPosisi RL dalam Machine Learning

Pembelajaran terawasi memakai pasangan data (x,y)(x,y), sedangkan pembelajaran tak terawasi mencari struktur dari data tanpa label. RL berbeda karena data pelatihannya muncul dari interaksi. Agen memilih aksi, lingkungan merespons, lalu agen menerima observasi baru dan reward.

Cabang machine learning dengan reinforcement learning sebagai paradigma pengambilan keputusan
Cabang machine learning dengan reinforcement learning sebagai paradigma pengambilan keputusan

RL cocok ketika jawaban benar tidak tersedia secara langsung. Dalam banyak persoalan, tidak ada label optimal untuk setiap keadaan. Yang tersedia hanya sinyal keberhasilan setelah aksi dilakukan, bahkan kadang reward baru muncul jauh setelah keputusan awal.

Contohnya adalah robot berjalan, permainan strategi, pengendalian kendaraan, alokasi sumber daya, dan agen yang belajar melalui simulasi.

#Link to this headingKarakteristik RL

RL memiliki beberapa karakteristik yang membedakannya dari pembelajaran terawasi.

  1. Tidak ada supervisi langsung dalam bentuk label benar untuk setiap aksi.
  2. Umpan balik diberikan sebagai reward signal.
  3. Umpan balik dapat tertunda.
  4. Waktu penting karena aksi sekarang dapat memengaruhi keadaan dan reward di masa depan.
  5. Agen harus menyeimbangkan eksplorasi dan eksploitasi.
Karakteristik reinforcement learning dibandingkan paradigma machine learning lain
Karakteristik reinforcement learning dibandingkan paradigma machine learning lain

Inti RL bukan hanya memilih aksi yang memberi reward terbesar saat ini, tetapi memilih aksi yang memberi nilai terbaik dalam jangka panjang.

#Link to this headingAgen dan Lingkungan

RL dimodelkan sebagai interaksi antara agen dan lingkungan.

Loop interaksi agent environment observation action reward
Loop interaksi agent environment observation action reward

Pada setiap langkah waktu tt, agen menerima observasi OtO_t dan reward RtR_t. Berdasarkan informasi tersebut, agen memilih aksi AtA_t. Lingkungan menerima aksi itu, lalu menghasilkan observasi berikutnya Ot+1O_{t+1} dan reward berikutnya Rt+1R_{t+1}.

Komponen utama agen meliputi state, policy, value function, dan kadang model dari lingkungan.

KomponenMakna
StateRepresentasi kondisi yang dipakai agen untuk mengambil keputusan
ActionPilihan tindakan yang dapat dilakukan agen
RewardSinyal evaluasi dari lingkungan setelah aksi dilakukan
PolicyAturan pemilihan aksi berdasarkan state
Value functionEstimasi nilai jangka panjang dari state atau pasangan state-action
ModelPerkiraan dinamika lingkungan, jika agen memilikinya

#Link to this headingReward dan Value

Reward adalah sinyal langsung dari lingkungan. Value adalah estimasi manfaat jangka panjang. Keduanya tidak sama. Reward dapat kecil atau negatif saat ini, tetapi aksi tersebut tetap bisa baik jika membuka peluang reward besar di masa depan.

Contoh klasiknya adalah investasi. Keputusan yang mengurangi uang hari ini dapat memberi nilai tinggi jika keuntungan masa depan besar. Dalam permainan, mengorbankan satu langkah dapat membuka peluang menang beberapa langkah kemudian.

#Link to this headingPolicy

Policy adalah pemetaan dari state ke aksi. Policy sering dilambangkan dengan π\pi.

Policy deterministik memilih satu aksi untuk setiap state.

a=π(s)a = \pi(s)

Policy stokastik memberi distribusi peluang atas aksi.

π(a∣s)=P(At=a∣St=s)\pi(a \mid s) = P(A_t = a \mid S_t = s)

Pada contoh maze, panah di setiap sel dapat dibaca sebagai policy. Ketika agen berada di sel tersebut, panah menunjukkan aksi yang dipilih.

Contoh maze dengan panah policy pada setiap state
Contoh maze dengan panah policy pada setiap state

#Link to this headingValue Function

Value function mengukur seberapa baik suatu state dalam jangka panjang. Untuk policy π\pi, state value ditulis sebagai berikut.

vπ(s)=Eπ[Gt∣St=s]v_\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s]

Di sini GtG_t adalah return, yaitu total reward terdiskonto dari waktu tt.

Gt=Rt+1+γRt+2+γ2Rt+3+…G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3} + \ldots

atau dalam bentuk penjumlahan berikut.

Gt=∑k=0∞γkRt+k+1G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}

Nilai γ\gamma adalah discount factor dengan rentang 0≤γ≤10 \leq \gamma \leq 1. Jika γ\gamma kecil, agen lebih mementingkan reward dekat. Jika γ\gamma besar, agen lebih memperhitungkan reward jauh.

Maze dengan value function yang memberi nilai pada setiap state
Maze dengan value function yang memberi nilai pada setiap state

#Link to this headingAction-Value Function

Selain nilai state, RL juga memakai nilai pasangan state dan aksi. Nilai ini disebut action-value function atau Q-function.

qπ(s,a)=Eπ[Gt∣St=s,At=a]q_\pi(s,a) = \mathbb{E}_\pi[G_t \mid S_t = s, A_t = a]

Jika qπ(s,a)q_\pi(s,a) diketahui, agen dapat membandingkan aksi yang mungkin dilakukan pada state yang sama. Aksi dengan nilai qq lebih tinggi lebih menjanjikan secara jangka panjang.

Hubungan antara state value dan action value adalah sebagai berikut.

vπ(s)=∑aπ(a∣s)qπ(s,a)v_\pi(s) = \sum_a \pi(a \mid s)q_\pi(s,a)

Untuk policy optimal, nilai state optimal dapat diperoleh dari action value optimal.

v∗(s)=max⁡aq∗(s,a)v_*(s) = \max_a q_*(s,a)

Policy optimal dapat ditemukan dengan memilih aksi yang memaksimalkan q∗(s,a)q_*(s,a).

π∗(s)=arg⁡max⁡aq∗(s,a)\pi_*(s) = \arg\max_a q_*(s,a)

#Link to this headingModel

Model dalam RL adalah representasi dinamika lingkungan. Model dapat memberi tahu state berikutnya dan reward yang mungkin terjadi ketika agen melakukan aksi tertentu.

Secara probabilistik, model sering ditulis sebagai berikut.

p(r,s′∣s,a)p(r,s' \mid s,a)

Artinya, dari state ss dan aksi aa, lingkungan dapat berpindah ke state s′s' dan menghasilkan reward rr dengan peluang tertentu.

Jika model diketahui, agen dapat melakukan perencanaan. Jika model tidak diketahui, agen belajar langsung dari sampel interaksi.

Contoh model lingkungan pada maze yang menunjukkan transisi dan reward
Contoh model lingkungan pada maze yang menunjukkan transisi dan reward

#Link to this headingEksplorasi dan Eksploitasi

Eksploitasi berarti memilih aksi yang saat ini dipercaya paling baik. Eksplorasi berarti mencoba aksi lain untuk memperoleh informasi baru.

Keduanya perlu seimbang. Jika agen hanya mengeksploitasi, agen dapat terjebak pada pilihan yang tampak baik tetapi bukan yang terbaik. Jika agen terlalu banyak mengeksplorasi, agen membuang banyak kesempatan untuk memperoleh reward tinggi.

Contoh sederhana adalah memilih restoran. Eksploitasi berarti pergi ke restoran favorit. Eksplorasi berarti mencoba restoran baru yang mungkin lebih baik.

Salah satu strategi umum adalah ϵ\epsilon-greedy. Dengan peluang 1−ϵ1-\epsilon, agen memilih aksi terbaik saat ini. Dengan peluang ϵ\epsilon, agen memilih aksi acak.

#Link to this headingKategori Agen RL

Agen RL dapat dikategorikan berdasarkan komponen yang dipelajari.

KategoriKomponen utamaPenjelasan
Value basedValue functionPolicy bersifat implisit melalui aksi bernilai tertinggi
Policy basedPolicyAgen langsung belajar fungsi pemilihan aksi
Actor criticPolicy dan value functionActor memilih aksi, critic menilai aksi
Model freePolicy atau value function tanpa model lingkunganBelajar langsung dari interaksi
Model basedModel lingkungan, kadang bersama policy atau valueMemakai model untuk merencanakan aksi
Taksonomi agen reinforcement learning value based policy based actor critic model free dan model based
Taksonomi agen reinforcement learning value based policy based actor critic model free dan model based

Materi kuliah ini berfokus pada model-free RL, khususnya Temporal Difference Learning melalui SARSA dan Q-learning.

#Link to this headingMarkov Decision Process

Reinforcement Learning sering diformalkan sebagai Markov Decision Process atau MDP. Sebuah MDP terdiri atas state, aksi, probabilitas transisi, reward, dan discount factor.

Properti Markov menyatakan bahwa masa depan hanya bergantung pada state saat ini dan aksi saat ini, bukan seluruh sejarah sebelumnya.

P(St+1,Rt+1∣St,At)P(S_{t+1}, R_{t+1} \mid S_t, A_t)

Dengan MDP, persoalan RL menjadi persoalan mencari policy yang memaksimalkan expected return.

Formalizing RL interface sebagai Markov Decision Process
Formalizing RL interface sebagai Markov Decision Process

#Link to this headingReturn dan Bellman Equation

Return dari waktu tt adalah total reward terdiskonto.

Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}

Persamaan ini menunjukkan struktur rekursif. Nilai sekarang bergantung pada reward berikutnya dan nilai masa depan.

Untuk state value, bentuknya adalah sebagai berikut.

vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]v_\pi(s) = \mathbb{E}_\pi[R_{t+1} + \gamma v_\pi(S_{t+1}) \mid S_t = s]

Untuk action value, bentuknya adalah sebagai berikut.

qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]q_\pi(s,a) = \mathbb{E}_\pi[R_{t+1} + \gamma q_\pi(S_{t+1},A_{t+1}) \mid S_t = s, A_t = a]
Return state value action value dan hubungan Bellman
Return state value action value dan hubungan Bellman

#Link to this headingTemporal Difference Learning

Temporal Difference Learning atau TD Learning belajar dari sampel parsial. Berbeda dengan Monte Carlo, TD tidak perlu menunggu episode selesai untuk melakukan pembaruan.

Ide dasarnya adalah bootstrapping. Estimasi saat ini diperbarui menggunakan reward yang baru diamati dan estimasi nilai state berikutnya.

Untuk value function, bentuk update-nya adalah sebagai berikut.

V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)]V(S_t) \leftarrow V(S_t) + \alpha[R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]

Bagian dalam kurung disebut TD error.

δt=Rt+1+γV(St+1)−V(St)\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t)

Pada TD control, pembelajaran diterapkan pada q(s,a)q(s,a). Dua algoritma yang dibahas adalah SARSA dan Q-learning.

#Link to this headingSARSA

SARSA adalah algoritma TD control on-policy. Nama SARSA berasal dari lima kejadian yang dipakai dalam update.

(St,At,Rt+1,St+1,At+1)(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1})

Karena memakai At+1A_{t+1} yang benar-benar dipilih oleh policy saat ini, SARSA belajar tentang policy yang sedang dijalankan.

Formula update SARSA adalah sebagai berikut.

Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha[R_{t+1} + \gamma Q(S_{t+1},A_{t+1}) - Q(S_t,A_t)]
Pseudocode tabular SARSA on policy TD control
Pseudocode tabular SARSA on policy TD control

#Link to this headingContoh SARSA

Misalkan α=0.5\alpha = 0.5 dan γ=0.9\gamma = 0.9. Semua nilai awal QQ adalah 0. Terdapat tiga episode pada GridWorld.

EpisodeUrutan state
1(1,1)(1,1), lalu (1,2)(1,2), lalu (2,2)(2,2), lalu (3,2)(3,2)
2(1,1)(1,1), lalu (2,1)(2,1), lalu (3,1)(3,1)
3(1,1)(1,1), lalu (2,1)(2,1), lalu (2,2)(2,2), lalu (3,2)(3,2)

Pada episode 1, dua perpindahan pertama memiliki reward 0 dan nilai berikutnya masih 0, sehingga nilai Q tetap 0. Pada perpindahan dari (2,2)(2,2) ke terminal (3,2)(3,2), reward adalah 10.

Q([(2,2)],right)=0+0.5(10+0.9(0)−0)=5Q([(2,2)], \text{right}) = 0 + 0.5(10 + 0.9(0) - 0) = 5

Pada episode 2, perpindahan dari (2,1)(2,1) ke terminal buruk (3,1)(3,1) memiliki reward −10-10.

Q([(2,1)],right)=0+0.5(−10+0.9(0)−0)=−5Q([(2,1)], \text{right}) = 0 + 0.5(-10 + 0.9(0) - 0) = -5

Pada episode 3, nilai Q([(2,2)],right)Q([(2,2)], \text{right}) yang sudah bernilai 5 ikut memengaruhi update sebelumnya.

Q([(2,1)],up)=0+0.5(0+0.9(5)−0)=2.25Q([(2,1)], \text{up}) = 0 + 0.5(0 + 0.9(5) - 0) = 2.25

Kemudian nilai menuju terminal baik diperbarui lagi.

Q([(2,2)],right)=5+0.5(10+0.9(0)−5)=7.5Q([(2,2)], \text{right}) = 5 + 0.5(10 + 0.9(0) - 5) = 7.5
Nilai Q dan optimal policy hasil contoh SARSA setelah tiga episode
Nilai Q dan optimal policy hasil contoh SARSA setelah tiga episode

#Link to this headingQ-Learning

Q-learning adalah algoritma TD control off-policy. Agen dapat mengikuti policy eksploratif saat mengumpulkan pengalaman, tetapi update-nya belajar menuju policy greedy optimal.

Perbedaan utama dari SARSA terletak pada target update. SARSA memakai aksi berikutnya yang benar-benar dipilih. Q-learning memakai aksi terbaik yang mungkin pada state berikutnya.

Formula update Q-learning adalah sebagai berikut.

Q(St,At)←Q(St,At)+α[Rt+1+γmax⁡aQ(St+1,a)−Q(St,At)]Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \alpha[R_{t+1} + \gamma \max_a Q(S_{t+1},a) - Q(S_t,A_t)]
Q learning off policy update memakai maksimum Q pada state berikutnya
Q learning off policy update memakai maksimum Q pada state berikutnya

Karena memakai max⁡aQ(St+1,a)\max_a Q(S_{t+1},a), Q-learning cenderung lebih optimistis dibanding SARSA. SARSA memperhitungkan aksi yang benar-benar akan diambil oleh policy eksploratif, sedangkan Q-learning memperkirakan seolah agen akan memilih aksi terbaik pada langkah berikutnya.

#Link to this headingSARSA dan Q-Learning

AspekSARSAQ-learning
JenisOn-policyOff-policy
Target updateR+γQ(S′,A′)R + \gamma Q(S',A')R+γmax⁡aQ(S′,a)R + \gamma \max_a Q(S',a)
Aksi berikutnyaAksi yang benar-benar dipilihAksi bernilai maksimum
Efek eksplorasiMasuk ke proses belajarTidak langsung masuk ke target optimal
KecenderunganLebih hati-hatiLebih greedy terhadap nilai optimal

#Link to this headingDeep Q-Network

Tabular Q-learning menyimpan nilai Q(s,a)Q(s,a) dalam tabel. Cara ini tidak cukup ketika state sangat banyak atau kontinu, misalnya citra permainan. Deep Q-Network atau DQN mengganti tabel Q dengan neural network.

Deep Q Network mengganti tabel Q dengan neural network yang menghasilkan Q value semua aksi
Deep Q Network mengganti tabel Q dengan neural network yang menghasilkan Q value semua aksi

DQN menerima fitur state sebagai input dan menghasilkan vektor Q-value untuk semua aksi.

qw(xs,⋅)=[Q(s,a1)Q(s,a2)⋮Q(s,am)]q_w(x_s, \cdot) = \begin{bmatrix} Q(s,a_1) \\ Q(s,a_2) \\ \vdots \\ Q(s,a_m) \end{bmatrix}

Pemilihan aksi dapat dilakukan dengan memilih nilai terbesar.

a=arg⁡max⁡aqw(xs,a)a = \arg\max_a q_w(x_s,a)

#Link to this headingReplay Memory

DQN memakai replay memory karena sampel dari episode berurutan tidak bersifat IID. Jika model dilatih langsung dari urutan terbaru, pembaruan bobot dapat terlalu berkorelasi dan tidak stabil.

Replay memory menyimpan transisi dalam bentuk berikut.

(xs,a,r,xs′,done)(x_s, a, r, x_{s'}, \text{done})

Kemudian mini-batch diambil secara acak dari buffer memori untuk menghitung loss dan memperbarui parameter jaringan. Dengan cara ini, distribusi data pelatihan lebih stabil dan pengalaman lama tetap dapat dipakai kembali.

Replay memory pada DQN menyimpan transisi dan mengambil mini batch acak
Replay memory pada DQN menyimpan transisi dan mengambil mini batch acak

#Link to this headingTarget Value untuk DQN

DQN memperlakukan pembelajaran Q-value sebagai persoalan regresi. Untuk setiap transisi, model melakukan dua forward pass.

  1. Forward pass pada state saat ini xsx_s untuk memperoleh qw(xs,⋅)q_w(x_s,\cdot).
  2. Forward pass pada state berikutnya xs′x_{s'} untuk memperoleh qw(xs′,⋅)q_w(x_{s'},\cdot).

Target untuk aksi yang dipilih aa adalah sebagai berikut.

y=r+γmax⁡a′qw(xs′,a′)y = r + \gamma \max_{a'} q_w(x_{s'},a')

Jika transisi sudah terminal, bagian nilai masa depan dihilangkan.

y=ry = r

Loss dihitung hanya pada komponen aksi yang dipilih. Komponen aksi lain tetap mengikuti prediksi lama agar pembaruan tidak mengubah target seluruh aksi sekaligus.

Target value DQN dihitung dari reward dan maksimum Q pada next state
Target value DQN dihitung dari reward dan maksimum Q pada next state

#Link to this headingRingkasan

Reinforcement Learning mempelajari keputusan dari interaksi. Agen tidak diberi jawaban benar untuk setiap state, tetapi belajar dari reward dan konsekuensi jangka panjang. Policy menentukan aksi, value function menilai masa depan, dan tradeoff eksplorasi serta eksploitasi menentukan kualitas pengalaman yang dikumpulkan.

TD Learning memungkinkan pembelajaran tanpa menunggu episode selesai. SARSA belajar secara on-policy dari aksi yang benar-benar diambil, sedangkan Q-learning belajar secara off-policy menggunakan aksi terbaik pada state berikutnya. DQN memperluas Q-learning dengan neural network, replay memory, dan target value berbasis bootstrapping.