Metode Jaringan Saraf Tiruan JST | dan metode Backpropagation

Jaringan saraf tiruan (JST) adalah salah satu algoritma pembelajaran mesin yang meniru cara kerja jaringan saraf makhluk hidup. Jaringan saraf tiruan (artificial neural network) merupakan jaringan dari banyak unit pemroses kecil (yang disebut neuron) yang masing-masing melakukan proses sederhana, yang ketika digabungkan akan menghasilkan perilaku yang kompleks. Jaringan saraf tiruan dapat digunakan sebagai alat untuk memodelkan hubungan yang kompleks antara masukan (input) dan keluaran (input) pada sebuah sistem untuk menemukan pola-pola pada data (Hermawan, Arif. 2006).
Jaringan saraf tiruan dibuat berdasarkan model biologis otak manusia. Kemampuan komputer sudah melampaui otak manusia dalam hal komputasi numerik, tetapi otak manusia dapat mengerjakan persoalan lainnya secara lebih cepat dan akurat, misalnya pada persoalan pengenalan wajah, persoalan klasifikasi, dan persoalan penarikan keputusan. Oleh karena itu, dilakukanlah riset yang mencoba memodelkan proses yang terjadi di otak manusia. Riset-riset tersebut menghasilkan sebuah model matematis yang disebut jaringan saraf tiruan (artificial neural network) atau sering juga disebut simulated neural network atau hanya jaringan saraf (neural network).
Otak manusia terdiri dari lebih dari 1011 sel saraf yang disebut neuron. Masingmasing sel saraf ini terdiri atas empat komponen dasar, yaitu dendrit, soma (badan sel) dan akson. Terdapat tiga macam neuron, yaitu neuron sensori, asosiasi dan motor(Stockley, Corrine. 2005)
Masing-masing neuron terhubung dengan 200.000 hubungan melalui dendrit ke neuron lain pada otak. Dendrit menerima impuls dari neuron lain atau dari reseptor (bagian dari sistem pengindera yang mengirimkan impuls ketika dirangsang).
Sebagian besar neuron memiliki beberapa dendrit pendek, kecuali neuron sensoriyang hanya memiliki satu dendrit panjang. Dendrit panjang tersebut disebut dendron. Badan sel adalah bagian dari neuron yang di dalamnya terdapat nukelus (inti sel) dan sebagian besar sitoplasma sel. Masing-masing neuron mempunyai akson, yaitu serabut saraf tunggal panjang yang membawa impuls dari badan sel. Akson akan menyampaikan  impuls tersebut ke efektor (otot atau kelenjar) atau ke dendrit dari neuron lain. Daerah sempit tempat bertemunya akson dengan dendrit neuron lain disebut sinapsis. Pada celah sinapsis ini, impuls diteruskan ke dendrit sel lain dengan menggunakan zat kimia yang disebut neurotransmitter.

Neuron sensori atau disebut juga neuron aferen merupakan neuron yang membawa impuls saraf. Ujung-ujung dendron (dendrit panjang) beberapa neuron sensori membentuk reseptor-reseptor di seluruh tubuh, yang mengirimkan impuls ke neuron ketika dirangsang. Kemudian reseptor akan terhubung dan mengantarkan impuls ke otak manusia melalui beberapa neuron sensori.


           Neuron asosiasi, yang disebut juga neuron penghubung atau interneuron merupakan neuron dengan jumlah paling banyak di otak dan sumsum tulang belakang. Neuron asosiasi ini terlibat dalam penerimaan input dari neuron sensori, penerjemahan input tersebut menjadi informasi serta penyampaian impuls ke neuron motor untuk melakukan gerakan/aksi.


          Neuron motor, disebut juga neuron aferen merupakan neuron yang membawa impuls saraf dari otak dan sumsum tulang belakang. Ujung akson neuron motor membentuk sambungan dengan otot atau kelenjar. Impuls yang dibawa oleh neuron motor dari neuron asosiasi akan merangsang organ-organ tubuh ini untuk bekerja.


          Otak manusia bekerja dengan meneruskan impuls yang didapat dari neuron sensori ke neuron asosiasi dan kemudian menuju ke neuron motor. Hubungan antara neuronneuron yang sangat banyak itu dapat menguatkan ataupun melemahkan, bahkan dapat terbentuk hubungan baru ataupun putus hubungan antara neruon-neuron tersebut, sesuai dengan aktivitas pada otak manusia.
Pada awal pertumbuhan anak, perubahan yang terjadi pada keterhubungan neuron tersebut sangat banyak, seiring dengan pembelajaran yang dilakukan anak terhadap lingkungan sekitarnya. Saat manusia berkembang menjadi dewasa, hubungan antar neuron-neuron pada otaknya telah mampu membuatnya dapat berjalan, membaca, mendengar, mengambil keputusan, dan hal lain yang dapat dilakukan oleh manusia dewasa.

Model Umum Jaringan Saraf Tiruan

       Jaringan saraf tiruan dibuat berdasarkan model saraf manusia, tetapi dengan bagianbagian yang lebih sederhana. Komponen terkecil dari jaringan saraf tiruan adalah unit atau disebut juga neuron, layaknya neuron pada jaringan saraf manusia. Model matematis dari neuron dapat dilihat pada Gambar 2.4. Model matematis ini diperkenalkan oleh Bernard Widrow. Masukan dan bobot merupakan model matematis dari dendrit, penjumlahan serta fungsi pengaktif merupakan model matematis dari soma (badan sel), serta keluaran merupakan model matematis dari akson(Widrow, Bernard dkk. 1960).



              Setiap jalur nilai masukan ke neuron mempunyai bobot, dan terdapat satu jalur masukan tambahan yang bukan merupakan jalur masukan, yaitu jalur ke-0. Jalur ke-0 ini dapat berfungsi sebagai nilai koreksi atau dapat juga berfungsi sebagai nilai threshold (nilai ambang batas). Impuls pada sistem saraf manusia dimodelkan sebagai nilai yang dimasukkan melalui jalur nilai masukan ke dalam model neuron. Nilai pada setiap jalur masukan akan dikalikan dengan bobot jalur, dan kemudian dijumlahkan. Nilai yang dihasilkan dari penjumlahan seluruh masukan tersebut dapat berada pada range yang sangat besar sehingga akan mempersulit pengolahan selanjutnya. Untuk menghindari hal tersebut, nilai hasil penjumlahan akan diproses terlebih dulu dengan menggunakan sebuah fungsi (phi) yang disebut fungsi aktivasi, atau fungsi sinapsis (fungsi aktivasi sering dianalogikan dengan sinapsis). Penghitungan nilai hasil dapat dituliskan secara matematis sebagai berikut:





             Proses pembelajaran pada suatu neuron dilakukan dengan mengkoreksi nilai bobot setiap masukan (wi) sesuai dengan pembelajaran yang diberikan. Bentuk data pembelajaran adalah berupa pasangan vektor nilai masukan ke neuron dan nilai target keluaran (t). Nilai masukan akan dimasukkan ke dalam neuron, dan menghasilkan nilai keluaran (y). Kesalahan dari nilai keluaran yang dihasilkan dihitung, dan nilai bobot w untuk setiap masukan diperbarui menggunakan:

dimana

          Dimana adalah kecepatan pembelajaran, yaitu seberapa besar bobot w terbarui pada setiap langkah pembelajaran. Proses ini dilakukan berulang-ulang dengan data pembelajaran yang berbeda. Pada akhirnya, bobot nilai masukan akan berisi nilai bobot yang sesuai. Sebuah jaringan saraf tiruan terdiri dari banyak neuron yang saling terhubung dalam jaringan yang rumit. Pada jaringan saraf tiruan juga terdapat tiga jenis neuron, yaitu neuron masukan, neuron tersembunyi, serta neuron keluaran.
      Neuron masukan merupakan neuron yang berfungsi seperti neuron sensori, yaitu menerima nilai masukan. Biasanya sebuah neuron masukan hanya merepresentasikan sebuah input ke jaringan saraf tiruan. Tugas utama neuron masukan adalah memastikan bahwa nilai masukan yang masuk pada jaringan saraf tiruan merupakan nilai yang dapat diterima dan diproses oleh neuron lainnya, baik neuron tersembunyi maupun neuron keluaran. Neuron tersembunyi berfungsi seperti neuron asosiasi. Neuron jenis ini berfungsi menerima nilai masukan dari neuron-neuron masukan atau neuron tersembunyi lainnya, memproses nilai-nilai masukan tersebut, dan kemudian meneruskan hasilnya ke neuron keluaran atau ke neuron tersembunyi lainnya. Kemampuan jaringan saraf tiruan untuk mengaproksimasi berbagai macam fungsi target sebagian besar disumbang oleh keberadaan neuron tersembunyi ini.
       Neuron keluaran merupakan neuron yang memiliki fungsi seperti neuron motor. Neuron jenis ini berfungsi menerima output dari neuron-neuron tersembunyi, kemudian memprosesnya sehingga menghasilkan nilai keluaran. Nilai yang dikeluarkan oleh neuron keluaran menjadi nilai output dari jaringan saraf tiruan. Nilai keluaran tersebut dapat disimpan atau dapat juga dihubungkan dengan sistem lain yang akan melakukan aksi tertentu. Proses pembelajaran yang dilakukan terhadap jaringan saraf tiruan yang terdiri dari banyak neuron merupakan pengembangan dari pembelajaran satu neuron.


