🧬Dasar Teori: Artificial Neural Network (ANN)

Apa itu Artificial Neural Network (ANN)

Jika perceptron dianalogikan dengan neuron, maka pada ANN atau jaringan saraf tiruan (JST) dapat dianalogikan sebagai otak yang terdiri dari kumpulan neuron. Pada otak manusia terdiri dari milyaran neuron dengan triliunan sinapsis, pada ANN direpesrentasikan dengan graph terarah dari neuron-neuron buatan. Edge dari graph diberi nilai bobot (w)(w) . Bobot tersebut merupakan parameter model yang harus dipelajari. Pada Gambar 1 merupakan pemetaan neural network dari otak manusia menjadi neural network yang ada pada machine learning. setiap neuron dinotasikan dengan node dan akson dinotasikan dengan edge.

Gambar 1. Ilustrasi Neural Network

Multi Layer Perceptron (MLP)

Multi-layer perceptron(MLP) merupakan salah satu algoritma ANN yang memiliki beberapa layer dari neuron yang menyerupai perceptron. Pada MLP memiliki setidaknya 3 layer ataupun lebih dengan setiap layer akan terhubung dengan layer berikutnya. Layer minimal yang ada pada MLP adalah 3 layer yaitu input layer, satu buah hidden layer, dan output layer. Setiap lapisan atau layer memiliki banyak perceptron yang menerima input dari lapisan sebelumnya dan mengeluarkan output aktivasi untuk lapisan selanjutnya. Struktur MLP dengan satu hidden layer dapat dilihat pada Gambar 2.

Gambar 2. Ilustrasi MLP 1 Hidden Layer (Credit: Hassan Mohamed Hassan, 2015)

Input Layer

Lapisan ini adalah lapisan yang menerima input langsung dari data yang dimasukkan. Jumlah node input yang ada pada input layer tegantung pada banyaknya fitur yang digunakan untuk pelatihan. Output dari lapisan input ini akan menjadi input dari hidden layer.

Hidden Layer

Hidden Layer merepresentasikan variabel laten; layer ini adalah layer yang memproses input sebelum diteruskan ke layer output. Semakin hidden layer, umumnya akurasi dari ANN juga semakin bagus, namun hal ini juga dapat menyembabkan peningkatan biaya komputasi. Hidden layer pada lapisan terakhir akan terhubung dengan output. Selanjutnya, dalam arstektur ANN memungkinkan memiliki lebih dari 1 hidden layer. Gambar 3 merupakan arstitektur ANN kompleks yang memiliki lebih dari 1 hidden layer.

Gambar 3. Ilustrasi ANN dengan Lebih dari 1 Hidden Layer (Credit: Laura Zingretti, 2019)

Output Layer

Layer ini adalah layer yang akan menjadi luaran dari MLP yang dibuat. Perceptron pada lapisan ini menerima input dari hidden layer. Jumlah perceptron dari lapisan ini bergantung pada alternatif output yang diinginkan, diubah dalam bentuk biner. Misal jika hanya prediksi benar salah, maka hanya diperlukan satu perceptron pada lapisan output yang menghasilkan luaran 0 dan 1.

Pelatihan Pada ANN

Setelah membuat struktur dari ANN baik berupa perceptron maupun Multi-layer Perceptron, proses selanjutnya yang dilakukan adalah melakukan pelatihan. ANN perlu dilatih agar dapat menghasilkan output yang diinginkan. Proses pelatihan ini ada dua tahap yang dilakukan secara berulang-ulang sampai menghasilkan ANN yang diinginkan. Dua tahapan ini adalah forward propagation (propagasi maju) dan backward propagation (propagasi mundur). Ilustrasi proses pelatihan JST bisa dilihat pada Gambar 4.

Gambar 4. Ilustrasi Pembelajaran ANN (Credit: Analytics Vidhya)

ANN yang saat ini banyak digunakan adalah gabungan dari forward propagation dan backward propagation hal ini didasari karena jika hanya menggunakan forward propagation akan sangat bergantung pada inisialisasi awal pemberian nilai pada bobot. Permasalahan biasanya muncul Ketika data training yang mempunyai banyak fitur yang artinyya node input juga banyak hal ini akan membuat banyanya bobot yang harus di inisialisai. Sehingga pada prakteknya saat ini banyak digunakan gabungan gabungan iterasi berulang dari forward propagation dan backward propagation yang biasa disebut dengan backpropragation. Backpropagation biasanya digunakan bersamaan dengan algoritma optimasi seperti gradient descent.

Ilustrasi Backpropagation

Untuk mengambarkan bagaimana backpropagation digunakan struktur MLP dengan 3 layer seperti pada Gambar 5.

Gambar 5. Contoh Arsitektur MLP dengan 3 Layer

Setiap edge yang menghubungkan baik input ke hidden layer ataupun hidden layer ke output memiliki bobotnya masing-masing. Ilustrasi bobot,

Pada Gambar 5 dapat dilihat bahwa data inputan memiliki dua buah fitur yaitu x1x_1, dan x2x_2.

Proses Forward Propagation

Gambar dibawah ini merupakan ilustrasi bagaimana proses maju dari input ke output melalui network, Simbol wxmnw_{x_m}n mewakili bobot koneksi antara input jaringan xmx_m dan neuron nn pada lapisan input. Simbol yny_n merepresentasikan sinyal keluaran neuron nn.

Ilustrasi Pada Hidden Layer 1,

Ilustrasi Pada Hidden Layer 2,

Ilustrasi Pada Output Layer,

Proses Backward Propagation

Gambar dibawah ini merupakan ilustrasi bagaimana proses mundur dari output menuju ke input melalui network.

Pada langkah algoritma berikutnya, keluaran jaringan y dibandingkan dengan nilai aktual yang diinginkan (target), nilai target didapatkan dari kumpulan data training. Perbedaan antara tagert dengan output tersebut disebut error (𝛿) dari neuron lapisan output. Error juga dapat dicari dengan menggunakan squared error cost function (𝛿) dengan persamaan,

E=12i=1n(yiy^i)2E=\frac{1}{2}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2

Nilai bobot yang digunakn untuk menghitung setiap node pada hidden layer memiliki nilai yang sama pada saat forward propagation, yang membedakan hanyalah arah perhitungannya dari output menjuju input dan juga bobot yang pada forward propagation dikalikan dengan nilai node setiap layer, pada backward propagation bobot dikalikan dengan error.

Ilustrasi Backpro Pada Hidden Layer 2,

Ilustrasi Backpro Pada Hidden Layer 1,

Update Bobot,

Ketika error untuk setiap neuron/node telah dihitung, maka bobot dari setiap input node dapat dilakukan modifikasi/perubahan. Dengan menggunakan persamaan,

wxi=wxi+αδidf(e)dexiw'_{x_i}=w_{x_i}+\alpha\delta_i\frac{df(e)}{de}x_i

Dengan, wxiw'_{x_i} --> bobot baru wxiw_{x_i} --> bobot lama xix_i --> nilai input pada node xx df(e)de\frac{df(e)}{de} --> Derivative activation function yang dapat dicari dengan persamaan berikut, ddxf(x)=f(x)(1f(x))\frac{d}{dx}f(x)=f(x)(1-f(x))

Last updated

Was this helpful?