Minggu, 26 Desember 2021

Reinforcment Learning

 


Pengertian Reinforcement Learning

Reinforcement Learning berbeda berbeda dengan supervised maupun unsupervised learning. Algoritma ini dimaksudkan untuk membuat komputer dapat belajar sendiri dari lingkungan (environtment) melalui sebuah agent. Jadi komputer akan melakukan pencarian sendiri (self discovery) dengan cara berinteraksi dengan environment.

Reinforcement-learning didefinisikan sebagai metode machine learning yang berkaitan dengan bagaimana agent perangkat lunak harus mengambil action di dalam environment. RL adalah bagian dari metode deep learning yang membantu Anda memaksimalkan sebagian dari reward kumulatif.

Karakteristik Reinforcement Learning

Berikut adalah karakteristik penting dari RL




  • Tidak ada supervisor, hanya ada bilangan real atau reward signal
  • Pengambilan keputusan berurutan
  • Waktu memainkan peran penting dalam masalah reinforcement
  • Feedback balik selalu tertunda, tidak seketika
  • Action dari sebuah agent menentukan data selanjutnya yang diterimanya

Reinforcement Learning vs Supervised Learning

RL merupakan salah satu materi machine learning yang cukup berat dipelajari (dari sisi ilmu matematikanya), namun juga menarik dan menantang untuk dikuasai. Perhatikan tabel berikut ini untuk melihat perbedan reinforcement learning dan supervised learning.

ParameterReinforcement LearningSupervised Learning
Gaya KeputusanRL membantu mengambil keputusan secara berurutan.Dalam metode ini, keputusan dibuat atas masukan yang diberikan di awal.
BekerjaBekerja dalam berinteraksi dengan environment.Bekerja pada data set atau sampel data yang diberikan.
Ketergantungan keputusanKeputusan pembelajaran metode RL adalah dependen. Oleh karena itu, kita harus memberi label pada semua keputusan yang berkaitan.Keputusan yang independen satu sama lain, sehingga label diberikan untuk setiap keputusan.
Paling cocokMendukung dan bekerja lebih baik untuk kecerdasan buatan, di mana interaksi manusia lazim.Sebagian besar dioperasikan dengan sistem perangkat lunak atau aplikasi interaktif.
ContohGame caturPengenalan objek

Kapan menggunakan Reinforcement Learning

Berikut adalah alasan utama untuk menggunakan RL:

  • Untuk membantu menemukan situasi mana yang membutuhkan tindakan
  • Membantu menemukan action mana yang menghasilkan reward tertinggi selama periode yang lebih lama.
  • RL juga menyediakan fungsi reward bagi agent pembelajaran.
  • RL memungkinkan untuk mengetahui metode terbaik untuk mendapatkan reward besar.

Kita tidak dapat menerapkan RL dalam semua kasus. Berikut adalah beberapa kondisi ketika kita sebaiknya tidak menggunakan model reinforcement learning.

  • Memiliki cukup data untuk menyelesaikan masalah dengan metode supervised learning
  • Kita perlu ingat bahwa RL membutuhkan banyak komputasi dan memakan waktu terlbih jika ruang action nya besar.

Istilah dalam Reinforcement Learning

Ada beberapa istilah yang familiar dengan RL ini yaitu sebagai berikut:

  • Agent: Sebuah entitas yang diasumsikan melakukan aksi (action) di environment untuk mendapatkan beberapa reward.
  • Environment (e): Skenario yang harus dihadapi agent.
  • Reward (R): Feedback langsung yang diberikan kepada agent ketika dia melakukan action atau tugas tertentu.
  • State (s): Keadaan mengacu pada situasi saat ini yang dikembalikan oleh environment.
  • Plicy (π): Ini adalah strategi yang diterapkan oleh agent untuk memutuskan action selanjutnya berdasarkan state saat ini.
  • Value (V): Diharapkan feedback jangka panjang dengan diskon, dibandingkan dengan feedback jangka pendek.
  • Value Function: Ini menentukan nilai state yang merupakan jumlah total reward.
  • Environtment Model: Ini meniru perilaku lingkungan. Ini membantu kita membuat kesimpulan yang akan dibuat dan juga menentukan bagaimana environment akan berperilaku.
  • Model based: Merupakan metode pemecahan masalah RL yang menggunakan metode berbasis model.
  • Q Value / Action Value (Q): Q value sangat mirip dengan Value. Satu-satunya perbedaan antara keduanya adalah bahwa dibutuhkan parameter tambahan sebagai tindakan saat ini.

