Memahami Dasar-dasar Jaringan Syaraf Tiruan – Menuju AI

Memahami Dasar-dasar Jaringan Syaraf Tiruan – Menuju AI

Author(s): Janik Tinz

Awalnya diterbitkan di Menuju AI.

Pelajari cara kerja jaringan saraf tiruan

Foto oleh Alina Grubnyak di Unsplash

Jaringan syaraf tiruan (JST) biasanya diimplementasikan dengan kerangka kerja seperti TensorFlow, Keras atau PyTorch. Kerangka seperti itu cocok untuk JST yang sangat kompleks. Namun, sebagai ilmuwan data, penting untuk memahami dasar-dasarnya. Artikel ini bertujuan untuk membantu Anda memahami cara kerja jaringan saraf. Pertama, kami memperkenalkan dasar-dasar JST secara umum. Kemudian kita melihat konsep dasar JST secara detail.

Jaringan Syaraf Tiruan pada umumnya

Jaringan saraf tiruan menggunakan biologi sebagai model. Jaringan semacam itu terdiri dari neuron buatan (disebut juga node) dan koneksi (disebut juga edge) di antara neuron-neuron ini. Sebuah jaringan saraf memiliki satu atau lebih lapisan tersembunyi, setiap lapisan terdiri dari beberapa neuron. Setiap neuron pada setiap lapisan menerima keluaran dari setiap neuron pada lapisan sebelumnya sebagai masukan. Setiap input ke neuron diberi bobot. Gambar berikut menunjukkan Jaringan Saraf Maju Umpan. Dalam jaringan seperti itu, koneksi antar node bersifat asiklik.

Jaringan Neural Buatan — Gambar oleh penulisJaringan Neural Buatan — Gambar oleh penulis

Istilah-istilah penting ditandai dengan huruf miring tebal dan akan dibahas lebih rinci dalam artikel ini. Feedforward adalah aliran data input melalui jaringan saraf dari lapisan input ke lapisan output. Saat melewati masing-masing lapisan jaringan, data input diberi bobot di bagian tepi dan dinormalisasi oleh fungsi aktivasi. Pembobotan dan fungsi aktivasi adalah bagian dari neuron. Nilai yang dihitung pada keluaran jaringan memiliki kesalahan dibandingkan dengan nilai hasil sebenarnya. Dalam data pelatihan kami, kami mengetahui nilai hasil sebenarnya. Pengembalian kesalahan disebut backpropagation, di mana kesalahan dihitung per node. Metode penurunan gradien biasanya digunakan untuk meminimalkan istilah kesalahan. Pelatihan jaringan dengan backpropagation diulang sampai jaringan memiliki kesalahan sekecil mungkin.

Kemudian jaringan saraf terlatih dapat digunakan untuk prediksi pada data baru (data uji). Kualitas prediksi tergantung pada banyak faktor. Sebagai data scientist, Anda perlu memperhatikan kualitas data saat melatih jaringan.

Konsep Perceptron

Konsep perceptron pertama kali diperkenalkan oleh Frank Rosenblatt pada tahun 1957. Perceptron terdiri dari neuron buatan dengan bobot dan ambang yang dapat disesuaikan. Untuk pemahaman yang lebih baik, kami menjelaskan cara kerja perceptron dengan gambar berikut.

Konsep Perceptron — Gambar oleh penulisKonsep Perceptron — Gambar oleh penulis

Angka tersebut mengilustrasikan lapisan input dan neuron buatan. Lapisan input berisi nilai input dan x_0 sebagai bias. Dalam jaringan saraf, bias diperlukan untuk menggeser fungsi aktivasi ke sisi positif atau negatif. Perceptron memiliki bobot di tepinya. Jumlah tertimbang dari nilai input dan bobot kemudian dihitung. Ini juga dikenal sebagai agregasi. Hasilnya a akhirnya berfungsi sebagai input ke dalam fungsi aktivasi. Dalam contoh sederhana ini, fungsi langkah digunakan sebagai fungsi aktivasi. Di sini, semua nilai a > 0 dipetakan ke 1 dan nilai a < 0 dipetakan ke -1. Ada berbagai fungsi aktivasi. Tanpa fungsi aktivasi, sinyal keluaran hanya akan menjadi fungsi linier sederhana. Persamaan linier mudah dipecahkan, tetapi kompleksitasnya sangat terbatas dan memiliki kemampuan yang jauh lebih sedikit untuk mempelajari pemetaan fungsi kompleks dari data. Kinerja jaringan seperti itu sangat terbatas dan memberikan hasil yang buruk.

Umpan maju

Feedforward adalah aliran data input melalui jaringan saraf dari lapisan input ke lapisan output. Prosedur ini menjelaskan pada gambar berikut:

Feedforward — Gambar oleh penulisFeedforward — Gambar oleh penulis

Dalam contoh ini, kami memiliki tepat satu lapisan tersembunyi. Pertama, data x masuk ke lapisan input. x adalah vektor dengan titik data individual. Titik data individu diberi bobot dengan bobot tepi. Ada beberapa prosedur berbeda untuk menginisialisasi bobot awal, yang tidak akan kami bahas dalam artikel ini. Langkah ini disebut agregasi. Secara matematis, langkah ini adalah sebagai berikut:

Lapisan Tersembunyi AgregasiLapisan Tersembunyi Agregasi

Hasil dari langkah ini berfungsi sebagai input dari fungsi aktivasi. Rumusnya adalah:

