Tutorials/Algoritma Back Propagation

From GameDevID

Jump to: navigation, search

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

  1. Mitchel, Tom. (1996). Machine Learning
  2. Kröse, Ben; v.d. Smagt, Patrick. (1996). An Introduction To Neural Networks
  3. Fausett, Laurene. (????).Fundamentals Of Neural Networks : Architecture, Algorithms, And Applications
  4. Freeman, James A.;Skapura, David M. (1991). Neural Networks : Algorithms, Applications, and Programming Techniques. Addison-Wesley Publishing Company Inc.
Personal tools