Cara Kerja Reinforcement Learning

Selama proses training, komputer dituntun oleh algoritma untuk melakukan kegiatan trial and error, mirip seperti anak kecil yang belajar berjalan. Setiap kali percobaan trial and error dilakukan akan ada feedback untuk komputer. Feedback dari aksi (action) sebelumnya akan digunakan sebagai panduan sekaligus peta (guide and mapping) untuk melakukan aksi selanjutnya.

Mari kita lihat contoh sederhana yang membantu menggambarkan cara kerja RL berupa skenario mengajarkan trik baru kepada seekor kucing

  • Karena kucing tidak mengerti bahasa bahasa manusia, kita tidak dapat memberi tahu kucing secara langsung apa yang harus dilakukan. Sebaliknya, kita akan mengikuti strategi yang berbeda.
  • Kita meniru situasi, dan kucing mencoba merespons dengan berbagai cara. Jika respon kucing sesuai yang diinginkan, kita akan memberikan ikannya.
  • Sekarang setiap kali kucing dihadapkan pada situasi yang sama, kucing tersebut melakukan tindakan serupa dengan lebih antusias dengan harapan mendapatkan lebih banyak reward (makanan).
  • Ini seperti belajar bahwa kucing mendapat “apa yang harus dilakukan” dari pengalaman positif.
  • Pada saat yang sama, kucing juga belajar apa yang tidak boleh dilakukan saat dihadapkan pada pengalaman negatif.
Reinforcement Learning Explained

Pada kasus kucing di atas,

Kucing Anda adalah agen yang berada pada environment. Dalam hal ini, environment itu adalah rumah. Contoh state adalah kucing duduk, dan kita menggunakan kata khusus untuk kucing agar berjalan.
Agent kita bereaksi dengan melakukan transisi tindakan dari satu “state” ke “state” lainnya. Misalnya, kucing berubah dari duduk menjadi berjalan.
Reaksi agent adalah suatu tindakan, dan policy adalah metode pemilihan tindakan yang diberikan suatu state dengan harapan hasil yang lebih baik.
Setelah transisi, kucing mungkin mendapatkan reward atau penalti sebagai imbalan.

Model Pembelajaran Reinforcement Learning

Ada dua model pembelajaran penting dalam reinforcement learning yaitu:

  • Markov Decision Process
  • Q Learning

Markov Decision Process

Markov Decision Process lebih dikenal dengan MDP adalah suatu pendekatan dalam RL untuk mengambil keputusan dalam environment gridworld. Lingkungan gridworld terdiri dari state dalam bentuk grid.

MDP mencoba menangkap dunia dalam bentuk grid dengan membaginya menjadi state, action, model / model transition, dan reward. Solusi untuk MDP disebut policy dan tujuannya adalah menemukan policy yang optimal untuk tugas MDP tersebut. Oleh karenanya parameter berikut digunakan untuk mendapatkan solusi yang diharapkan:

  • Set of states -S
  • Set of actions- A(s), A
  • Transition- T(s,a,s’) ~ P(s’|s,a)
  • Reward- R(s), R(s,a), R(s,a,s’)
  • Policy- n
  • Value- V

MDP jika digambarkan kurang lebih seperti ini:



Cara Kerja Reinforcement Learning
Cara Kerja Reinforcement Learning (MDP)

Algoritma RL akan mencoba berbagai pilihan dan kemungkinan yang berbeda, melakukan pengamatan (observation) dan evaluasi (evaluation) setiap pencapaian. Reinforcement learning dapat belajar dari pengalaman.

Agent di dalam environtment diharuskan mengambil tindakan yang didasarkan pada state saat ini. Jenis pembelajaran ini berbeda dengan supervised learning dalam artian data training pada model sebelumnya memiliki output mapping yang disediakan sedemikian rupa sehingga model mampu mempelajari jawaban yang benar. Sedangkan dalam hal ini RL tidak ada kunci jawaban yang disediakan kepada agent ketika harus melakukan action tertentu. Jika tidak ada set data pelatihan, ia belajar dari pengalamannya sendiri.

Q Learning

Q-learning (disebut sebagai model free algorithm) adalah algoritma RL tanpa model untuk mempelajari policy yang memberi tahu agen tindakan apa yang harus diambil dalam keadaan apa. Q-learning tidak memerlukan model dari environtment, dan dapat menangani masalah dengan transisi stokastik dan reward, tanpa memerlukan adaptasi.

Reinforcement Learning Tidak Perlu Data Set?

Ada berbagai dokumentasi yang menyebutkan bahwa reinforcement learning tidak membutuhkan dataset. Pernyataan ini tidak sepenuhnya benar. Bahwa setiap algoritma machine learning memerlukan input untuk dipelajari selama proses training, namun jenis inputnya bisa saja berbeda-beda.

Pada RL tidak ada kunci jawaban yang diberikan kepada agent ketika harus melakukan tugas tertentu. Jika tidak ada set data pelatihan, ia belajar dari pengalamannya sendiri.

Algoritma Reinforcement Learning

Algoritma yang termasuk reinforcement learning: Q-Learning, State-Action-Reward-State-Action (SARSA), Deep Q Network (DQN), Deep Deterministic Policy Gradient (DDPG), Actor Critic, Monte Carlo Tree Search (MCTS) [1].

Untuk lebih lengkapnya tentang algoritma RL bisa dilihat pada gambar berikut ini:

Reinforcement Learning Algorithm
Reinforcement Learning Algorithm

Penerapan Reinforcement Learning

Google telah mengimplementasikan penerapan reinforcement learning pada sistem Google’s Active Query Answering (AQA) mereka. Jadi chat bot ini akan melakukan formulasi ulang atas pertanyaan yang diketikkan oleh pengguna.

Sebagai contoh, jika anda menanyakan pertanyaan “Kapan hari kemerdekaan RI” maka AQA ajab mereformulasi pertanyaan tersebut menjadi beberapa pertanyaan berbeda misalnya “Tanggal berapa hari kemerdekaan RI”, “Kapan HUT RI”, “Ulang tahun Indonesia”, dll. Proses reformulasi ini telah mengutilisasi model sequence to sequence, tetapi Google telah mengintegrasikan reinforcement learning agar pengguna dapat berinteraksi dengan sistem menjadi lebih baik.

Area penerapan reinforcement learning meliputi:

  • Robotika untuk otomasi industri.
  • Perencanaan strategi bisnis
  • Pembelajaran mesin dan pemrosesan data
  • Membuat sistem pelatihan yang menyediakan instruksi dan materi khusus sesuai dengan kebutuhan siswa.
  • Kontrol pesawat dan kontrol gerak robot

Pendekatan Implementasi

Ada tiga pendekatan untuk mengimplementasikan algoritma Reinforcement Learning (RL) yaitu:

Value Based

Dalam metode RL berbasis nilai (value based), Anda harus mencoba memaksimalkan fungsi nilai V (s). Dalam metode ini, agen mengharapkan pengembalian jangka panjang dari keadaan saat ini berdasarkan policy π.

Policy Based

Dalam metode RL berbasis policy, Anda mencoba menghasilkan aturan sedemikian rupa sehingga action yang dilakukan di setiap state membantu Anda mendapatkan reward maksimum di masa mendatang. Dua jenis metode berbasis policy based adalah:

  • Deterministik: Untuk setiap stateaction yang sama dihasilkan oleh policy π.
  • Stochastic: Setiap action memiliki probabilitas tertentu, yang ditentukan oleh persamaan stochastic policy.

Model Based

Dalam metode RL ini, Anda perlu membuat model virtual untuk setiap environtmentAgent belajar untuk bekerja di environment spesifik tersebut.




K-means Clustering

 

Apa itu K-Means clustering?

K-means clustering adalah salah satu algoritma analisis klaster (cluster analysis) non hirarki. Analisis  klaster  merupakan  salah  satu  alat  untuk  mengelompokkan  data berdasarkan variabel atau feature.

Tujuan dari k-means clustering, seperti metode klaster lainnya, adalah untuk mendapatkan kelompok data dengan memaksimalkan kesamaan karakteristik dalam klaster dan memaksimalkan perbedaan antar klaster.

Algoritma K-means clustering mengelompokkan data berdasarkan jarak antara data terhadap titik centroid klaster yang didapatkan melalui proses berulang. Analisis perlu menentukan jumlah K sebagai input algoritma.

Dalam ranah machine learning, algoritma k-means clustering termasuk ke dalam jenis unsupervised learning.

Contoh aplikasi  K-means

Contoh penggunaan K-means clustering antara lain:

  • Segmentasi pasar (market segmentation)
  • Segmentasi citra
  • Kompresi gambar
  • Klasifikasi citra penginderaan jauh

Seperti metode clustering lainnya, K-means digunakan dalam penelitian eksploratori, confirmatori dan eksplanatori.