Fungsi Aktivasi f Lapisan TersembunyiFungsi aktivasi f Lapisan Tersembunyi

Kami menunjukkan fungsi aktivasi dengan f. Hasil dari fungsi aktivasi akhirnya menjadi masukan bagi neuron pada lapisan keluaran.

Neuron ini kembali melakukan agregasi. Rumusnya adalah sebagai berikut:

Lapisan Keluaran AgregasiLapisan Keluaran Agregasi

Hasilnya lagi input untuk fungsi aktivasi. Rumusnya adalah:

Fungsi Aktivasi g Lapisan KeluaranFungsi aktivasi f Lapisan Keluaran

Kami menunjukkan output jaringan dengan y. y adalah vektor dengan semua y_k. Fungsi aktivasi pada lapisan tersembunyi dan lapisan keluaran tidak harus identik. Dalam praktiknya, fungsi aktivasi yang berbeda cocok tergantung pada kasus penggunaan.

Metode penurunan gradien

Metode penurunan gradien meminimalkan istilah kesalahan. Dalam konteks ini, fungsi kesalahan diturunkan untuk menemukan minimum. Fungsi kesalahan menghitung kesalahan antara nilai hasil yang dihitung dan benar.

Pertama, arah kemiringan kurva fungsi kesalahan yang paling tajam harus ditentukan. Itu adalah gradien negatif. Gradien adalah turunan multidimensi dari suatu fungsi. Kemudian kita berjalan sedikit ke arah kemiringan negatif dan memperbarui bobotnya. Rumus berikut mengilustrasikan prosedur ini:

Perbarui bobotPerbarui bobot

Segitiga terbalik adalah tanda Nabla dan digunakan untuk menunjukkan turunan vektor. Metode penurunan gradien masih membutuhkan laju pembelajaran (tanda Eta) sebagai parameter transfer. Tingkat pembelajaran menentukan seberapa kuat bobot disesuaikan. E adalah fungsi error yang diturunkan. Seluruh proses ini berulang sampai tidak ada perbaikan yang lebih signifikan.

Backpropagation

Pada prinsipnya, backpropagation dapat dibagi menjadi tiga langkah.

Langkah: Buat fungsi kesalahan Langkah: Hitung istilah kesalahan untuk setiap node pada output dan lapisan tersembunyi Langkah: Perbarui bobot pada tepi

Backpropagation — Gambar oleh penulisBackpropagation — Gambar oleh penulis

Bangun fungsi kesalahan

Nilai yang dihitung pada keluaran jaringan memiliki kesalahan dibandingkan dengan nilai hasil sebenarnya. Fungsi kesalahan digunakan untuk menghitung kesalahan ini. Secara matematis, kesalahan dapat dihitung dengan berbagai cara. Fungsi kesalahan berisi hasil dari lapisan keluaran sebagai masukan. Itu berarti seluruh perhitungan feedforward digunakan sebagai input ke fungsi error. N dari fungsi E menunjukkan kumpulan data ke-n. m mewakili jumlah neuron keluaran.

fungsi kesalahanfungsi kesalahan

Hitung error term untuk setiap node pada output dan hidden layer

Istilah kesalahan ditandai dengan warna oranye pada gambar Backpropagation. Untuk menghitung error term pada output layer, kita harus menurunkan fungsi error sesuai dengan bobot masing-masing. Untuk ini, kami menggunakan aturan rantai. Secara matematis, ini terlihat seperti ini:

Istilah kesalahan Lapisan TersembunyiIstilah kesalahan Lapisan Tersembunyi

Untuk menghitung syarat kesalahan untuk lapisan tersembunyi, kami memperoleh fungsi kesalahan menurut a_j.

Istilah kesalahan Lapisan KeluaranIstilah kesalahan Lapisan Keluaran

Perbarui bobot di bagian tepi

Bobot baru antara lapisan tersembunyi dan lapisan keluaran kini dapat dihitung menggunakan istilah kesalahan masing-masing dan tingkat pembelajaran. Melalui minus (-), kita masuk sedikit ke arah penurunan.

Delta w_jk untuk pembaruan beratDelta w_jk untuk pembaruan berat

Segitiga adalah delta huruf Yunani. Dalam matematika dan ilmu komputer, huruf ini digunakan untuk menunjukkan perbedaannya. Selanjutnya, kita sekarang dapat memperbarui bobot antara input dan lapisan tersembunyi. Rumusnya terlihat seperti ini:

Delta w_ij untuk pembaruan beratDelta w_ij untuk pembaruan berat

Delta digunakan untuk pembaruan bobot, seperti yang ditunjukkan pada gambar di awal bagian Backpropagation.

Kesimpulan

Pada artikel ini, kami telah mempelajari cara kerja jaringan saraf tiruan. Dalam konteks ini, kita telah melihat konsep sentral secara rinci. Feedforward menggambarkan aliran data input melalui jaringan saraf. Backpropagation digunakan untuk menghitung error term per neuron menggunakan metode gradient descent. Konsep-konsep ini juga membangun dasar untuk arsitektur jaringan yang lebih kompleks.

Literatur terkait

Jangan lewatkan cerita saya yang akan datang:

Dapatkan email setiap kali Janik Tinz menerbitkan.

Terima kasih banyak telah membaca. Jika Anda menyukai artikel ini, jangan ragu untuk membagikannya. Ikuti saya untuk konten lainnya. Semoga harimu menyenangkan!

Memahami Dasar-dasar Jaringan Syaraf Tiruan awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson