Tutorials/Algoritma Back Propagation
From GameDevID
Tulisan ini akan membahas cara melakukan implementasi algoritma propagasi balik (back propagation) pada jaringan syaraf tiruan.
Contents |
Pendahuluan
Perihal Algoritma Propagasi Balik
Alat dan Bahan
Alat yang digunakan dalam tutorial ini adalah compiler dalam bahasa C. Bahan yang digunakan dalam tutorial ini adalah koleksi data latihan yang berisi vektor masukan(Xin) dan vektor keluaran (Xout). Pembelajaran yang bersifat supervised merupakan pembelajaran yang mencari fungsi yang memetakan vektor masukan menjadi vektor keluaran (F(Xin)) dengan melakukan regresi.
Langkah-langkah
Struktur Data
Struktur data pada jaringan syaraf tiruan MLP berupa himpunan kelompok neuron yang disebut dengan lapisan (layer).
contoh kode dalam C
typedef struct _layer {
float * neurons; //set of neurons
}Layer;
Setiap lapisan terhubung dengan lapisan dibelakangnya (l ke n terhubung dengan l ke n-1). Lapisan pertama disebut sebagai lapisan masukan. Lapisan masukan hanya menyimpan nilai yang didapat dari data latihan. Penghubung antar lapisan merupakan koleksi bobot yang menghubungkan setiap neuron pada lapisan ke l dengan tiap neuron pada lapisan ke l-1. Lapisan terakhir merupakan lapisan keluaran sedangkan lapisan-lapisan diantara lapisan masukan dan lapisan keluaran disebut sebagai lapisan tersembunyi (hidden layers).
Alur informasi dalam MLP adalah searah maju (masukan->tersembunyi->keluaran). Algoritma propagasi balik merupakan algoritma pembelajaran yang melakukan modifikasi bobot keterhubungan antar neuron yang memiliki alur terbalik dengan alur informasi MLP (modifikasi dilakukan mulai dari bobot lapisan keluaran seterusnya hingga lapisan yang terhubung dengan lapisan masukan). modifikasi bobot dilakukan dengan melakukan penambahan/pengurangan tiap bobot dengan formula tertentu (biasanya menggunakan gradient descent).
typedef struct _layerconnection {
float **weight;
}LayerConnection;
Jika lapisan ke l memiliki M neuron dan lapisan ke l-1 memiliki N neuron maka matriks weight di atas merupakan matriks dua dimensi sebesar MxN.
typedef struct _mlpnetwork {
Layer *layers; //array of layers
LayerConnection *weights; //weight layers
}MLPNet;
Algoritma Jaringan Syaraf Tiruan
Algoritma Pembelajaran Propagasi Balik
Studi Kasus
Referensi
- Mitchel, Tom. (1996). Machine Learning
- Kröse, Ben; v.d. Smagt, Patrick. (1996). An Introduction To Neural Networks
- Fausett, Laurene. (????).Fundamentals Of Neural Networks : Architecture, Algorithms, And Applications
- Freeman, James A.;Skapura, David M. (1991). Neural Networks : Algorithms, Applications, and Programming Techniques. Addison-Wesley Publishing Company Inc.
