Kebijakan

Kebijakan deterministik dan stokastik sebagai objek yang dipelajari RL.

Daftar isi

Kebijakan, atau policy, adalah objek yang dipelajari agen untuk menentukan aksi pada setiap state, dan karenanya menjadi inti dari seluruh algoritma reinforcement learning. Topik ini membedakan dua bentuk kebijakan, yaitu kebijakan deterministik yang memetakan setiap state ke satu aksi, dan kebijakan stokastik yang memberikan distribusi probabilitas atas aksi. Pembaca akan melihat bagaimana kebijakan stokastik direpresentasikan sebagai matriks, dinormalisasi, lalu diambil sampelnya untuk menghasilkan aksi konkret pada MDP kecil.

Kebijakan sebagai pemetaan dari state ke aksi#

Sebuah kebijakan adalah fungsi π\pi yang memetakan state ke aksi atau ke distribusi aksi. Bentuk deterministik menulis π(s)=a\pi(s) = a, yaitu satu aksi pasti untuk setiap state. Bentuk stokastik menulis π(a∣s)\pi(a \mid s), yaitu peluang memilih aksi aa saat berada di state ss, sehingga ∑aπ(a∣s)=1\sum_a \pi(a \mid s) = 1 untuk setiap ss. Kebijakan deterministik merupakan kasus khusus dari kebijakan stokastik, yaitu ketika satu aksi memiliki peluang satu dan lainnya nol.

Dua bentuk ini bukan sekadar variasi notasi. Kebijakan stokastik memungkinkan eksplorasi secara alami karena agen masih dapat memilih aksi dengan peluang rendah, sehingga tidak terjebak pada keputusan awal yang buruk. Algoritma gradien kebijakan yang akan dibahas di modul lanjutan justru memerlukan kebijakan stokastik agar gradien terdefinisi secara mulus. Sebaliknya, kebijakan deterministik lebih sederhana dan sering muncul sebagai hasil akhir pembelajaran, yaitu ketika agen sudah yakin akan aksi terbaik untuk setiap state.

Matriks kebijakan dan normalisasi#

Pada MDP dengan state dan aksi diskret, kebijakan stokastik dapat disimpan sebagai matriks berukuran ∣S∣×∣A∣|S| \times |A|, di mana baris ii adalah distribusi aksi untuk state ii. Matriks ini sering berasal dari preferensi mentah, misalnya keluaran jaringan saraf sebelum diaktifkan dengan softmax. Untuk menjadi kebijakan yang sah, setiap baris harus dinormalisasi sehingga jumlahnya satu. Normalisasi ini menjaga interpretasi probabilistik agar tetap konsisten dengan definisi π(a∣s)\pi(a \mid s).

Setelah dinormalisasi, kebijakan siap diambil sampelnya. Untuk setiap state, sebuah aksi diambil sesuai distribusi barisnya, sehingga aksi dengan peluang lebih besar lebih sering muncul namun aksi minor tetap memiliki kesempatan. Proses ini disebut sampling kebijakan, dan inilah yang menghasilkan aksi konkret yang diberikan agen kepada lingkungan pada setiap langkah. Karena bersifat acak, dua episode dengan kebijakan stokastik yang sama dapat menghasilkan lintasan yang berbeda.

Membangun dan mengambil sampel kebijakan stokastik#

Blok berikut membangun matriks preferensi mentah untuk empat state dan dua aksi, menormalisasinya menjadi kebijakan π(a∣s)\pi(a \mid s), lalu mengambil sampel empat aksi per state. Seed acak ditetapkan agar keluaran dapat direproduksi.

python kebijakan.py
import warnings
warnings.filterwarnings("ignore")
import numpy as np

np.random.seed(0)

states = ["s0", "s1", "s2", "s3"]
actions = ["kiri", "kanan"]

# Preferensi mentah per state (belum ternormalisasi)
prefs = np.array([
    [1.0, 3.0],
    [2.0, 2.0],
    [1.0, 4.0],
    [1.0, 1.0],
], dtype=float)

# Kebijakan stokastik pi(a|s): normalisasi tiap baris
pi = prefs / prefs.sum(axis=1, keepdims=True)

print("Kebijakan stokastik pi(a|s):")
print("        kiri    kanan")
for i, s in enumerate(states):
    print(f"{s}    {pi[i,0]:.4f}  {pi[i,1]:.4f}")

