Bagaimana menyesuaikan bobot ke dalam nilai-Q dengan pendekatan fungsi linear

12

Dalam pembelajaran penguatan, pendekatan fungsi linear sering digunakan ketika ruang keadaan besar hadir. (Ketika mencari tabel menjadi tidak layak.)

Bentuk nilai dengan pendekatan fungsi linear diberikan olehQ-

Q(s,Sebuah)=w1f1(s,Sebuah)+w2f2(s,Sebuah)+,

di mana adalah bobot, dan adalah fitur.wsayafsaya

Fitur-fiturnya sudah ditentukan oleh pengguna. Pertanyaan saya adalah, bagaimana bobot diberikan?

Saya telah membaca / mengunduh beberapa slide kuliah tentang learning dengan perkiraan fungsi. Sebagian besar dari mereka memiliki slide tentang regresi linier yang mengikutinya. Karena mereka hanya slide, mereka cenderung tidak lengkap. Saya bertanya-tanya apa hubungan / hubungan antara kedua topik tersebut.Q-

cgo
sumber

Jawaban:

11

Perkiraan fungsi pada dasarnya adalah masalah regresi (dalam arti umum, yaitu menentang klasifikasi di mana kelas diskrit), yaitu seseorang mencoba mempelajari pemetaan fungsi dari input (dalam kasus Anda f(s,Sebuah) ) ke nilai sebenarnya output Q(s,Sebuah) . Karena kita tidak memiliki tabel lengkap dari semua nilai input / output, tetapi sebaliknya belajar dan memperkirakan Q(s,Sebuah) pada saat yang sama, parameter (di sini: bobot w ) tidak dapat dihitung secara langsung dari data. Pendekatan umum di sini adalah menggunakan gradient descent .

Berikut ini adalah algoritma umum untuk mempelajari Q(s,Sebuah) dengan Value Function Approximation

  • Init parameter-vector secara acak (misalnya dalam [0,1])w=(w1,w2,....,wn)
  • Untuk setiap episode:

    1. s keadaan awal episode
    2. Sebuah tindakan yang diberikan oleh kebijakanπ (merekomendasikan:ϵ -senang)
    3. Mengambil tindakan Sebuah , mengamati reward r dan negara berikutnya s
    4. ww+α(r+γmSebuahxSebuahQ(s,Sebuah)-Q(s,Sebuah))wQ(s,Sebuah)
    5. ss

    Ulangi 2-5 hingga s adalah terminal

dimana ...

  • α[0,1] adalah tingkat belajar
  • γ[0,1] adalah tingkat diskonto
  • mSebuahxSebuahQ(s,Sebuah) adalah aksiSebuah dalam keadaans memaksimalkanQ(s,Sebuah)
  • wQ(s,Sebuah)adalah gradienQ(s,Sebuah)dalamw. Dalam kasus linear Anda, gradien hanyalah sebuah vektor(f1(s,Sebuah),...,fn(s,Sebuah))

Pembaruan parameter / bobot (langkah 4) dapat dibaca sedemikian rupa:

  • (r+γmSebuahxSebuahQ(s,Sebuah))-(Q(s,Sebuah)) adalah kesalahan antara prediksiQ(s,Sebuah) dan nilai "aktual" untukQ(s,Sebuah) , yang merupakan hadiahr diperolehsekarang PLUShadiah yang diharapkan, diskon setelah kebijakan serakahsesudahnya γmSebuahxSebuahQ(s,Sebuah)
  • Jadi parameter / vektor-bobot digeser ke arah paling curam (diberikan oleh gradien wQ(s,Sebuah) ) dengan jumlah kesalahan yang diukur, disesuaikan dengan α .

Sumber utama:

Bab 8 Perkiraan Nilai dari buku Reinforcement Learning (disarankan secara keseluruhan) : Pengantar oleh Sutton dan Barto (Edisi Pertama). Algoritma umum telah dimodifikasi seperti yang biasa dilakukan untuk menghitung Q(s,Sebuah) bukan V(s) . Saya juga telah menghapus jejak kelayakan e untuk fokus pada gradient descent, karenanya hanya menggunakan satu langkah cadangan

Lebih banyak referensi

steffen
sumber
2
Tautan rusak untuk Barto & Sutton! Sekarang di sini -> incompleteideas.net/book/the-book.html :) dan sebagai ebook incompleteideas.net/book/ebook tetapi saya tidak tahu di mana untuk menemukan file mobi
grisaitis
1
Bukankah gradien Q (s, a) dalam kaitannya dengan vektor kolom wa di mana setiap elemen adalah fi (s, a), alih-alih menjadi penjumlahan dari semua fi seperti yang Anda katakan? Tujuannya adalah bahwa setiap bobot diubah sesuai dengan nilai fitur yang digandakan.
Miguel Saraiva
@MiguelSaraiva Ya, perbaiki. Terima kasih banyak.
steffen