Algoritma RBM (Restricted Boltzmann Machine) 2


Algoritma RBM (Restricted Boltzmann Machine) adalah salah satu algoritma berbasis jaringan yang dapat digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai penentuan penyakit berdasarkan gejala yang tersedia.
Algoritma ini memiliki kemiripan dengan algoritma berbasis jaringan saraf pada umumnya, hanya saja dalam struktur jaringan ini tidak ada istilah input dan output, hal ini disebabkan karena arus perpindahan data terjadi secara 2 arah. Oleh sebab itu dalam struktur jaringannya hanya terdapat 2 macam node, yaitu node terlihat / tampak, dan node tidak terlihat / tersembunyi. Karena arus datanya terjadi secara 2 arah, apabila input A menghasilkan output B, maka apabila nilai B dimasukkan sebagai output dan dilacak balik, maka akan hampir selalu menghasilkan input A.



Diketahui terdapat 2 jenis penyakit, yaitu penyakit A dan B
Penyakit A memiliki gejala batuk, pilek, demam
Penyakit B memiliki gejala pusing, mual, diare
Diasumsikan terdapat 10 data gejala yang dialami pasien dengan data sebagai berikut

Nama Pasien Batuk Pilek Demam Pusing Mual Diare
Pasien A 1 1 1 0 0 0
Pasien B 0 0 0 1 1 1
Pasien C 1 1 0 0 0 0
Pasien D 0 0 0 0 1 1
Pasien E 1 0 1 0 1 0
Pasien F 0 1 0 1 0 1
Pasien G 1 1 1 0 0 1
Pasien H 1 0 0 1 1 1
Pasien I 0 0 1 0 0 0
Pasien J 0 0 0 1 0 0

Contoh data awal adalah sebagai berikut:



Selanjutnya ada 2 orang pasien baru yang memiliki gejala yang berbeda dengan data yang tersedia
Maka tentukan jenis penyakit untuk pasien ini
Diasumsikan data pasien tersebut adalah sebagai berikut:

Nama Pasien Batuk Pilek Demam Pusing Mual Diare
Pasien K 1 1 1 0 0 0
Pasien L 0 0 0 1 1 1

Contoh data baru adalah sebagai berikut:



Sebelum masuk kedalam langkah-langkah pembahasan algoritma, ada beberapa konstanta atau parameter yang harus diketahui, yaitu:
* Tentukan Jumlah node tampak yang digunakan dalam sistem RBM
Diasumsikan dalam kasus ini jumlah node tampak adalah 6 node karena mengikuti jumlah gejala yang tersedia

* Tentukan Jumlah node tersembunyi yang digunakan dalam sistem RBM
Diasumsikan dalam kasus ini jumlah node tersembunyi adalah 2 node karena mengikuti jumlah penyakit yang tersedia

* Tentukan rasio pembelajaran yang digunakan pada saat tahap pelatihan
Diasumsikan dalam kasus ini nilai rasio pembelajaran adalah 0.01
Semakin rendah nilainya, maka proses pelatihan akan membutuhkan waktu yang semakin lama,
Tetapi semakin tinggi nilainya, maka proses pelatihan tidak akan dapat menemukan nilai yang diperkirakan bisa lebih baik

* Tentukan jumlah iterasi yang digunakan pada saat tahap pelatihan
Diasumsikan dalam kasus ini jumlah iterasi adalah 1000


Langkah-langkah penggunaan algoritma ini adalah

1. Lakukan proses pencarian nilai bobot dan bias terbaik
Metode yang digunakan adalah RBM (Restricted Boltzmann Machine) dengan teknik pelatihan menggunakan algoritma CD-1 (Contrastive Divergence, single-step)
Penjelasan lebih detail tentang fungsi pelatihan akan dijelaskan pada perhitungan dibawah ini

Memasuki perhitungan utama dari proses pelatihan RBM

1a. Inisialisasi indeks urutan data

* Lakukan perhitungan sebanyak jumlah iterasi

1b. Lakukan pengacakan indeks urutan data
agar data yang diambil tidak selalu berurutan dari awal sampai akhir

* Lakukan perhitungan sesuai dengan urutan data yang telah diacak

1c. Masukkan nilai dari data latih terpilih ke dalam node tampak

1d. Hitung masing-masing nilai node tersembunyi apabila menggunakan nilai input node tampak
* Hitung total perkalian antara node tampak dengan bobotTT nya
* Tambahkan nilai bias
* Dapatkan nilai probabilitas dengan menggunakan fungsi sigmoid
* Bangkitkan nilai acak dan tentukan nilai jawaban berdasarkan probabilitas tersebut

* Gunakan fungsi ini untuk menghitung nilai fungsi Sigmoid, yang diperoleh dengan rumus:
f(x) = 1.0 / (1.0 + Exp(-x))

1e. Hitung nilai gradien positif, yaitu operasi outer product dari node tampak dan node tersembunyi

* Gunakan fungsi ini untuk melakukan operasi Outer Product

1f. Lakukan perhitungan nilai node tampak apabila menggunakan nilai node tersembunyi yang baru saja didapatkan
* Hitung total perkalian antara node tersembunyi dengan bobotTT nya
* Tambahkan nilai bias
* Dapatkan nilai probabilitas dengan menggunakan fungsi sigmoid
* Bangkitkan nilai acak dan tentukan nilai jawaban berdasarkan probabilitas tersebut

1g. Lakukan perhitungan nilai node tersembunyi apabila menggunakan nilai node tampak yang baru saja didapatkan
* Hitung total perkalian antara node tampak’ dengan bobotTT nya
* Tambahkan nilai bias
* Dapatkan nilai probabilitas dengan menggunakan fungsi sigmoid
* Bangkitkan nilai acak dan tentukan nilai jawaban berdasarkan probabilitas tersebut

1h. Hitung nilai gradien negatif, yaitu operasi outer product dari node tampak’ dan node tersembunyi’

1i. Lakukan update nilai bobot dengan menggunakan rasio pembelajaran dan selisih antara nilai gradien positif dan negatif

1j. Lakukan update nilai bias node tampak dengan menggunakan rasio pembelajaran dan selisih antara nilai node tampak dan node tampak’

1k. Lakukan update nilai bias node tersembunyi dengan menggunakan rasio pembelajaran dan selisih antara nilai node tersembunyi dan node tersembunyi’

* Setelah mendapatkan nilai bobot dan bias, maka lakukan perhitungan untuk masing-masing data baru

2. Lakukan perhitungan dari masing-masing data baru menggunakan nilai bobot dan bias yang sudah ditemukan
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini

* Gunakan fungsi ini untuk menghitung nilai node tersembunyi apabila menggunakan nilai node tampak

3. Hitung jumlah kriteria antara penyakit A dan B
Jika jumlah kriteria penyakit A lebih dari penyakit B, maka jawaban penyakit adalah penyakit B
Jika jumlah kriteria penyakit B lebih dari penyakit A, maka jawaban penyakit adalah penyakit A
Jika jumlah kriteria penyakit A sama dengan penyakit B, maka jawaban penyakit adalah penyakit A dan B
Selain itu, maka jawaban penyakit adalah tidak diketahui


Hasil akhir adalah: (klik untuk perbesar gambar)


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

2 pemikiran di “Algoritma RBM (Restricted Boltzmann Machine)