Cukup lama juga tulisan saya tentang “Seputar Jaringan Syaraf Tiruan” yaitu enam tahun yang lalu. Salah satu komentar yang cukup menarik adalah tentang bagaimana komponen JST yang berfungsi training mengirimkan hasil trainingnya (bobot dan bias) ke network JST agar bisa dipergunakan oleh aplikasi web-based yang memiliki JST di dalamnya. Sedikit berbeda dengan publikasi saya tentang Web-GIS yang baik training maupun simulating berada di desktop-GIS (Fig.1).
Dengan memanfaatkan fasilitas training JST Matlab, kita dapat mengetahui bobot dan bias hasil training yang telah dilakukan (lihat postingan sebelumnya mengenai cara membaca hasil pelatihan JST). Dengan memanfaatkan cara membaca bias dan bobot, kita dapat mengirimkannya ke JST yang telah dirakit terlebih dahulu. Postingan kali ini bermaksud sama-sama berdiskusi mengenai teknik untuk mengirimkan bias dan bobot hasil training ke JST yang ada.
A. Training JST dengan fungsi newff
Agar lebih gampang, contoh training dapat dilihat di help matlab (ketik saja help newff di command window Matlab). Atau copas script berikut ini:
-
load simplefit_dataset
-
net = newff(simplefitInputs,simplefitTargets,20);
-
net = train(net,simplefitInputs,simplefitTargets);
-
simplefitOutputs = sim(net,simplefitInputs);
Setelah enter ditekan, jendela pelatihan akan muncul seperti gambar di bawah ini. Tunggu sesaat hingga proses pelatihan selesai dijalankan.
B. Latihan Meng-update bobot JST Hasil Pelatihan
Untuk melihat variabel-variabel hasil pelatihan, kita dapat lakukan dengan menekan net di command window (jika variabel JST-nya “net” dan jika tidak, sesuai dengan namanya, biasanya network1 (default) jika dibuat di nntool).
-
sim(net,94)
-
ans =
-
4.9494
-
Jawaban1=ans
Kode di atas adalah hasil awal JST ketika diberi masukan “94”, yaitu sebesar 4.9494. Berikutnya kita misalnya telah melakukan training lagi dengan data yang lebih baru dan akan meng-update dengan data baru. Sementara data yang lama adalah sebagai berikut:
-
>> net.IW
-
ans =
-
[20×1 double]
-
[]
-
-
>> cell2mat(ans)
-
ans =
-
28.3617
-
27.9082
-
-27.8863
-
26.6165
-
23.2698
-
-15.0705
-
-20.3582
-
22.0298
-
28.3998
-
28.0369
-
-27.9783
-
27.8605
-
27.8120
-
-27.7361
-
28.0819
-
-28.8486
-
-29.2218
-
26.3938
-
26.8540
-
28.1526
-
IWW=ans;
Di sini kita bisa mencoba melatih JST dengan data latih baru. Tetapi untuk gampangnya, sebagai perbandingan saja, misalnya IW di baris pertama misalnya “nol” (berwarna merah pada IW di atas). Insert dengan kode berikut:
-
IWW(1,1)=0
Sehingga baris pertama IW menjadi nol. Kembalikan variabel “mat” di atas menjadi “cell” mengingat bobot di Matlab adalah dalam bentuk cell.
-
IWWnew=mat2cell(IWW)
-
net.IW(1,1)=IWWnew
Di sini variabel baru IWWnew (konversi mat menjadi cell) disisipkan di net.IW yang merupakan bobot input JST.
-
>> sim(net,94)
-
ans =
-
4.0079
-
Jawaban2=ans
Di sini kita uji dengan data test yang sama dengan sebelumnya (“94”), hasilnya ternyata berbeda dengan sebelumnya.
-
>> [jawaban1;jawaban2]
-
ans =
-
4.9494
-
4.0079
Perhatikan Jawaban1 dan Jawaban2 yang berbeda. Artinya JST sudah berubah karena update bobot di bagian input (net.IW). Untuk bias dan bobot sisi hidden layer dapat dilakukan dengan cara yang sama. Untuk mengirimkannya lewat mekanisme database, ada baiknya membaca buku yang telah kami tulis sebelumnya. Selamat mencoba.
Pak, saya mau nanya.
Bisa gak nilai bobot dan bias hasil pelatihan JSR di Matlab dijadikan parameter untuk pemograman di visual studio?
Jika bisa caranya gimana ya Pak?
Terima kasih.
Maksudnya bobot dan bias hasil pelatihan JST Pak.
bisa saja, jadi matriks. saya belum pernah coba perhitungan matriks di visual studio
Terima Kasih Pak.
Saya mau nanya lagi, kalau membuat persamaan Yk langsung di Matlab gimana ya Pak? Soalnya saya perlu nilai Yk sampai proses feedforward saja. Terima Kasih Pak.
Yk itu persamaan yang mana ya
Yang ini Pak.
Yk= f(y_net k)=1/1+e^-y_net_k kalau pakai fungsi aktivasi sigmoid biner.
Atau ada cara lain gak Pak buat nyari atau menghitung keluaran JST yg sesuai dengan fungsi aktivasi sigmoid biner? Soalnya saya bingung, setiap saya coba perkalian untuk output JST selalu gagal.
Terima kasih Pak.
coba dulu fungsi Yk nya, test dengan angka tertentu, hasilnya harus benar. Atau kalau pakai Matlab gunakan saja fungsi sigmoid bawaannya.
Assalamualaikum pak.
Saya ingin bertanya lebih lanjut tentang JST menggunakan matlab pak, ini terkait tugas akhir saya pak. Jadi apakah saya boleh menghubungi bapak via email atau wa pak?
maaf saya mau tanya untuk struktur jaringan lebih dari 1 lapisan tersembunyi dengan menggunakan nntool, cara menampilkan bobot akhirnya bagaimana ya? terima kasih
agak rumit karena bentuknya kurung kali kurung kali kurung. Lihat buku neural network design karangan Hagan. udah banyak ebooknya di internet