Karakteristik Jaringan Saraf Tiruan

            Dengan struktur dasar seperti yang dijelaskan pada bagian sebelumnya, algoritma jaringan saraf tiruan memiliki karakteristik-karakteristik sebagai berikut (Mitchell, Tom M. 1997):
1. Masukan dapat berupa nilai diskrit atau real yang memiliki banyak dimensi
2. Keluaran berupa vektor yang terdiri dari beberapa nilai diskrit atau real
3. Dapat mempelajari permasalahan secara black box, dengan hanya mengetahui nilai masukan serta keluarannya saja.
4. Mampu menangani pembelajaran terhadap data yang memiliki derau (noise)
5. Bentuk dari fungsi target pembelajaran tidak diketahui, karena hanya berupa bobot-bobot nilai masukan pada setiap neuron.
6. Karena harus mengubah banyak nilai bobot pada proses pembelajaran, maka waktu pembelajaran menjadi lama, sehingga tidak cocok untuk masalah-masalah yang memerlukan waktu cepat dalam pembelajaran.
7. Jaringan saraf tiruan hasil pembelajaran tiruan dapat dijalankan dengan cepat.


Jenis Jaringan Saraf Tiruan

Terdapat berbagai model jaringan saraf tiruan, yang dikelompokkan menjadi empat jenis, yaitu:
a) Jaringan saraf tiruan feedforward. Jenis ini mencakup semua model jaringan saraf tiruan yang bersifat acyclic, yaitu hanya bisa menyampaikan informasi searah dari neuron masukan ke neuron keluaran. Contoh model dari jenis ini adalah singlelayer perceptron, multi-layer perceptron, ADALINE, RBF (Radial Basis Function) dan Kohonen self-organizing map. Jenis ini merupakan jenis yang paling sederhana dibandingkan jenis-jenis jaringan saraf tiruan lainnya. Jaringan saraf jenis ini mempunyai beberapa kelemahan, diantaranya, ketidakmampuannya untuk memproses dengan menyimpan informasi state, sehingga tidak mampu memproses masalah-masalah sekuensial.
b) Jaringan saraf tiruan rekurens. Berbeda dengan jaringan saraf tiruan feedforward, jaringan saraf tiruan rekurens menyampaikan informasi secara dua arah(mempunyai hubungan antar neuron yang cyclic). Contoh model yang termasuk jenis ini adalah simple recurrent network (disebut juga jaringan Elman), jaringan Hopfield, jaringan saraf stokastik, mesin Boltzmann. Jaringan saraf tiruan rekurens, dapat diaplikasikan pada masalah-masalah yang memerlukan pemrosesan secara sekuensial, yang memerlukan penyimpanan status. Umpan balik yang dihasilkan oleh hubungan siklik pada jaringan saraf tiruan rekurens memungkinkan masalah tersebut tertangani oleh jaringan saraf rekurens.
c) Jaringan saraf tiruan modular. Jenis ini berdasar pada kesimpulan riset biologi bahwa otak manusia tidak berfungsi sebagai satu jaringan yang sangat besar, tetapi sebagai kumpulan jaringan-jaringan kecil. Contoh model jenis ini adalah committee of machines dan associative neural network.
d) Jenis lainnya mencakup model-model lain yang tidak tercakup pada tiga jenis jaringan saraf tiruan di atas, seperti holographic associative memory, instantaneously trained networks, spiking neural networks.

Fungsi Aktivasi

       Seperti telah disebutkan pada bagian sebelumnya, fungsi aktivasi adalah fungsi yang mentransformasikan nilai penjumlahan menjadi sebuah nilai yang dapat diproses lebih lanjut. Terdapat beberapa fungsi aktivasi yang umum digunakan, yaitu fungsi aktivasi step dan sigmoid. 
