Untuk mengikuti modul ini, Anda harus sudah memahami Q-Learning dan ANN (Artificial Neural Network). Anda juga bisa mengikuti tutorial ANN menggunakan Tensorflow 2 disini.
Deep Q-Learning akan menggunakan informasi state dari environment sebagai input pada ANN. Kita gunakan environment simple dari modul sebelumnya.(lihat gambar dibawah).
Setiap state pada environment didefinisikan dengan pasangan nilai X1 dan X2, yang menjadi input untuk ANN. Dan akan menghasilkan Q value, yang digunakan oleh agent untuk memilih action.
Alasan untuk menggabungkan Q-Learning dengan ANN, karena Q-Learning terbatas untuk environment yang sederhana. Ketika kompleksitas environment meningkat, Q-Learning tidak akan cukup untuk menyelesaikan masalah.
Proses Learning
Pada contoh diatas, setelah diproses melalui hidden layer, ANN akan menghasilkan 4 nilai Q output layer (tidak selalu empat, kebetulan pada contoh hanya ada 4 kemungkinan action, yaitu bergerak ke atas, bawah, kiri atau kanan).
Keempat nIlai Q ini digunakan untuk menghitung Lost Function, yang kemudian digunakan dalam back propagation untuk mengupdate nilai weight.
Tujuannya adalah mencapai nilai Lost mendekati 0.
Acting
Saat melakukan action, ada 2 pertimbangan, yaitu: exploitation atau exploration.
Exploitation akan selalu memilih nilai Q tertinggi. Kelemahannya, ada kemungkinan tidak selalu nilai Q tertinggi adalah action terbaik. Sementara Exploration, tidak akan selalu memilih nilai Q tertinggi, dengan tujuan mengekslpor kemungkinan lainnya.
Ada beberapa pilihan fungsi untuk memilih action:
- Epsilon greedy, akan mengambil best action 1-epsilon. Misal epsilon adalah 10 persen, makan 90% akan dipilih best action. Cenderung untuk melakukan exploitation.
- Epsilon-soft, kebalikan dari epsilon greedy. Cenderung untuk melakukan exploration.
- Softmax (paling umum digunakan), akan memilih action berdasarkan probabilitas. Nilai Q akan diubah dalam range 0-1, jadi ada kemungkinan action yang diambil walaupun probabilitasnya kecil.
Perhatian, jumlah parameter input dan output yang digunakan diatas adalah contoh, menyesuaikan dengan environment yang sederhana. Jumlah parameter input menyesuaikan dengan environment.
JIka Anda berminat membaca lebih lanjut mengenai Epsilon Greedy, bisa lihat disini.
Experience Replay
Experience replay bermanfaat agar neural network dapat mengambil action berdasarkan experience yang pernah dilakukan.
Penggunaan experience replay, selain mempercepat proses learning, dapat mencegah bias (hal ini bisa terjadi jika pada kondisi state cenderung monoton).
Experience replay akan memiliki table data dari terpisah yang berisi state, action, state+1, reward. Data ini akan digunakan secara acak oleh agent untuk menentukan action berikutnya.
Pada prakteknya, Anda bisa mengkombinasikan mengambil learning action dan action berdasarkan experience sebelumnya.