Multi layer perceptron (MLP) adalah sebuah jaringan saraf yang terdiri dari satu layer input, satu atau lebih hidden layer, dan satu output layer. MLP yang memiliki banyak hidden layer disebut juga deep neural network (DNN).
Sebuah jaringan saraf tiruan seperti MLP mirip dengan seorang bayi yang baru lahir yang belum mengerti apa-apa. Dengan belajar lah seorang bayi lalu dapat meningkat pengetahuannya tentang dunia sekitar . Begitu juga dengan MLP. Ketika kita melatihnya pada sebuah data, kita ingin agar MLP membuat kesalahan yang sangat minim pada prediksinya.
Di tahun-tahun awal, banyak peneliti yang kesulitan menemukan cara untuk melatih MLP. Barulah pada tahun 1986, David Rumelhard, Geoffrey Hinton, dan Ronald Williams mempublikasikan penelitian yang mengenalkan propagasi balik alias backpropagation. Propagasi balik adalah sebuah algoritma untuk melatih MLP yang masih digunakan hingga sekarang.
Propagasi Balik
Propagasi balik adalah teknik yang memungkinkan MLP untuk belajar membuat prediksinya semakin baik.
Cara kerja propagasi balik secara sederhana terdiri dari 3 tahap yaitu:
- Jaringan saraf pada awalnya membuat prediksi
- Keluaran hasil prediksi kemudian diukur tingkat erornya menggunakan loss function.
- Hasil eror kemudian dikirim menggunakan propagasi balik agar jaringan saraf dapat menyesuaikan bobot yang meminimalisir eror dengan optimizer.
Sebuah contoh sederhana dari propagasi balik adalah pada permainan Angry Birds. Kita dapat memenangkan permainan dengan memilih lintasan terbaik untuk mengenai target.
Pada awal permainan MLP akan memilih lintasan secara acak. Pada pemilihan lintasan pertama, MLP sangat mungkin menghasilkan eror berupa tak kena target. Eror kemudian diukur dengan loss function dimana, eror merupakan jarak antara lintasan yang tidak mengenai target, dan target yang dituju. Eror kemudian dikirim dengan propagasi balik dan setiap bobot pada MLP disesuaikan dengan optimizer.
Pada kasus ini, bobot yang perlu dipelajari MLP adalah lintasan terbaik yang harus dilalui untuk memenangkan permainan. Kemudian MLP akan terus belajar dengan propagasi balik hingga akhirnya menemukan bobot/lintasan yang berhasil mengenai target. Mudah bukan.
Untuk memahami cara kerja propagasi balik secara detail maupun rumus matematika dibaliknya, silakan kunjungi tautan ini ya.
Klasifikasi dengan MLP
Setelah kita memahami perceptron, multi layer perceptron, dan propagasi balik, kita dapat melihat bagaimana MLP bekerja. MLP adalah model machine learning kategori supervised. Sehingga MLP dapat dipakai dalam kasus klasifikasi dan regresi.
Kita akan melihat bagaimana MLP bekerja dalam kasus klasifikasi. Pada gambar di bawah terdapat sebuah kasus klasifikasi untuk menentukan apakah seorang murid akan lulus atau tidak dari sebuah kelas. Pada data terdapat 2 atribut yaitu jumlah absensi dan lama waktu yang dihabiskan pada tugas akhir. Dan label pada data ada 2 yaitu lulus dan gagal.
Untuk menyelesaikan masalah di atas kita dapat menggunakan MLP dengan satu hidden layer yang memiliki 4 perceptron. Input pada MLP merupakan 2 atribut pada data dan output memiliki 1 perceptron yang akan mengeluarkan 2 prediksi kelas.
Pada masalah klasifikasi 2 kelas (biner), kita dapat menggunakan 2 perceptron untuk output di mana satu perceptron mewakili sebuah kelas. Namun khusus untuk klasifikasi biner kita dapat menggunakan hanya 1 perceptron pada output layer yang mengeluarkan probabilitas untuk masing-masing kelas (probabilitas>0.5 memprediksi lulus dan probabilitas <0.5 memprediksi tidak lulus). Untuk masalah klasifikasi 3 kelas ke atas, jumlah perceptron pada layer output sebaiknya menyesuaikan jumlah kelas pada data.
Animasi di bawah menunjukan sebuah MLP untuk kasus klasifikasi kelulusan siswa yang kita bahas sebelumnya. Pada MLP di bawah terdapat 2 input dan sebuah perceptron output yang mengeluarkan probabilitas untuk setiap kelas. Untuk hidden layer, MLP di bawah menggunakan 4 buah perceptron.
Tak ada aturan baku tentang pemilihan jumlah hidden layer dan banyak perceptronnya. Jumlah hidden layer dapat disesuaikan dengan kerumitan masalah yang akan diselesaikan.
Pada animasi di atas kita dapat melihat bobot pada setiap garis yang menghubungkan perceptron. Bobot tersebut adalah parameter yang dipelajari oleh MLP agar menghasilkan prediksi yang benar. Proses ini sama dengan contoh Angry Birds sebelumnya di mana bobot pada setiap iterasi akan disesuaikan dengan propagasi balik.
Ketika telah melalui beberapa iterasi kita dapat melihat beberapa garis menjadi lebih tebal dari lainnya. Garis yang lebih tebal menunjukkan bahwa bobotnya lebih tinggi. Dari seluruh bobot yang dipelajari, prediksi MLP pada iterasi terakhir akan menjadi lebih tepat.
Selamat! Anda telah memahami bagaimana MLP bekerja. Pada modul selanjutnya kita akan menulis program MLP dengan TensorFlow