Mengenal Reinforcement Learning dalam Machine Learning

reinforcement learning
Photo by Andy Kelly on Unsplash

Machine learning dan artificial intelligence merupakan bidang yang berpengaruh dalam data science. Bila dibandingkan dengan supervised dan unsupervised learning, tampaknya reinforcement learning merupakan hal yang tidak terlalu umum. Meskipun demikian, pemanfaatannya sudah populer untuk memecahkan masalah dalam dunia game development, bisnis, hingga pengembangan artificial general intelligence atau AGI. Namun, ketiganya tetap menawarkan solusi terkini bagi pengolahan big data secara signifikan.

Reinforcement learning merupakan salah satu jenis algoritma pembelajaran machine learning yang bisa membuat mesin atau perangkat lunak bekerja secara otomatis untuk menentukan perilaku ideal sehingga bisa memaksimalkan kinerja dari algoritma. Contoh dari hasil reinforcement learning yang umum diketahui oleh banyak orang adalah mobil self driving yang dimiliki oleh Tesla. 

Penasaran ingin lebih tahu lebih banyak mengenai reinforcement learning? Simak artikel ini sampai akhir! 

BACA JUGA: Rekomendasi Tools Machine Learning untuk Data Engineer

Apa Itu Reinforcement Learning?

Reinforcement learning adalah salah satu penguatan machine learning yang berfungsi membuat serangkaian keputusan. Agent akan belajar untuk mencapai tujuan dalam lingkungan yang kompleks dan tidak pasti. Melalui pembelajaran ini, banyak percobaan dan pencarian yang dilakukan untuk menunjukkan kreativitas mesin. Tindakan sesuai yang diambil berdasarkan pengolahannya berpotensi memaksimalkan feedback pada situasi tertentu. Hal ini tentu melibatkan berbagai software dan mesin untuk menemukan behavior atau jalur terbaik dalam mengatasi kondisi yang bersangkutan. Cara kerja pembelajaran ini tentu berbeda karena memberikan kesempatan belajar kepada agent akibat tidak adanya training dataset.

Proses belajar dari mesin atau agent akan berinteraksi dengan lingkungan berbeda dan mencoba berbagai metode untuk menghasilkan tujuan tertentu. Agent akan memperoleh “penghargaan” atau “hukuman” saat mencapai keadaan diinginkan atau tidak diinginkan. Selain itu, agent bertugas mempelajari keadaan yang mengarah menuju hasil terbaik maupun yang harus dihindari. Keberhasilan tersebut akan diukur dengan Q. Tidak heran kalau reinforcement learning juga biasa dikenal dengan istilah Q-learning sehingga agent dapat belajar secara berulang untuk mencapai skor lebih tinggi. Alih-alih mencari hubungan dalam suatu dataset, pembelajaran ini akan mengoptimalkan pengalaman di masa lalu dan menciptakan yang baru.

Contoh Reinforcement Learning

Robotika

Robot yang telah melewati proses pre-programmed behavior sangat berguna ketika berada di lingkungan terstruktur. Di dunia nyata, sebenarnya respons lingkungan pada produk robot cenderung tidak pasti. Berdasarkan skenario tersebut, RL akan menyediakan cara paling efisien untuk membuat robot serbaguna. Hal ini berhasil diterapkan pada robotic path planning untuk menemukan jalur yang lebih cepat, smooth, dan mudah dinavigasi. Kriteria lainnya adalah bebas dari tabrakan dan kompatibel dengan dinamika robot.

Autonomous driving

Sistem kemudi otonom harus melakukan berbagai persepsi dan tugas perencanaan di dalam lingkungan yang tidak pasti. Beberapa tugas khusus berbasis reinforcement learning berfungsi merencanakan jalur kendaraan serta prediksi gerakan. Masing-masing prediksi yang dipakai berkaca pada sistem yang semakin berkembang sampai hari ini.

AlfaGo

AlfaGo
                           Contoh Reinforcement Learning (Source: Wikimedia Commons)

Salah satu permainan yang kompleks dan strategis adalah board game yang bernama Go. Kompleksitasnya berasal dari fakta bahwa ada 10 pangkat 270 kemungkinan dari kombinasi papan tersebut. Angkanya beberapa kali lipat lebih banyak bila dibandingkan dengan kombinasi papan catur. Pada 2016, agent Go yang berbasis pembelajaran reinforcement bernama AlphaGo berhasil mengalahkan pemain Go terhebat. Sama seperti pemain manusia, ia belajar dari pengalaman dan bermain bersama pemain internasional.

Komponen Penyusun Reinforcement Learning

Ada beberapa komponen penyusun reinforcement learning, diantaranya adalah: 

Policy

Komponen pertama adalah policy atau kebijakan yaitu perilaku agen dalam waktu tertentu. Pelaku ini mencerminkan pengaruh kondisi lingkungan terhadap perilaku yang muncul. Komponen kebijakan ini merupakan inti dari reinforcement learning karena bisa mempengaruhi perilaku agen secara langsung.

Reward Signal

Komponen kedua adalah reward signal yaitu hadiah yang bisa didapatkan dari tujuan reinforcement learning. Di setiap kondisi, lingkungan akan mengirimkan komponen reward signal kepada agen, reward yang didapatkan ini bisa menentukan perilaku agen. Tentunya, tujuan utama saat melakukan reinforcement learning adalah memperbanyak reward. 

Value Function

Komponen ketiga adalah value function atau fungsi nilai yaitu sumber informasi mengenai kondisi atau situasi dan jumlah reward yang didapatkan agen. Komponen value function ini bergantung pada reward.  

Model of The Environment

Komponen terakhir adalah model of the environment atau model lingkungan yaitu agen berperilaku sesuai dengan kondisi lingkungan mereka. Hal ini sangat erat kaitannya dengan kemampuan agen dalam memprediksi kondisi lingkungan untuk merencanakan tindakan selanjutnya. 

Workflow Reinforcement Learning

Ciptakan environment

Pertama, kamu perlu mendefinisikan lingkungan sebagai tempat mengoperasikan agent RL. Workflow ini juga sudah termasuk interface antara agent dengan lingkungannya. Biasanya, lingkungan dapat berupa model simulasi atau sistem fisik yang nyata. Simulasi dapat menjadi langkah pertama terbaik karena lebih aman sekaligus memungkinkan terjadinya eksperimen lebih lanjut.

Tentukan reward

Selanjutnya, tentukan reward signal yang digunakan agent dalam mengukur kinerja terhadap sasaran tugas dan penghitungannya pada lingkungan. Reward shaping kemungkinan cenderung rumit dan memerlukan iterasi agar dapat dilakukan dengan benar.

Buat agent

Buat agent yang terdiri dari policy dan reinforcement learning training algorithm. Kamu perlu memilih cara untuk mewakili policy, seperti penggunaan neural networks atau look-up tables. Lanjutkan dengan pemilihan training algorithm paling sesuai. Terkadang, representasi yang berbeda sering dikaitkan dengan kategori tertentu. Namun secara umum, sebagian besar modern reinforcement learning bergantung pada neural networks. Kinerjanya bermanfaat bagi tindakan yang lebih besar atau masalah yang kompleks.

Latih dan validasi agent

Siapkan opsi pelatihan, seperti stopping criteria kemudian latih agent untuk menyesuaikan policy. Pastikan untuk melaksanakan validasi trained policy setelah pelatihan berakhir. Bila perlu, tinjau kembali pilihan desain seperti reward signal dan policy architecture lalu latih kembali. Reinforcement learning umumnya dikenal sebagai sample inneficient. Aplikasi yang kompleks bisa lebih cepat karena ada paralel pelatihan pada beberapa CPU, GPU, serta kluster komputer.

Deploy the policy

