Assalamualaikum dan selamat berjumpa kembali.

Pada artikel yang lepas, kita telah menggunakan perceptron sebagai contoh algoritma di dalam proses machine learning. Seperti yang anda ketahui, algoritma perceptron ini telah di cipta hampir 60 tahun yang lampau. Ia tidak lah cukup berkuasa untuk menyelesai keperluan masa kini yang kompleks dan mencabar. Malahan, kelemahan perceptron yang di temui oleh Marvin Minsky and Seymour Papert pada tahun 1969 telah menyebabkan algoritma berdasarkan pada konsep neural network ini terkubur hampir dua dekad lamanya.

Kenapa? <(^,^)>

Jika anda membaca artikel saya sebelum ini, ada dinyatakan bahawa perceptron hanya mampu melakukan klasifikasi binari yang datanya adalah lineary separable.

Masih ingat? (;¬_¬)

Kekangan yang ada pada perceptron ini digambarkan seperti di bawah melalui apa yang dikenali sebagai masalah XOR. Gambarajah di bawah juga menunjukkan perbandingan antara 2 fungsi logik OR dan XOR.



xor problem


Di bawah adalah Truth Table menunjukkan hubungan input & output yang dihasilkan oleh fungsi logik OR dan XOR (Merujuk pada gambarajah di atas, simbol dot merah = 0 manakala simbol plus biru = 1).



xor-or-truthtable


Sekiranya kita train perceptron untuk memperolehi model yang berkebolehan seperti fungsi OR dan XOR ini, kita dapat melihat pada gambarajah di plot kiri (fungsi OR), bahawa perceptron boleh melakukannya melalui satu garisan linear. Namun, pada plot di kanan (fungsi XOR), perceptron tidak mampu melakukanya kerana fungsi XOR adalah dikatakan "linearly non-separable". Satu-satunya cara untuk memisahkan kedua-dua kelas (biru dan merah) ini adalah dengan menggunakan garisan sempadan bukan linear. Ini jelas menunjukkan bahawa perceptron boleh mempelajari fungsi OR tetapi tidak dapat mempelajari fungsi XOR.

Sungguh mengecewakan! ╭╮(︶︿︶)╭╮

Secara teorinya kelemahan perceptron itu dapat diselesaikan dengan menambah satu lagi lapisan neuron diatasnya. Ini menghasilkan apa yang disebut sebagai Multilayer Perceptron (MLP). Gambarajah di bawah menunjukkan bagaimana MLP dapat menyelesaikan masalah XOR. Melalui proses training, gambarajah di bawah menunjukkan nilai weight pada semua sambungan (anak panah) NN yang berwarna hitam adalah 1, manakala yang berwarna merah di tanda dengan nilai seperti di gambarajah. Jika kita menghitung output MLP itu dengan input (0, 0) atau (1, 1), hasil output=0. Manakala jika dengan input (0, 1) atau (1, 0) ia menghasilkan output=1.



mlp-solved-xor


Boleh nampak tak? Ok lah saya tunjukkan pengiraannya dengan terperinchi. Sebelum itu, sila rujuk pada penerangan berkenaan perceptron di artikel saya yang sebelum ini. Di bawah adalah rumus yang digunakan untuk mengira output yang keluar di lapisan neuron kedua (hidden layer).


equation

Mari kita menghitung nilai output neuron 1 dan neuron 2 di hidden layer terlebih dahulu.

  • Nilai trained weights:

    equation

  • Nilai trained biases weight:

    equation

  • Ketika input:

equation

  • Oleh itu output neuron 1 & 2:

    equation

  • Ketika input:

    equation

  • Oleh itu output neuron 1 & 2:

    equation

  • Ketika input:

    equation

  • Oleh itu output neuron 1 & 2:

    equation

  • Ketika input:

    equation

  • Oleh itu output neuron 1 & 2:

    equation

Di bawah adalah rumus yang digunakan untuk mengira output final yang keluar di lapisan neuron ketiga (output layer).

equation

Untuk menghitung nilai output neuron di output layer, inputnya adalah nilai output yang dihasilkan oleh 2 neuron dari hidden layer sebelum ini.

  • Nilai trained weights:

    equation

  • Nilai trained biases weight:

    equation

  • ketika input:

    equation

  • Oleh itu nilai output:

    equation

  • Ketika input:

    equation

  • Oleh itu nilai output:

    equation

  • Ketika input:

    equation

  • Oleh itu nilai output:

    equation

Dengan pengiraan di atas, maka jelas lah multilayer perceptron boleh menyelesaikan masalah XOR ini. Tetapi mengapa algoritma neural network ini terkubur begitu lama sekali dan bagaimana ia akhirnya menjadi tumpuan para penyelidik semula. Cerita seterusnya akan saya bincangkan di artikel yang seterusnya,

InsyaAllah!