🧬Dasar Teori: Artificial Neural Network (ANN)
Last updated
Last updated
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 . 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.
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.
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.
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.
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.
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.
Untuk mengambarkan bagaimana backpropagation digunakan struktur MLP dengan 3 layer seperti pada Gambar 5.
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 , dan .
Gambar dibawah ini merupakan ilustrasi bagaimana proses maju dari input ke output melalui network, Simbol mewakili bobot koneksi antara input jaringan dan neuron pada lapisan input. Simbol merepresentasikan sinyal keluaran neuron .
Ilustrasi Pada Hidden Layer 1,
Ilustrasi Pada Hidden Layer 2,
Ilustrasi Pada Output Layer,
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,
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,
Dengan, --> bobot baru --> bobot lama --> nilai input pada node --> Derivative activation function yang dapat dicari dengan persamaan berikut,