#8 Artificial Neural Network (ANN) — Part 3 (Teori Dasar Multi Layer Perceptron Backpropagation)
Teori dasar Multi Layer Perceptron — Backpropagation
Setelah sebelumnya kita bahas Single Layer Perceptron disini.
Sekarang kita akan lanjutkan dengan bahasan Multi Layer Perceptron (MLP). MLP merupakan Supervised Machine Learning yang dapat mengatasi permasalahan yang tidak lineary separable. Sehingga kelebihan ini dapat digunakan untuk menyelesaikan permasalahan yang tidak dapat diselesaikan oleh Single Layer Perceptron seperti yang sudah kita bahas sebelumnya. Problem sederhana yang dapat diselesaikan MLP diantaranya permasalahan logika XOR.
Terilhat pada Gambar 1, Logika XOR tidak dapat dapat dibagi menjadi dua class dengan cara menarik satu garis lurus saja. Hal ini yang menyebabkan Logika XOR tidak dapat diselesaikan oleh SLP, sehingga kita akan gunakan MLP untuk penyelesaianya.
Multi Layer Perceptron Algorithm — Training Model
Paling tidak ada tiga tahap untuk proses Training Model MLP, diantaranya.
- Forward Pass
Pada tahap ini, kita hanya meneruskan input kedalam model dan mengalikannya dengan bobot (w) dan menambahkan bias (b) pada setiap layer sehingga pada akhirnya dapat digunakan untuk menemukan output model [3].
Untuk menghitung output neuron ke-j pada hidden layer, menggunakan formula berikut,
Untuk menghitung output neuron ke-k pada output layer, menggunakan formula berikut,
dimana,
- xᵢ merupakan neuron ke-i pada input layer
- zⱼ merupakan neuron ke-j pada hidden layer
- yₖ merupakan neuron ke-k pada output layer
- wᵢⱼ merupakan ‘weight’ untuk neuron ke-i pada input layer dan neuron ke-j pada hidden layer
- vⱼₖ merupakan ‘weight’ untuk neuron ke-j pada hidden layer dan neuron ke-k pada output layer
- bⱼ adalah bias untuk menghitung zⱼ
- bₖ adalah bias untuk menghitung yₖ
- ϕₕ adalah activation function pada hidden layer
- ϕₒ adalah activation function pada output layer
2. Loss Calculate
Pada bagian ini nilai ‘weight’ untuk tiap koneksi neuron akan diupdate sehingga output value mendekati target value. Jika pada Single Layer Perceptron kita menggunakan Delta Rule untuk mengevaluasi error, maka pada Multi Layer Perceptron kita akan menggunakan Backpropagation. Backpropagation menghitung gradien dari loss function untuk tiap ‘weight’
menggunakan chain rule yang dapat menghitung gradien satu layer pada satu waktu saat iterasi mundur dari layer terakhir untuk menghindari redundant calculation[4].
Pada regression analysis permasalahan seperti squared error dapat digunakan sebagai loss function, sedangkan untuk classification dapat menggunakan categorical crossentropy [4].
untuk sekarang kita akan gunakan squared error sebagai loss function. Squared error dapat disebut sebagai error function, ditulis dalam bentuk berikut,
karena diatas kita sudah mendefinisikan yₖ, maka error function dapat ditulis menjadi,
dimana,
- E = Error Function
- tₖ = Target value ke-k
- yₖ = Output value ke-k
3. Backward Pass
Pada tahap ini error yang didapat dari proses sebelumnya digunakan untuk mengoreksi ‘weight’ menggunakan backpropagation. Backpropagation akan menghitung gradien loss funtion untuk tiap weight yang digunakan pada output layer (vⱼₖ) begitu pula weight pada hidden layer (wᵢⱼ).
Syarat utama penggunaan backpropagation adalah activation function harus non-linear dan differentiable [4]. Sehingga kita akan menggunakan Logistic/Sigmoid Function untuk keperluan ini.
Turunan pertama dari logistic function adalah,
Besarnya perubahan pada weight dirumuskan sebagai berikut,
dimana,
- Δvⱼₖ = besarnya perubahan weight
- η = learning rate
- ∂ = turunan parsial,
- ∂E / ∂vⱼₖ = turunan parsial fungsi error E terhadap weight vⱼₖ
Kita akan coba terapkan Backpropagation untuk menghitung weight vⱼₖ (output layer) , langkah yang sama dapat dilakukan untuk weight wᵢ ⱼ (hidden layer). Turunan parsial fungsi Error E terhadap weight vⱼₖ dirumuskan sebagai berikut,
dimana uᵒₖ adalah,
Sehingga ∂uᵒₖ / ∂vⱼₖ dapat dituliskan sebagai berikut,
hasil turunan tersebut didapatkan,
dan ∂E / ∂uᵒₖ dapat ditulis ulang menjadi,
karena ϕₒ bergantung pada fungsi uᵒₖ dan ϕₒ adalah sigmoid/logistic funtion, maka hasil penurunan ∂E / ∂uᵒₖ akan mengikuti bentuk hasil penurunan fungsi logistic diatas,
sehingga besarnya perubahan weight Δvⱼₖ dapat ditulis menjadi,
Besarnya weight baru dapat dituliskan sebagai berikut,
ϕₕ’ merupakan turunan fungsi aktivasi, inilah mengapa fungsi aktivasi harus bisa diturunkan (differentiable) jika menggunakan Backpropagation.
Nah sekian untuk bahasan teori Multi Layer Perceptron dengan Backpropagation. Selanjutnya akan dibahas implementasinya pada pemrograman python.
Terima kasih.