Analisis Performa Algoritma Backpropagation Jaringan Syaraf Tiruan
Oleh Mochammad Haldi Widianto
Kompleksitas Otak Manusia dan Penerapan Jaringan Syaraf Tiruan
Dipercaya bahwa otak manusia adalah objek paling kompleks yang dikenal di alam semesta. Komponen fundamental otak adalah neuron. Ada sekitar 100 miliar neuron, yang dihubungkan oleh sekitar 100 triliun keterkaitan. Terinspirasi oleh prinsip-prinsip komputasi yang dilakukan oleh jaringan saraf biologis otak, sistem komputasi yang disebut jaringan saraf tiruan dikembangkan. Ini adaptif dan belajar dari pengalaman dan contoh. Dari data pelatihan, dapat bereaksi terhadap pola. Jaringan saraf tiruan memiliki aplikasi dalam banyak disiplin ilmu karena kemampuannya untuk memetakan, memodelkan dan mengklasifikasikan proses non linier. Ini termasuk pemrosesan gambar, identifikasi dan kontrol sistem, pengenalan pola, dll. Untuk aplikasi waktu nyata, penghitungan saraf dibuat dengan biaya rendah dan kecepatan tinggi. Belajar dapat didefinisikan sebagai kemampuan untuk bekerja lebih baik pada tugas yang diberikan dengan pengalaman. Proses pembelajaran otak melibatkan perubahan struktur saraf biologis, mengubah kekuatan koneksi tergantung pada aktivitas. Salah satu fitur jaringan syaraf tiruan yang paling menarik adalah kemampuannya untuk belajar. Proses pembelajaran ini dapat dimodelkan dengan memodifikasi bobot koneksi antar node dalam jaringan. Algoritma pembelajaran sangat berguna untuk masalah persepsi yang kompleks yang sulit untuk ditulis oleh seorang programmer.
Misalnya, pengenalan wajah adalah masalah yang sulit bagi manusia untuk diubah secara akurat menjadi kode. Proses memodifikasi bobot dalam koneksi antar lapisan jaringan untuk mencapai keluaran yang diharapkan disebut pelatihan jaringan. Yang terjadi selama pelatihan adalah pembelajaran. Ada algoritma pembelajaran yang berbeda seperti pembelajaran yang diawasi, pembelajaran tanpa pengawasan, dan pembelajaran penguatan. Dalam supervised learning, jaringan menggunakan sekumpulan contoh input-output untuk dilatih. Setelah dilatih, jaringan harus dapat memetakan input baru dan tak terlihat ke output dengan benar. Algoritma backpropagasi adalah jenis pembelajaran yang diawasi. Ini dapat digunakan untuk pelatihan jaringan saraf berlapis-lapis. Karya ini bertujuan untuk menggabungkan keunggulan FPGA dibandingkan jaringan saraf tiruan. Di sini, algoritma backpropagation diimplementasikan di Verilog yang selanjutnya dapat diimplementasikan dalam FPGA untuk mengimplementasikan aplikasi klasifikasi pada jaringan yang dilatihkan. Sebagai contoh, aplikasi pengklasifikasi gambar dapat dikembangkan menggunakan ekstraksi dan reduksi fitur dengan transformasi wavelet diskrit dan pelatihan lebih lanjut menggunakan backpropagation.
Unit dasar jaringan saraf tiruan adalah neuron buatan. Ini mewakili unit pemrosesan jaringan. Model neuron buatan yang diusulkan oleh McCulloch Pitts ditunjukkan pada Gambar 1. Model ini banyak digunakan dalam aplikasi klasifikasi pola jaringan saraf tiruan:
Gambar 1. Tipe Artificial Neural Network
Gambar 2. Arsitektur Single neuron
BackPropagation adalah metode pelatihan jaringan saraf tiruan yang diawasi. Ini mengevaluasi kontribusi kesalahan dari setiap neuron setelah satu set data diproses. Tujuan backpropagation adalah untuk memodifikasi bobot untuk melatih jaringan neural untuk memetakan input arbitrer ke output dengan benar. Perceptron berlapis-lapis dapat dilatih menggunakan algoritma backpropagasi. Tujuannya adalah untuk mempelajari bobot untuk semua keterkaitan dalam jaringan berlapis-lapis. Minimum fungsi kesalahan dalam ruang bobot dihitung menggunakan metode penurunan gradien. Bobot resultan yang menawarkan fungsi kesalahan minimum merupakan solusi dari masalah pembelajaran.
Langkah-langkah yang terlibat dalam algoritma backpropagasi tercantum di bawah ini:
- Ambil satu set pelatihan, masukan, bobot awal dan keluaran.
- Masukkan input set pelatihan ke depan.
- Cari tahu total masukan bersih untuk setiap neuron lapisan tersembunyi.
- Squash total input bersih menggunakan fungsi aktivasi, yaitu fungsi sigmoid.
- Ulangi proses pada lapisan keluaran.
- Hitung kesalahan pada lapisan keluaran.
- Lulus mundur untuk kesalahan dan bobot baru.
- Proses dilanjutkan hingga error berkurang secara signifikan.
Arsitektur jaringan saraf tiruan Feed forwarding dengan 4 masukan, hidden layer dengan empat neuron sigmoid dan lapisan keluaran dengan satu neuron sigmoid diimplementasikan. Aplikasi neural network yang berbeda membutuhkan jumlah lapisan dan node yang berbeda di setiap lapisan. Dengan bertambahnya jumlah hidden layer, bobot yang dimodifikasi akan lebih akurat, sehingga kinerja meningkat. Algoritma backpropagasi diimplementasikan pada jaringan karena merupakan alat dasar untuk aplikasi klasifikasi pola JST.
Dasar-Dasar Jaringan Syaraf Tiruan
Jaringan syaraf tiruan terinspirasi oleh cara kerja otak manusia. JST terdiri dari neuron-neuron yang saling terhubung dalam lapisan-lapisan, yaitu lapisan input, lapisan tersembunyi, dan lapisan output. Setiap neuron menerima sinyal dari neuron lain, memproses sinyal tersebut, dan mengirimkan hasilnya ke neuron berikutnya. Proses pembelajaran dalam JST terjadi melalui penyesuaian bobot yang menghubungkan neuron-neuron tersebut.
1. Arsitektur Jaringan
JST dapat memiliki berbagai arsitektur, mulai dari jaringan feedforward sederhana hingga jaringan konvolusional yang kompleks. Arsitektur yang dipilih tergantung pada jenis data dan tugas yang ingin diselesaikan. Jaringan feedforward, di mana data mengalir dari input ke output tanpa umpan balik, adalah jenis yang paling umum digunakan untuk algoritma backpropagation.
2. Fungsi Aktivasi
Fungsi aktivasi memainkan peran penting dalam JST. Fungsi ini menentukan apakah neuron harus diaktifkan atau tidak, berdasarkan input yang diterima. Fungsi aktivasi yang umum digunakan termasuk fungsi sigmoid, ReLU (Rectified Linear Unit), dan tanh. Pemilihan fungsi aktivasi dapat mempengaruhi kecepatan konvergensi dan kemampuan jaringan dalam memodelkan hubungan non-linear.
Algoritma Backpropagation
Prinsip Kerja
Algoritma backpropagation terdiri dari dua fase: forward pass dan backward pass.
- Forward Pass: Data input dikirimkan melalui jaringan, menghasilkan output. Selama proses ini, setiap neuron menghitung output berdasarkan bobot yang ada dan fungsi aktivasi yang digunakan.
- Backward Pass: Setelah output dihasilkan, kesalahan dihitung dengan membandingkan output yang dihasilkan dengan output yang diinginkan. Algoritma kemudian menghitung gradien dari fungsi loss (kerugian) menggunakan aturan rantai untuk menentukan bagaimana bobot harus disesuaikan. Bobot diperbarui berdasarkan gradien ini untuk meminimalkan kesalahan.
Rumus Pembaruan Bobot
Pembaruan bobot pada setiap neuron dilakukan dengan rumus:
wij(new)=wij(old)−η⋅∂L∂wijw_{ij}^{(new)} = w_{ij}^{(old)} – \eta \cdot \frac{\partial L}{\partial w_{ij}}wij(new)=wij(old)−η⋅∂wij∂L
Di mana:
- wijw_{ij}wij adalah bobot antara neuron iii dan jjj
- η\etaη adalah laju pembelajaran
- ∂L∂wij\frac{\partial L}{\partial w_{ij}}∂wij∂L adalah gradien dari fungsi loss terhadap bobot
Faktor yang Mempengaruhi Performa Algoritma
1. Laju Pembelajaran
Laju pembelajaran (η\etaη) menentukan seberapa besar perubahan yang diterapkan pada bobot setelah setiap iterasi. Laju pembelajaran yang terlalu tinggi dapat menyebabkan pelatihan yang tidak stabil dan bahkan menyebabkan divergensi, sedangkan laju yang terlalu rendah dapat memperlambat konvergensi dan meningkatkan waktu pelatihan.
2. Ukuran Batch
Proses pelatihan dapat dilakukan dengan menggunakan batch penuh (batch gradient descent) atau dengan pembaruan per contoh (stochastic gradient descent). Ukuran batch yang berbeda dapat mempengaruhi kestabilan pembaruan bobot dan konvergensi.
3. Fungsi Aktivasi
Pemilihan fungsi aktivasi yang tepat sangat penting untuk memastikan kemampuan jaringan dalam belajar dari data. Beberapa fungsi aktivasi dapat menyebabkan masalah seperti vanishing gradient, yang menghambat pelatihan jaringan yang lebih dalam.
4. Arsitektur Jaringan
Arsitektur yang dipilih, termasuk jumlah lapisan tersembunyi dan neuron di setiap lapisan, dapat mempengaruhi kemampuan jaringan dalam menangkap kompleksitas data. Jaringan yang terlalu sederhana mungkin tidak cukup untuk menangkap pola yang ada, sedangkan jaringan yang terlalu kompleks dapat mengalami overfitting.
5. Regularisasi
Regularisasi, seperti L1 atau L2, membantu mencegah overfitting dengan menambahkan penalti pada bobot yang besar. Teknik regularisasi dapat membantu meningkatkan generalisasi model terhadap data baru.
Referensi :
- Amrutha J , Remya Ajai A S “Performance analysis of Backpropagation Algorithm of Artificial Neural Networks in Verilog” Department of Electronics & Communication Engineering, Amrita Vishwa Vidyapeetham, Amritapuri, India, 2018 3rd IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT-2018), MAY 18th & 19th 2018
Comments :