#8 Artificial Neural Network (ANN) — Part 3 (Teori Dasar Multi Layer Perceptron Backpropagation)

Muhammad Yunus
5 min readApr 11, 2020

--

Teori dasar Multi Layer Perceptron — Backpropagation

Source [link]

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.

Gambar 1. Logika XOR [link]

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.

  1. 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].

Gambar 2. Forward Pass MLP [link]

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 uadalah,

Sehingga ∂uₖ / vⱼₖ dapat dituliskan sebagai berikut,

hasil turunan tersebut didapatkan,

dan ∂E / udapat ditulis ulang menjadi,

karena ϕₒ bergantung pada fungsi udan ϕₒ adalah sigmoid/logistic funtion, maka hasil penurunan ∂E / uakan 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.

--

--

Muhammad Yunus
Muhammad Yunus

Written by Muhammad Yunus

IoT Engineer, Software Developer & Machine Learning Enthusiast

No responses yet