# Sampel 4 aksi per state untuk memperlihatkan keacakan
print()
print("Sampel 4 aksi per state (seeded):")
for i, s in enumerate(states):
    samples = [actions[np.random.choice(len(actions), p=pi[i])] for _ in range(4)]
    print(f"  pi({s}) -> {', '.join(samples)}")
text Keluaran
Kebijakan stokastik pi(a|s):
        kiri    kanan
s0    0.2500  0.7500
s1    0.5000  0.5000
s2    0.2000  0.8000
s3    0.5000  0.5000

Sampel 4 aksi per state (seeded):
  pi(s0) -> kanan, kanan, kanan, kanan
  pi(s1) -> kiri, kanan, kiri, kanan
  pi(s2) -> kanan, kanan, kanan, kanan
  pi(s3) -> kanan, kanan, kiri, kiri

Keluaran tersebut memperlihatkan dua hal. Pertama, baris kebijakan yang sudah dinormalisasi berjumlah satu, sehingga setiap baris merupakan distribusi probabilitas yang sah. State s0 lebih memilih aksi kanan dengan peluang 0,75, sedangkan state s1 dan s3 membagi peluang sama rata. Kedua, hasil sampling mencerminkan distribusi tersebut namun tidak menyalinnya persis karena jumlah sampel kecil. Pada state s0 dan s2 yang sangat condong ke kanan, keempat sampel jatuh pada kanan, sedangkan pada state s1 dan s3 yang seimbang, sampel terbagi antara kiri dan kanan. Dengan jumlah sampel yang jauh lebih besar, frekuensi empiris akan konvergen ke peluang dalam matriks.

Mengapa kebijakan dipelajari, bukan dirancang#

Pada masalah sederhana, kebijakan dapat dirancang dengan tangan berdasarkan intuisi. Namun, pada masalah yang kompleks, jumlah state dan aksi terlalu besar untuk dirancang manual, dan interaksi antar langkah membuat keputusan lokal yang tampak baik justru merugikan jangka panjang. Peran reinforcement learning adalah mempelajari kebijakan dari pengalaman, yaitu dengan menyesuaikan parameter kebijakan agar return yang diharapkan meningkat. Kebijakan stokastik menjadi representasi yang nyaman untuk pembelajaran karena parameternya dapat berupa bobot numerik yang digradienkan secara kontinu.

Dalam kerangka ini, kebijakan adalah objek yang berubah selama pembelajaran, sedangkan MDP tetap. Agen mengubah kebijakannya agar fungsi nilai, yaitu ukuran kualitas kebijakan, semakin tinggi. Topik berikutnya membahas fungsi nilai secara langsung, yaitu bagaimana perilaku yang baik diberi skor numerik yang dapat dioptimalkan. Dengan demikian, kebijakan dan fungsi nilai menjadi dua sisi yang saling melengkapi dalam pembelajaran reinforcement learning.

Kesalahan umum#

Lupa menormalisasi baris kebijakan. Penyebabnya, preferensi mentah langsung dipakai sebagai peluang tanpa pembagian. Akibatnya, jumlah peluang tidak sama dengan satu sehingga sampling bias dan perhitungan expected value menjadi salah. Perbaikannya, bagilah setiap baris dengan jumlahnya, atau gunakan fungsi softmax yang menjamin keluaran berupa distribusi probabilitas.

Menganggap kebijakan deterministik selalu lebih baik. Penyebabnya, kebijakan deterministik tampak lebih sederhana dan deterministik terlihat seperti hasil optimal. Akibatnya, eksplorasi hilang dan agen terjebak pada keputusan awal yang mungkin buruk. Perbaikannya, gunakan kebijakan stokastik selama fase pembelajaran agar eksplorasi tetap terjadi, dan baru beralih ke kebijakan deterministik pada fase evaluasi atau setelah konvergensi.

Ringkasan#

  • Kebijakan π\pi memetakan state ke aksi, baik secara deterministik π(s)=a\pi(s) = a maupun stokastik π(a∣s)\pi(a \mid s) sebagai distribusi probabilitas.
  • Pada MDP diskret, kebijakan stokastik disimpan sebagai matriks ∣S∣×∣A∣|S| \times |A| yang baris-barisnya berjumlah satu setelah dinormalisasi.
  • Sampling kebijakan menghasilkan aksi konkret dari distribusi baris, sehingga aksi mayoritas lebih sering muncul namun aksi minor tetap mungkin.
  • Kebijakan adalah objek yang dipelajari agen, sementara kebijakan stokastik memungkinkan eksplorasi dan gradien yang mulus pada algoritma gradien kebijakan.

Referensi#