Untuk tujuan-tujuan eksploratori,  k-means dapat dimanfaatkan untuk  melengkapi proses Exploratory Data Analysis (EDA), selain menggunakan analisis statistik deskriptif dan visualisasi data.

Sedangkan dalam proses confirmatori dan eksplanatori, K-means clustering dapat digunakan untuk melakukan konfirmasi terhadap teori-teori yang sudah ada.

Selain itu, algoritma ini juga digunakan untuk melakukan identifikasi jika tiba-tiba terjadi perubahan cluster setelah data baru masuk.

Pada tahap terakhir, hasil cluster dapat digunakan sebagai dasar melakukan strategi atau kebijakan terhadap suatu masalah tertentu yang dikaji.

Metode algoritma K-means clustering (step by step)

Algoritma K-means clustering dilakukang dengan proses sebagai berikut:

  1. LANGKAH 1: TENTUKAN JUMLAH CLUSTER (K). Dalam contoh ini, kita tetapkan bahwa K =3 
  2. LANGKAH 2: PILIH TITIK ACAK SEBANYAK K. Titik ini merupakan titik seed dan akan menjadi titik centroid proses pertama. Titik ini tidak harus titik data kita
  3. LANGKAH 3: LABEL SEMUA DATA BERDASARKAN TITIK CENTROID TERDEKAT. Semua data diberikan label mengikuti titik centroid dari setiap klaster. Perhitungan jarak ini bisa menggunakan algoritma jarak tertentu, secara default dilakukan dengan Euclidean Distance
  4. LANGKAH 4: TENTUKAN TITIK CENTROID BARU BERDASARKAN CLUSTER YANG TERBENTUK. Titik centroid selanjutnya “berpindah” ke lokasi centroid setiap cluster yang telah terbentuk.
  5. LANGKAH 5: LABEL ULANG DATA  BERDASARKAN JARAK TERDEKAT TERHADAP CENTROID BARU. Langkah ini merupakan langkah yang sama dengan langkah ketiga. Perhatikan titik data yang diberikan tanda panah, berubah dari cluster merah ke cluster biru.
  6. LANGKAH 6: ULANGI LANGKAH 4 DAN LANGKAH 5 SAMPAI TIDAK ADA PERGERAKAN LAGI. Secara berulang, algoritma akan mencari lokasi centroid baru dan melabel data berdasarkan centroid tersebut sampai mendapat hasil final, yaitu tidak ada lagi perpindahan centroid di setiap cluster. 

Untuk lebih jelasnya, lihat penjelasan dan ilustrasi dalam gambar di bawah ini. Klik kanan dan pilih Open image in new tab untuk gambar yang lebih besar.

K-means clustering
K-means cluster langkah demi langkah

Selain jumlah klaster (K), parameter yang penting yang harus ditentukan oleh analis adalah bagaimana jarak antara titik ke centroid (lihat lankah 3 dan 5).

Dalam k-means clustering, jarak ini dapat diukur menggunakan jarak:

  • Euclidean distance
  • Manhattan distance
  • A squared euclidean distance measure
  • Cosine distance measure 

Pemilihan metode pengukuran jarak ini akan mempengaruhi bagaimana algoritma menghitung kesamaan dalam klaster dan bentuk klaster.

Kita sebagai analis harus dapat menentukan pengukuran jarak mana yang paling sesuai dengan kasus kita. Meskipun demikian, sebagian besar k-means dilakukan dengan pengukuran jarak euclidean (default).

K-means clustering dapat kita gunakan jika kita melakukan pengelompokkan data berdasarkan variabel tertentu, di mana kita belum dapat menentukan kelas outputnya seperti apa (unsupervised learning).

Algoritma ini dapat kita gunakan jika kita dihadapkan pada maslah yang penyelaesaiannya membutuhkan proses segmentasi atau pengelompokkan menjadi subgroup tertentu, seperti analisis pasar dan pelanggan.

Algoritma ini dapat kita gunakan saat melakukan pembacaan intuitif terhadap data yang baru kita dapatkan.

Selain itu, kita juga dapat memanfaatkan algoritma k-means clustering dalam proses Exploratory Data Analysis (EDA) untuk melengkapi proses analisis statistika deskriptif dan visualisasi data.

Syarat-syarat dan asumsi

Untuk dapat menjalankan K-means clustering, ada beberapa asumsi yang harus dipenuhi, di antaranya:

  1. Tidak ada outlier dalam data kita
  2. Sampel kita mewakili keseluruhan populasi.
  3. Tidak ada multikolinieritas antara variabel/ feature

Kelebihan dan keunggulan

Berikut ini adalah kelebihan-kelebihan atau keunggulan algoritma K-means clustering:

  • Algoritma yang sederhana dan mudah dipahami
  • Cepat pemrosesannya
  • Tersedia di berbagai tools atau software
  • Mudah dalam penerapannya
  • Selalu memberikan hasil, apapun datanya.

Kelemahan dan kekurangan

Sedangkan kelemahan atau kekurangan algoritma K-means clustering:

  1. Hasilnya sensitif terhadap jumlah cluster (K). Solusinya, dapat dengan menggunakan Elbow Method, dengan menghitung dan membandingkan nilai WCSS. Lihat penjelasannya di bawah.
  2. Sensitif terhadap inisialisasi “seed”. Untuk mengatasi ini, kita bisa menerapkan algoritma K-means ++
  3. Sensitif terhadap pencilan atau outlier. Solusi untu masalah ini adalah dengan menghapus outlier dengan hati-hati dan berbagai pertimbangan.
  4. Sensitif terhadap data dengan variabel yang memiliki skala berbeda. Maka, sebaiknya kita selalu melakukan scale atau standardisasi data sebelum melakukan k-means clustering. Satu kondisi di mana sebaikany kita tidak melakukan standardisasi data adalah ketika satu variabel memiliki bobot atau nilai penting yang lebih tinggi daripada yang lain.
  5. Mengasumsikan setiap klaster berbentuk menyerupai lingkaran (spherical) dan kesulitan jika bentuk cluster yang memiliki bentuk berbeda.

Random Initialization Trap

Random Initialization Trap adalah sebuah kondisi dimana perbedaan lokasi “seed” pada tahap awal K-means dapat memberikan hasil yang berbeda pula.

Dengan demikian, terdapat kemungkinan kesalahan clustering karena randomnya proses inisialisasi.

Untuk mengatasi kondisi ini, kita dapat menggunakan algoritma K-means++.

Menentukan jumlah cluster (K)

Sebenarnya tidak ada cara yang baku untuk menentukan jumlah cluster (K).

Namun, untuk membantu proses ini, kita bisa menggunakan Elbow Method.

Elbow Method diperoleh dengan melakukan penilaian visual terhadap grafik garis di mana sumbu x berupa jumlah K, dan sumbu Y adalah nilai Within Cluster Sum Square (WCSS)

Apa itu WCSS?

WCSS merupakan sebuah nilai yang diperoleh dari proses berikut:

  1. Pada setiap klaster, hitung jarak setiap titik data ke centroid klaster.
  2. Hitung nilai pangkat dari jarak tersebut.
  3. Lalu jumlahkan totalnya (sum)

Selanjutnya, plotkan ke dalam grafis sumbu Y, dan jumlah K sebagai sumbu X.

Untuk menentukan jumlah K, kita pilih nilai WCSS yang seminimal mungkin.

Namun selalu diingat, bahwa selalu ada trade-off antara nilai WCSS dan jumlah optimal.

Sehingga penting untuk kita untuk mencoba melakukan analisis untuk beberapa nilai K dan membandingkan hasilnya.

Hal yang penting untuk dicatat adalah WCSS dan Elbow Method hanyalah sebuah pendekatan untuk memudahkan kita menntukan jumlah K.

Keputusan mengenai berapa jumlah K tetap berada di tangan kita sebagai analis.

Cara melakukan K-MEANS CLUSTERING (tutorial)

Seperti yang telah saya ceritakan di atas, salah satu kelebihan K-means adalah ketersediaannya dalam berbagai software seperti SPSS, Matlab, R dan Python.

Untuk melakukan K-MEANS CLUSTERING di R, silahkan menggunakan tutorial pada tauatan ini: K-Means clustering in r.

Sedangkan untuk melakukan K-MEANS CLUSTERING di Python, silahkan menggunakan tutorial pada tauatan ini: K-MEANS CLUSTERING in python

Kesimpulan

Pada artikel ini kita belajar mengenai K-means clustering, meliputi pengertiannya, aplikasi, metode, serta kelebihan dan kelemahannya.

K-means clustering adalah salah satu algoritma unsupervised learning yang termasuk ke dalam analisis klaster (cluster analysis) non hirarki yang digunakan untuk  mengelompokkan  data berdasarkan variabel atau feature.


Reinforcment Learning

  Pengertian Reinforcement Learning Reinforcement Learning  berbeda berbeda dengan  supervised  maupun  unsupervised learning . Algoritma in...