Jangan pernah mengabaikan pelatihan penguatan lagi.

Halo, Habr! Saya mempersembahkan untuk Anda terjemahan artikel “Jangan Pernah Abaikan Belajar Penguatan Lagi” oleh Michel Kana, Ph.D.

Belajar dengan guru dan belajar tanpa guru tidak semuanya. Semua orang tahu itu. Mulailah dengan OpenAI Gym.

gambar

Apakah Anda akan mengalahkan juara catur dunia, backgammon atau pergi?

Ada cara yang akan memungkinkan Anda melakukan ini - pelatihan penguatan.

Apa itu pembelajaran penguatan?


Pembelajaran yang diperkuat adalah pembelajaran untuk membuat keputusan yang konsisten di lingkungan dengan hadiah maksimum yang diterima yang diberikan untuk setiap tindakan.

Tidak ada guru di dalam dirinya, hanya sinyal hadiah dari lingkungan. Waktu penting, dan tindakan memengaruhi data selanjutnya. Kondisi seperti itu menciptakan kesulitan untuk belajar dengan atau tanpa guru.

gambar

Pada contoh di bawah ini, mouse mencoba mencari makanan sebanyak mungkin dan menghindari kejutan listrik jika memungkinkan.

gambar

Seekor tikus bisa berani dan bisa keluar untuk sampai ke tempat dengan banyak keju. Ini akan lebih baik daripada hanya diam dan tidak menerima apa pun.

Mouse tidak ingin membuat keputusan terbaik dalam setiap situasi tertentu. Ini akan membutuhkan pengeluaran mental yang besar darinya, dan itu tidak akan bersifat universal.

Pembelajaran bertulang memberikan beberapa set metode ajaib yang memungkinkan mouse kita belajar cara menghindari kejut listrik dan mendapatkan makanan sebanyak mungkin.

Mouse adalah agen. Labirin dengan dinding, keju, dan pistol bius adalah lingkungan . Mouse dapat bergerak ke kiri, kanan, atas, bawah - ini adalah tindakan .

gambar

Mouse menginginkan keju, bukan kejutan listrik. Keju adalah hadiah . Mouse dapat memeriksa lingkungan - ini adalah pengamatan .

Pelatihan penguatan es


Mari kita tinggalkan mouse di labirin dan beralih ke es. “Musim dingin telah tiba. Anda dan teman-teman Anda melemparkan frisbee di taman ketika Anda tiba-tiba melemparkan frisbee di tengah danau. Pada dasarnya, air di danau itu membeku, tetapi ada beberapa lubang di mana es mencair. ( sumber )

gambar

“Jika kamu menginjak salah satu lubang, kamu akan jatuh ke dalam air es. Selain itu, ada kekurangan besar frisbee di dunia, jadi sangat penting bahwa Anda pergi berkeliling danau dan menemukan drive. "( Sumber )

Bagaimana perasaan Anda dalam situasi yang sama?


Ini adalah tantangan untuk pembelajaran penguatan. Agen mengontrol pergerakan karakter di dunia kisi. Beberapa ubin kotak lumayan, sementara yang lain menyebabkan karakter jatuh ke dalam air. Agen menerima hadiah karena menemukan jalur yang dapat dilalui untuk mencapai tujuan.

Kita dapat mensimulasikan lingkungan seperti itu menggunakan OpenAI Gym - toolkit untuk mengembangkan dan membandingkan algoritma pembelajaran dengan bala bantuan. Ini memberikan akses ke seperangkat lingkungan standar, seperti dalam contoh kita, yang disebut Danau Beku . Ini adalah media teks yang dapat dibuat dengan beberapa baris kode.

import gym from gym.envs.registration import register # load 4x4 environment if 'FrozenLakeNotSlippery-v0' in gym.envs.registry.env_specs: del gym.envs.registry.env_specs['FrozenLakeNotSlippery-v0'] register(id='FrozenLakeNotSlippery-v0', entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name' : '4x4', 'is_slippery': False}, max_episode_steps=100, reward_threshold=0.8196 ) # load 16x16 environment if 'FrozenLake8x8NotSlippery-v0' in gym.envs.registry.env_specs: del gym.envs.registry.env_specs['FrozenLake8x8NotSlippery-v0'] register( id='FrozenLake8x8NotSlippery-v0', entry_point='gym.envs.toy_text:FrozenLakeEnv', kwargs={'map_name' : '8x8', 'is_slippery': False}, max_episode_steps=100, reward_threshold=0.8196 ) 

Sekarang kita membutuhkan struktur yang akan memungkinkan kita untuk secara sistematis mendekati masalah pembelajaran dengan penguatan.

Proses pengambilan keputusan Markov


Dalam contoh kami, agen mengontrol gerakan karakter di dunia kisi, dan lingkungan ini disebut lingkungan yang dapat diamati sepenuhnya.

Karena ubin masa depan tidak bergantung pada ubin masa lalu dengan mempertimbangkan ubin saat ini
(kita berhadapan dengan urutan keadaan acak, yaitu, dengan properti Markov ), oleh karena itu kita berhadapan dengan apa yang disebut proses Markov .

Keadaan saat ini merangkum semua yang diperlukan untuk memutuskan apa langkah selanjutnya, tidak ada yang perlu diingat.

Pada setiap sel berikutnya (yaitu, situasi), agen memilih dengan beberapa kemungkinan tindakan yang mengarah ke sel berikutnya, yaitu, situasi, dan lingkungan merespons agen dengan pengamatan dan penghargaan.