Lakukan penerapan terhadap penggunaan trained policy representation, misalnya pada kode C/C++ atau CUDA. Di titik ini, policy atau kebijakan adalah sistem decision-making yang berdiri sendiri. Pelatihan agent memakai RL termasuk proses yang berulang. Keputusan dan hasil di tahap berikutnya bisa mengharuskan pengembalian menuju tahap awal dari alur kerja pembelajaran. Bila proses training tidak menyatu dengan kebijakan optimal dalam jangka waktu wajar, maka kamu mungkin harus memperbarui hal-hal berikut:

  • Training settings
  • Reinforcement learning algorithm configuration
  • Policy representation
  • Reward signal definition
  • Action and observation signals
  • Environment dynamics

BACA JUGA: Cara Kerja dan Praktik Terbaik Extract Transform Load (ETL)

Jenis-jenis Reinforcement Learning

Jenis-jenis Reinforcement Learning

                                   Jenis Reinforcement Learning (Source: ProgramsBuzz)

Secara umum, ada dua jenis reinforcement learning yaitu positif dan negatif. Berikut penjelasan lengkapnya:

Positive Reinforcement

Jenis positive reinforcement adalah konsep yang menyatakan bahwa perilaku yang membawa dampak positif akan kembali dilakukan oleh agen karena pada akhirnya akan membawa dampak positif juga. 

Negative Reinforcement

Kebalikan dari positive reinforcement adalah negative reinforcement yaitu konsep yang menyatakan bahwa perilaku yang sama tidak akan diulangi kembali karena akan berdampak negatif. 

Kelebihan Reinforcement Learning 

Reinforcement learning bisa diaplikasikan secara luas dan memberikan dampak baik bagi beberapa aspek. Berikut beberapa contoh kelebihan dari reinforcement learning

Fokus Pada Masalah Secara Menyeluruh

Beda dengan sistem belajar konvensional yang dibagi menjadi sub-sub terpisah, reinforcement learning bekerja untuk mengoptimalkan reward dalam jangka panjang. Maka dari itu, tujuan utama reinforcement learning adalah fokus pada masalah secara menyeluruh dan fokus mendapatkan reward dalam jangka panjang. 

Berlangsung di Lingkungan Dinamis

Selanjutnya, algoritma reinforcement learning dirancang untuk bisa merespon perubahan-perubahan yang terjadi di lingkungan. Maka dari itu, reinforcement learning tetap bisa berlangsung meskipun di lingkungan yang sangat dinamis. Bahkan, reinforcement learning memiliki kemampuan adaptasi yang sangat tinggi di berbagai kondisi. 

Tidak Memerlukan Tahapan Pengumpulan Data Secara Terpisah

Dalam reinforcement learning ada istilah yang disebut data training yaitu pengalaman pembelajaran agen sehingga pengumpulan data bisa secara langsung tanpa harus terpisah atau harus dimasukkan ke dalam algoritma. Oleh karena itu, beban reinforcement learning juga lebih sedikit dibandingkan yang lainnya.

Belajar Reinforcement Learning dan Jenis Machine Learning Lainnya

Reinforcement learning merupakan metode pembelajaran yang perlu kamu kenal dalam dunia machine learning. Kinerja agent yang positif dan negatif dapat mengembangkan teknologi berdasarkan pengalaman. Setiap hasil dan tujuan yang dicapai juga bermanfaat dalam kehidupan manusia sehari-hari. Jika kamu ingin belajar dan praktik reinforcement learning secara langsung bersama pakar di bidangnya, kamu bisa bergabung di kelas Bootcamp Data Engineer Digital Skola.

Di kelas ini kamu akan mempelajari skill yang dibutuhkan untuk jadi data engineer seperti:

  • Python
  • Git & Github
  • SQL
  • Linux/Unix, System Administration & Docker
  • Kubernetes
  • Java
  • Hadoop, Mapreduce Fundamentals & Operations
  • Machine Learning

Tidak hanya belajar hardskill, kamu juga akan dibantu mengasah softskill, membangun portofolio, membentuk professional branding hingga mendapatkan bantuan penyaluran kerja. Penasaran? Klik button di bawah ini!