MODUL PERKULIAHAN Jaringan Syaraf Tiruan Bagian Otak Manusia Fakultas Program Studi Teknik Teknik ELektro Tatap Muka 01 Kode MK Disusun Oleh P141700002 Dr. Setiyo Budiyanto, ST., MT Abstract Kompetensi Diisi dengan abstract Dapat menjelaskan Pengenalan Jaringan Saraf Tiruan Dapat memahami Fungsi Aktivasi JST Dapat menjelaskan Jaringan Saraf Satu Lapis 1. Bagian Otak Manusia 1.1 Otak Manusia Otak manusia berisi berjuta-juta sel syaraf yang bertugas untuk memproses informasi. Tiap-tiap sel bekerja seperti suatu prosesor sederhana. Masing-masing sel tersebut saling berinteraksi sehingga mendukung kemampuan kerja otak manusia. Gambar 1.1 Susunan syaraf manusia. Gambar 1.1 menunjukkan susunan syaraf pada manusia. Setiap sel syaraf (neuron) akan memiliki satu inti sel, inti sel ini nanti yang akan bertukan untuk melakukan pemrosesan informasi. Informasi yang datang akan diterima oleh dendrit. Selain menerima informasi, dendrit juga menyertai axon sebagai keluaran dari suatu pemrosesan informasi. Informasi hasil olahan ini akan menjadi masukan bagi neuron lain yang mana antar dendrit kedua sel tersebut dipertemukan dengan synapsis. Informasi yang dikirimkan antar neuron ini berupa rangsangan yang dilewatkan melalui dendrit. Informasi yang datang dan diterima oleh dendrit akan dijumlahkan dan dikirim melalui axon ke dendrit akhir yang bersentuhan dengan dendrit dari neuron yang lain. Informasi ini akan diterima oleh neuron lain jika memenuhi batasan tertentu, yang sering dikenal dengan nama nilai ambang (threshold). Pada kasus ini, neuron tersebut dikatakan teraktivasi. Hubungan antar neuron terjadi secara adaptif, artinya struktur hubungan tersebut terjadi secara dinamis. Otak manusia selalu memiliki kemampuan untuk belajar dengan melakukan adaptasi. Jaringan syaraf adalah merupakan salah satu representasi buatan dari otak manusia yang selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia tersebut. Istilah buatan disini digunakan karena jaringan syaraf ini diimplementasikan dengan menggunakan program komputer yang mampu menyelesaikan sejumlah proses perhitungan selama proses pembelajaran. 2020 2 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id 1.2 Jaringan Syaraf Tiruan Jaringan saraf tiruan (JST) atau neural network adalah suatu metode komputasi yang meniru sistem jaringan saraf biologis. Metode ini menggunakan elemen perhitungan non-linier dasar yang disebut neuron yang diorganisasikan sebagai jaringan yang saling berhubungan, sehingga mirip dengan jaringan saraf manusia. Jaringan saraf tiruan dibentuk untuk memecahkan suatu masalah tertentu seperti pengenalan pola atau klasifikasi karena proses pembelajaran. Layaknya neuron biologi, JST juga merupakan sistem yang bersifat “fault tolerant” dalam 2 hal. Pertama, dapat mengenali sinyal input yang agak berbeda dari yang pernah diterima sebelumnya. Sebagai contoh, manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto atau dapat mengenali sesorang yang wajahnya agak berbeda karena sudah lama tidak menjumpainya. Kedua, tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik. Jika sebuah neuron rusak, neuron lain dapat dilatih untuk menggantikan fungsi neuron yang rusak tersebut. Jaringan saraf tiruan, seperti manusia, belajar dari suatu contoh karena mempunyai karakteristik yang adaptif, yaitu dapat belajar dari data-data sebelumnya dan mengenal pola data yang selalu berubah. Selain itu, JST merupakan sistem yang tak terprogram, artinya semua keluaran atau kesimpulan yang ditarik oleh jaringan didasarkan pada pengalamannya selama mengikuti proses pembelajaran/pelatihan. Hal yang ingin dicapai dengan melatih JST adalah untuk mencapai keseimbangan antara kemampuan memorisasi dan generalisasi. Yang dimaksud kemampuan memorisasi adalah kemampuan JST untuk mengambil kembali secara sempurna sebuah pola yang telah dipelajari. Kemampuan generalisasi adalah kemampuan JST untuk menghasilkan respons yang bisa diterima terhadap pola-pola input yang serupa (namun tidak identik) dengan pola-pola yang sebelumnya telah dipelajari. Hal ini sangat bermanfaat bila pada suatu saat ke dalam JST itu diinputkan informasi baru yang belum pernah dipelajari, maka JST itu masih akan tetap dapat memberikan tanggapan yang baik, memberikan keluaran yang paling mendekati. Jaringan saraf tiruan berkembang secara pesat pada beberapa tahun terakhir. Jaringan saraf tiruan telah dikembangkan sebelum adanya suatu komputer konvensional yang canggih dan terus berkembang walaupun pernah mengalami masa vakum selama beberapa tahun. JST menyerupai otak manusia dalam dua hal, yaitu: 1. Pengetahuan diperoleh jaringan melalui proses belajar. 2. Kekuatan hubungan antar sel syaraf (neuron) yang dikenal sebagai bobotbobot sinaptik digunakan untuk menyimpan pengetahuan. 2020 3 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id JST ditentukan oleh 3 hal : 1. Pola hubungan antar neuron (disebut arsitektur jaringan) 2. Metode untuk menentukan bobot penghubung (disebut metode training/learning). 3. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaran suatu neuron. 1.3 Sejarah Mulai dari ditemukannya, jaringan syaraf tiruan telah mengalami tahap-tahap perkembangan, antara lain: Pada tahun 1940-an, para ilmuwan menemukan bahwa psikologi dari otak sama dengan mode pemrosesan yang dilakukan oleh peralatan komputer Pada tahun 1943, McCulloch dan Pitts merancang model formal yang pertama kali sebagai perhitungan dasar neuron. Pada tahun 1949, Hebb menyatakan bahwa informasi dapat disimpan dalam koneksi-koneksi dan mengusulkan adanya skema pembelajaran untuk memperbaiki koneksi-koneksi antar neuron tersebut. Pada tahun 1954, Farley dan Clark mensetup model-model untuk relasi adaptif stimulusrespon dalam jaringan random. Pada tahun 1958, Rosenblatt mengembangkan kosep dasar tentang perceptron untuk klasifikasi pola. Pada tahun 1960, Widrow dan Hoff mengembangkan ADALINE untuk kendali adaptif dan pencocokan pola yang dilatih dengan aturan pembelajaran Least Mean Square (LMS). Pada tahun 1974, Werbos memperkenalkan algoritma backpropagation untuk melatih perceptron dengan banyak lapisan. Pada tahun 1975, Little dan Shaw menggambarkan jaringan syaraf dengan menggunakan model probabilistik. Pada tahun 1982, Kohonen mengembangkan metode pembelajaran jaringan syaraf yang tidak terawasi (unsupervised learning) untuk pemetaan. Pada tahun 1982, Grossberg mengembangkan teori jaringan yang diinspirasi oleh perkembangan psikologi. Bersama Carpenter, mereka mengenalkan sejumlah arsitektur jaringan, antara lain: Adaptive Resonance Theory (ART), ART2, dan ART3. Pada tahun 1982, Hopfield mengembangkan jaringan syaraf reccurent yang dapat digunakan untuk menyimpan informasi dan optimasi. Pada tahun 1985, algoritma pembelajaran dengan menggunakan mesin Boltzmann yang menggunakan model jaringan syaraf probabilistik mulai dikembangkan. 2020 4 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Pada tahun 1987, Kosko mengembangkan jaringan Adaptive Bidirectional Associative Memory (BAM). Pada tahun 1988, mulai dikembangkan fungsi radial basis. 1.4 Konsep Dasar Jaringan Syaraf (Model Neuron) Ada beberapa tipe jaringan syaraf, namun demikian, hampir semuanya memiliki komponenkomponen yang sama. Seperti halnya otak manusia, jaringan syaraf juga terdiri-dari beberapa neuron, dan ada hubungan antara neuron-neuron tersebut. Neuron-neuron tersebut akan mentransformasikan informasi yang diterima melalui sambungan keluarnya menuju ke neuronneuron yang lain. Pada jaringan syaraf, hubungan ini dikenal dengan nama bobot. Informasi tersebut disimpan pada suatu nilai tertentu pada bobot tersebut. Gambar 1.2 menunjukkan struktur neuron pada jaringan syaraf. Gambar 1.2 Struktur Neuron Jaringan Syaraf Jika kita lihat, neuron buatan ini sebenarnya mirip dengan sel neuron biologis. Neuron-neuron buatan tersebut bekerja dengan cara yang sama pula dengan neuron-neuron biologis. Informasi (disebut dengan: input) akan dikirim ke neuron dengan bobot kedatangan tertentu. Input ini akan diproses oleh suatu fungsi perambatan yang akan menjumlahkan nilai-nilai semua bobot yang yanag datang. Hasil penjumlahan ini kemudian akan dibandingkan dengan suatu nilai ambang (threshold) tertentu melalui fungsi aktivasi setiap neuron. Apabila input tersebut melewati suatu nilai ambang tertentu, maka neuron tersebut akan diaktifkan, tapi kalau tidak, maka neuron tersebut tidak akan diaktifkan. Apabila neuron tersebut diaktifkan, maka neuron tersebut akan mengirimkan output melalui bobot-bobot outputnya ke semua neuron yang berhubungan dengannya. Demikian seterusnya. Pada jaringan syaraf, neuron-neuron akan dikumpulkan dalam lapisan-lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Biasanya neuronneuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya (kecuali lapisan input dan lapisan output). Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan input sampai ke lapisan output melalui lapisan yang lainnya, yang sering dikenal dengan nama lapisan tersembunyi (hidden layer). Tergantung pada algoritma pembelajarannya, bisa jadi informasi tersebut akan dirambatkan secara mundur pada jaringan. 2020 5 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Sehingga dapat disimpulkan bahwa neuron terdiri dari 3 elemen pembentuk, yaitu: 1. Himpunan unit-unit yang dihubungkan dengan jalur koneksi. Jalur-jalur tersebut memiliki bobot yang berbeda-beda. Bobot yang bernilai positif akan memperkuat sinyal dan yang bernilai negatif akan memperlemah sinyal yang dibawa. Jumlah, struktur, dan pola hubungan antar unitunit tersebut akan menentukan arsitektur jaringan. 2. Suatu unit penjumlah yang akan menjumlahkan input-input sinyal yang sudah dikalikan dengan bobotnya. 3. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan diteruskan ke neuron lain atau tidak. Setiap pola-pola informasi input dan output yang diberikan kedalam JST diproses dalam neuron. Neuron-neuron tersebut terkumpul di dalam lapisan-lapisan yang disebut neuron layers. Lapisanlapisan penyusun JST tersebut dapat dibagi menjadi 3, yaitu : 1. Lapisan input Unit-unit di dalam lapisan input disebut unit-unit input. Unit-unit input tersebut menerima pola inputan data dari luar yang menggambarkan suatu permasalahan. 2. Lapisan tersembunyi Unit-unit di dalam lapisan tersembunyi disebut unit-unit tersembunyi. Dimana outputnya tidak dapat secara langsung diamati. 3. Lapisan output Unit-unit di dalam lapisan output disebut unit-unit output. Output dari lapisan ini merupakan solusi JST terhadap suatu permasalahan. Gambar 1.3 menunjukkan jaringan syaraf dengan 3 lapisan. Gambar 1.3 Jaringan Syaraf Dengan 3 Lapisan 2020 6 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Gambar 1.3 bukanlah struktur umum jaringan syaraf. Beberapa jaringan syaraf ada juga yang tidak memiliki lapisan tersembunyi, dan ada juga jaringan syaraf dimana neuron-neuronnya disusun dalam bentuk matriks. 1.5 Arsitektur Jaringan Seperti telah dijelaskan sebelumnya bahwa neuron-neuron dikelompokkan dalan lapisan-lapisan. Umumnya, neuron-neuron yang terletak pada lapisan yang sama akan memiliki keadaan yang sama. Faktor terpenting dalam menentukan kelakuan suatu neuron adalah fungsi aktivasi dan pola bobotnya. Pada setiap lapisan yang sama, neuron-neuron akan memiliki fungsi aktivasi yang sama. Apabila neuron-neuron dalam suatu lapisan (misalkan lapisan tersembunyi) akan dihubungkan dengan neuron-neuron pada lapisan yang lain (misalkan lapisan output), maka setiap neuron pada lapisan tersebut (misalkan lapisan tersembunyi) juga harus dihubungkan dengan setiap lapisan pada lapisan lainnya (misalkan lapisan output). Ada beberapa arsitektur jaringan syaraf, antara lain: a. Jaringan dengan lapisan tunggal (single layer net) Jaringan dengan lapisan tunggal hanya memiliki satu lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output tanpa harus melalui lapisan tersembunyi (Gambar 1.4). Pada Gambar 1.4 tersebut, lapisan input memiliki 3 neuron, yaitu X1, X2 dan X3. Sedangkan pada lapisan output memiliki 2 neuron yaitu Y1 dan Y2. Neuronneuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian. Semua unit input akan dihubungkan dengan setiap unit output. Gambar 1.4 Jaringan syaraf dengan lapisan tunggal. 2020 7 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id b. Jaringan Dengan Banyak Lapisan (Multilayer Net) Jaringan dengan banyak lapisan memiliki 1 atau lebih lapisan yang terletak diantara lapisan input dan lapisan output (memiliki 1 atau lebih lapisan tersembunyi), seperti terlihat pada Gambar 1.5. Umumnya, ada lapisan bobotbobot yang terletak antara 2 lapisan yang bersebelahan. Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang lebih sulit daripada lapisan dengan lapisan tunggal, tentu saja dengan pembelajaran yang lebih rumit. Namun demikian, pada banyak kasus, pembelajaran pada jaringan dengan banyak lapisan ini lebih sukses dalam menyelesaikan masalah. Gambar 1.5 Jaringan syaraf dengan banyak lapisan. c. Jaringan Dengan Lapisan Kompetitif (Competitive Layer Net) Umumnya, hubungan antar neuron pada lapisan kompetitif ini tidak diperlihatkan pada diagram arsitektur. Gambar 1.6 menunjukkan salah satu contoh arsitektur jaringan dengan lapisan kompetitif yang memiliki bobot -ɳ. Gambar 1.6 Jaringan syaraf dengan lapisan kompetitif. 2020 8 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id 1.6 Metode Pelatihan / Pembelajaran Cara berlangsungnya pembelajaran atau pelatihan JST dikelompokkan menjadi 3 yaitu: a. Supervised learning (pembelajaran terawasi) Pada metode ini, setiap pola yang diberikan kedalam JST telah diketahui outputnya. Selisih antara pola output aktual (output yang dihasilkan) dengan pola output yang dikehendaki (output target) yang disebut error digunakan untuk mengoreksi bobot JST sehingga JST mampu menghasilkan output sedekat mungkin dengan pola target yang telah diketahui oleh JST. Contoh algoritma JST yang menggunakan metode ini adalah : Hebbian, Perceptron, ADALINE, Boltzman, Hopfield, Backpropagation. b. Unsupervised learning (pembelajaran tak terawasi) Pada metode ini, tidak memerlukan target output. Pada metode ini tidak dapat ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokkan unit-unit yang hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk klasifikasi pola. Contoh algoritma JST yang menggunakan metode ini adalah : Competitive, Hebbian, Kohonen, LVQ (Learning Vector Quantization), Neocognitron. c. Hybrid Learning (pembelajaran hibrida) Merupakan kombinasi dari metode pembelajaran supervised learning dan unsupervised learning. Sebagian dari bobot-bobotnya ditentukan melalui pembelajaran terawasi dan sebagian lainnya melalui pembelajaran tak terawasi. Contoh algoritma JST yang menggunakan metode ini yaitu : algoritma RBF. Metode algoritma yang baik dan sesuai dalam melakukan pengenalan pola-pola gambar adalah algoritma Backpropagation dan Perceptron. Untuk mengenali teks bedasarkan tipe font akan digunakan algoritma Backpropagation. 1.7 Fungsi Aktivasi Dalam JST, fungsi aktivasi digunakan untuk menentukan keluaran suatu neuron. Argumen fungsi aktivasi adalah net masukan (kombinasi linier masukan dan bobotnya). Ada beberapa fungsi aktivasi yang sering digunakan dalam jaringan syaraf tiruan, antara lain: 2020 9 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id a. Fungsi Undak Biner (Hard Limit) Jaringan dengan lapisan tunggal sering menggunakan fungsi undak (step function) untuk mengkonversikan input dari suatu variabel yang bernilai kontinu ke suatu output biner (0 atau 1) (Gambar 1.7). Fungsi undak biner (hard limit) dirumuskan sebagai: Gambar 1.7 Fungsi aktivasi: Undak Biner (hard limit). b. Fungsi Undak Biner (Threshold) Fungsi undak biner dengan menggunakan nilai ambang sering juga disebut dengan nama fungsi nilai ambang (threshold) atau fungsi Heaviside (Gambar 1.8). Fungsi undak biner (dengan nilai ambang ϴ) dirumuskan sebagai: Gambar 1.8 Fungsi aktivasi: Undak Biner (threshold). c. Fungsi Bipolar (Symetric Hard Limit) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner, hanya saja output yang dihasilkan berupa 1, 0 atau –1 (Gambar 1.9). Fungsi Symetric Hard Limit dirumuskan sebagai: 2020 10 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Gambar 1.9 Fungsi aktivasi: Bipolar (symetric hard limit). d. Fungsi Bipolar (dengan threshold) Fungsi bipolar sebenarnya hampir sama dengan fungsi undak biner dengan threshold, hanya saja output yang dihasilkan berupa 1, 0 atau –1 (Gambar 1.10). Fungsi bipolar (dengan nilai ambang ϴ) dirumuskan sebagai: Gambar 1.10 Fungsi aktivasi: Bipolar (threshold). e. Fungsi Linear (Identitas) Fungsi linear memiliki nilai output yang sama dengan nilai inputnya (Gambar 1.11). Fungsi linear dirumuskan sebagai: Gambar 1.11 Fungsi aktivasi: Linear (identitas). 2020 11 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id f. Fungsi Saturating Linear Fungsi ini akan bernilai 0 jika inputnya kurang dari –½, dan akan bernilai 1 jika inputnya lebih dari ½. Sedangkan jika nilai input terletak antara –½ dan ½, maka outpunya akan bernilai sama dengan nilai input ditambah ½ (Gambar 1.12). Fungsi saturating linear dirumuskan sebagai Gambar 1.12 Fungsi Aktivasi : Saturating Linear g. Fungsi Symetric Saturating Linear Fungsi ini akan bernilai -1 jika inputnya kurang dari –1, dan akan bernilai 1 jika inputnya lebih dari 1. Sedangkan jika nilai input terletak antara –1 dan 1, maka outpunya akan bernilai sama dengan nilai inputnya (Gambar 1.13). Fungsi symetric saturating linear dirumuskan sebagai: Gambar 1.13 Fungsi Aktivasi : Symetric Saturating Linear 2020 12 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id h. Fungsi Sigmoid Biner Fungsi ini digunakan untuk jaringan syaraf yang dilatih dengan menggunakan metode backpropagation. Fungsi sigmoid biner memiliki nilai pada range 0 sampai 1. Oleh karena itu, fungsi ini sering digunakan untuk jaringan syaraf yang membutuhkan nilai output yang terletak pada interval 0 sampai 1. Namun, fungsi ini bisa juga digunakan oleh jaringan syaraf yang nilai outputnya 0 atau 1 (Gambar 1.14). Fungsi sigmoid biner dirumuskan sebagai: Gambar 1.14 Fungsi aktivasi: Sigmoid Biner i. Fungsi Sigmoid Bipolar Fungsi sigmoid bipolar hampir sama dengan fungsi sigmoid biner, hanya saja output dari fungsi ini memiliki range antara 1 sampai –1 (Gambar 1.15). Fungsi sigmoid bipolar dirumuskan sebagai: Fungsi ini sangat dekat dengan fungsi hyperbolic tangent. Keduanya memiliki range antara –1 sampai 1. Untuk fungsi hyperbolic tangent, dirumuskan sebagai: 2020 13 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Gambar 1.15 Fungsi aktivasi: Sigmoid Bipolar 2020 14 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id Daftar Pustaka 1. Jaringan Syaraf Tiruan dan Pemrograman menggunakan Matlab, Jong Jek Siang, 2009 2. Supervised Neural Network, M.Hery P& Agus Kurniawan, 2006 3. Pengantar Jaringan Syaraf Tiruan, Diyah Puspitaningrum, 2006 4. Aplikasi Logika Fuzzy untuk Pendukung Keputusan, Sri Kusuma Dewi & Hari Purnomo, 2010 2020 15 Jaringan Syaraf Tiruan Dr. Setiyo Budiyanto, ST., MT Pusat Bahan Ajar dan eLearning http://www.mercubuana.ac.id