Kami menambahkan fungsi hadiah dan koefisien diskon ke proses Markov, dan kami mendapatkan apa yang disebut proses hadiah Markov . Menambahkan serangkaian tindakan, kami mendapatkan proses pengambilan keputusan Markov ( MDP ). Komponen MDP dijelaskan secara lebih rinci di bawah ini.

Ketentuan


Keadaan adalah bagian dari lingkungan, representasi numerik dari apa yang diamati agen pada titik waktu tertentu dalam lingkungan, keadaan kisi-kisi danau. S adalah titik awal, G adalah target, F adalah es padat tempat agen dapat berdiri, dan H adalah lubang di mana agen akan jatuh jika ia menginjaknya. Kami memiliki 16 negara bagian dalam lingkungan grid 4 x 4, atau 64 negara dalam lingkungan 8 x 8. Di bawah ini kami akan mengambil contoh lingkungan 4 x 4 menggunakan OpenAI Gym.

 def view_states_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.observation_space) print() env.env.s=random.randint(0,env.observation_space.n-1) env.render() view_states_frozen_lake() 

Tindakan


Agen memiliki 4 tindakan yang mungkin, yang direpresentasikan dalam lingkungan sebagai 0, 1, 2, 3 masing-masing untuk kiri, kanan, bawah, atas.

 def view_actions_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.action_space) print("Possible actions: [0..%a]" % (env.action_space.n-1)) view_actions_frozen_lake() 

gambar

Model transisi negara


Model transisi keadaan menjelaskan bagaimana keadaan lingkungan berubah ketika agen mengambil tindakan berdasarkan kondisi saat ini.

Model ini biasanya digambarkan oleh probabilitas transisi, yang dinyatakan sebagai matriks transisi kuadrat dari ukuran N x N, di mana N adalah jumlah keadaan model kami. Ilustrasi di bawah ini adalah contoh dari matriks untuk kondisi cuaca.

gambar

Di lingkungan Danau Beku, kita menganggap bahwa danau itu tidak licin. Jika kita ke kanan, maka kita pasti ke kanan. Oleh karena itu, semua probabilitas adalah sama.

"Kiri" memindahkan agen 1 sel ke kiri atau meninggalkannya di posisi yang sama jika agen berada di perbatasan kiri.

"Kanan" memindahkan 1 sel ke kanan atau membiarkannya dalam posisi yang sama jika agen berada di perbatasan kanan.

"Atas" menggerakkan agen 1 sel ke atas, atau agen tetap di tempat yang sama jika berada di batas atas.

"Turun" memindahkan agen 1 sel ke bawah, atau tetap di tempat yang sama jika berada di batas bawah.

Remunerasi


Di setiap negara bagian F, agen menerima 0 hadiah, di negara bagian H, ia menerima -1, karena, setelah melewati kondisi ini, agen tersebut mati. Dan ketika agen mencapai tujuan, dia menerima hadiah +1.

Karena kenyataan bahwa kedua model, model transisi dan model hadiah, adalah fungsi deterministik, ini membuat lingkungan menjadi deterministik. \

Diskon


Diskon adalah parameter opsional yang mengontrol pentingnya hadiah di masa depan. Itu diukur dalam kisaran dari 0 hingga 1. Tujuan dari parameter ini adalah untuk mencegah total hadiah dari pergi hingga tak terbatas.

Diskon juga memodelkan perilaku agen ketika agen lebih suka hadiah langsung ke hadiah yang mungkin diterima di masa depan.

Nilai


Nilai kekayaan adalah pendapatan jangka panjang yang diharapkan dengan diskon untuk kekayaan tersebut.

Kebijakan (π)


Strategi yang digunakan agen untuk memilih tindakan selanjutnya disebut kebijakan. Di antara semua kebijakan yang tersedia, yang optimal adalah yang memaksimalkan jumlah remunerasi yang diterima atau diharapkan selama episode.

Episode


Episode dimulai ketika agen muncul di sel awal, dan berakhir ketika agen entah jatuh ke dalam lubang atau mencapai sel target.

Mari kita visualisasikan semuanya


Setelah meninjau semua konsep yang terlibat dalam proses pengambilan keputusan Markov, kita sekarang dapat memodelkan beberapa tindakan acak dalam lingkungan 16x16 menggunakan OpenAI Gym. Setiap kali, agen memilih tindakan acak dan melakukannya. Sistem menghitung imbalan dan menampilkan keadaan lingkungan yang baru.

 def simulate_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0'), nb_trials=10): rew_tot=0 obs= env.reset() env.render() for _ in range(nb_trials+1): action = env.action_space.sample() # select a random action obs, rew, done, info = env.step(action) # perform the action rew_tot = rew_tot + rew # calculate the total reward env.render() # display the environment print("Reward: %r" % rew_tot) # print the total reward simulate_frozen_lake(env = gym.make('FrozenLake8x8NotSlippery-v0')) 

gambar

Kesimpulan


Dalam artikel ini, kami meninjau secara singkat konsep dasar pembelajaran penguatan. Contoh kami memberikan pengantar pada toolkit OpenAI Gym, yang membuatnya mudah untuk bereksperimen dengan lingkungan yang dibangun sebelumnya.

Pada bagian selanjutnya, kami akan mempresentasikan bagaimana merancang dan mengimplementasikan kebijakan yang akan memungkinkan agen untuk mengambil serangkaian tindakan untuk mencapai tujuan dan menerima penghargaan seperti mengalahkan juara dunia.

Terima kasih atas perhatian anda

Source: https://habr.com/ru/post/id475236/


All Articles