Fungsi aktivasi step banyak digunakan karena sifatnya yang sederhana, yaitu menghasilkan nilai biner. Fungsi aktivasi step didefinisikan sebagai berikut:


        Terdapat pula varian dari fungsi aktivasi step yang mengembalikan nilai 1 dan -1,alih-alih 1 dan 0. Fungsi step hanya dapat digunakan jika keluaran yang diinginkan berupa nilai biner 1 dan 0 saja (atau 1 dan -1). Fungsi aktivasi yang biasa digunakan untuk keluaran yang berupa nilai rentang adalah fungsi sigmoid. Terdapat dua bentuk fungsi sigmoid yang sering digunakan, yaitu fungsi sigmoid biner (binary sigmoid function) atau disebut juga fungsi sigmoid unipolar (unipolar sigmoid function) yang menghasilkan nilai rentang antara 0 dan 1, dan fungsi sigmoid bipolar (bipolar sigmoid function) yang menghasilkan nilai rentang antara -1 dan 1.
Bentuk fungsi sigmoid unipolar (unipolar sigmoid function) adalah sebagai berikut (Mitchell, Tom M. 1997.):




         Dalam melakukan pelatihan terhadap jaringan saraf tiruan yang menggunakan fungsi aktivasi sigmoid, misalnya dengan algoritma propagasi balik (backpropagation), diperlukan diferensial dari fungsi aktivasi. Nilai diferensial dari persamaan (II.5) adalah (Purnomo, Mauridhi Hery, Agus Kurniawan. 2006):




Sedangkan bentuk fungsi sigmoid bipolar (bipolar sigmoid function) adalah sebagai berikut:


Nilai diferensial dari persamaan (II.7) adalah:


Metode Pelatihan Backpropagation
          Proses pembelajaran pada jaringan saraf tiruan dilakukan seperti analogi pembelajaran pada jaringan saraf manusia, yaitu dengan mengubah bobot nilai masukan pada setiap neuron yang ada. Terdapat tiga paradigma pembelajaran, yaitu pembelajaran terbimbing (supervised learning), pembelajaran tak terbimbing (unsupervised learning), serta pelatihan diperkuat (reinforced learning).
         Algoritma yang dipakai pada pembelajaran bervariasi tergantung pada model jaringan saraf tiruan yang digunakan (lihat subbab 2.1.2). Propagasi balik atau backpropagation merupakan teknik pembelajaran terbimbing yang dapat dipakai untuk melakukan pelatihan terhadap jaringan saraf tiruan. Struktur dasar metode propagasi balik dapat dilihat pada Algoritma II.1. Propagasi balik pertama kali dicetuskan oleh Paul Werbos pada tahun 1974, kemudian dikembangkan lebih lanjut pada tahun 1986 oleh David E. Rumelhart, Geoffrey E. Hinton dan Ronald J. Williams. Metode propagasi balik pada awalnya dirancang untuk model jaringan saraf tiruan feedforward. Tetapi, pada perkembangannya, metode propagasi balik diadaptasi untuk pembelajaran pada model jaringan saraf tiruan lainnya.
        Pelatihan jaringan saraf tiruan dikatakan berhasil jika pelatihan konvergen, dan gagal jika pelatihan divergen. Suatu pelatihan dikatakan konvergen jika galat pada setiap iterasi pelatihan selalu mengecil, sampai pada titik dimana nilai bobot pada setiap neuron telah mencapai nilai yang paling baik untuk data pelatihan yang diberikan. Sebaliknya, pelatihan dikatakan divergen jika galat pada pelatihan tidak cenderung mengecil menuju sebuah titik tertentu.

Pengujian Jaringan Saraf Tiruan
       Perhitungan galat merupakan pengukuran bagaiamana jaringan saraf tiruan dapat belajar dengan baik. Perhitungan galat ini merupakan pengukuran ketepatan jaringan saraf tiruan terhadap data target pembelajaran. Galat pada keluaran jaringan saraf tiruan merupakan selisih antara keluaran sebenarnya (current output) dengan keluaran yang diinginkan (desired output) dari masukan data tertentu. Pada proses pembelajaran, data yang menjadi pembanding adalah data pembelajaran, sedangkan pada proses pengujian, data yang dipakai adalah data uji.
Jumlah galat pada jaringan saraf tiruan dapat dihitung dengan menggunakan jumlah galat kuadrat (SSE—sum of squared error), atau rata-rata galat kuadrat (MSE—mean quare error) ataupun dengan menggunakan akar rata-rata galat kuadrat (RMSE— root mean square error).
Berikut ini adalah cara menghitung SSE, MSE dan RMSE untuk kumpulan data d, ada jaringan saraf tiruan dengan kumpulan neuron keluaran outputs:

Dengan :
        tk adalah nilai target pada neuron keluaran ke – k
        ok adalah nilai output pada neuron keluaran ke – k
nd adalah jumalah data pembelajaran
        noutput adalah jumlah neuron keluaran


EmoticonEmoticon