.

.

.

.

Siang .J.JARINGAN SYARAF TIRUAN DAN PEMROGRAMANNYA DENGAN MATLAB J.

2 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Untuk Kevin. yang senyumnya membangkitkan semangat dan harapan Being wise is better than being strong. Wisdom is better than strength .

sesuai dengan silabus mata kuliah JST. buku ini terdiri dari 2 bagian yaitu teori JST (bab 1 – 9) dan pemrograman JST (bab 10 – 16) Pada bab 1 dijelaskan tentang pengertian dasar JST sebagai tiruan dari jaringan syaraf biologi. Dari pengalaman mengajar penulis. bab ini bisa dilewatkan . Kata Pengantar Neural Network (Jaringan Syaraf Tiruan = JST) merupakan topik yang hangat dibicarakan dan mengundang banyak kekaguman dalam dasa warsa terakhir. serta dasar-dasar pemrograman Matlab. Bab 2 menjelaskan tentang dasar-dasar matematika yang dibutuhkan untuk JST. Hal ini dirasa sangat ironis. seluruh cakupan buku ini akan selesai dipelajari dalam kuliah sebanyak 2-3 SKS dengan praktikum 2 jam per minggu. Bagi yang memiliki dasar matematika yang memadai. vektor serta konsep dasar fungsi. bab- bab tersebut dapat dilewati. Buku berjudul Jaringan Syaraf Tiruan dan Pemrogramannya dengan Matlab ini disusun untuk mengatasi kesenjangan tersebut Buku ini diperuntukkan bagi mahasiswa yang ingin mempelajari JST dari dasar. sejarah perkembangan serta aplikasinya. Bagi pembaca yang sudah mengetahui konsep dasar JST atau terbiasa dengan Matlab. Oleh karena itu dicantumkan juga bab tentang dasar-dasar matematika JST. Ditambah lagi begitu banyaknya mahasiswa yang membuat skripsinya dengan topik JST. Mayoritas berisi tentang matriks. konsep dasar JST. Akan tetapi hal ini tidak didukung tersedianya buku acuan berbahasa indonesia yang memadai. Hal ini disebabkan karena kemampuan JST untuk meniru sifat sistem yang diinputkan. Mata kuliah JST muncul di hampir semua kurikulum program studi yang berhubungan dengan komputer. Secara garis besar.

Penulis sangat berterima kasih pada keluarga atas dorongan dan pengertiannya selama menghabiskan waktu dan pikiran untuk . Dalam bab 12 dijelaskan cara pembuatan program dengan Matlab. Setiap kali membaca tentang pemrogramannya. fungsi aktivasi . Dalam setiap perintah dijelaskan secara rinci tentang format. Bahasa yang dipakai adalah Matlab 6. sedangkan yang dipakai oleh Matlab kadangkala adalah pengembangannya yang sudah sedikit mengalami perbedaan. Akan tetapi semua perintah yang dipakai juga dapat digunakan dengan Matlab versi 6. Dimulai dengan model yang sangat sederhana dan analitik yang ditemukan oleh McCulloch – Pitts. hingga cara pembuatan grafik Bab 13 – 16 menjelaskan cara pembuatan program model JST yang dijelaskan pada bab 5 – 9. Hal ini beralasan karena banyaknya variasi model JST yang ditemukan. sebaiknya pembaca juga membaca bab tentang dasar teorinya. Bab 11 berisi tentang cara manipulasi matriks sebagai dasar pemrograman Matlab. Hal ini perlu dilakukan mengingat kadangkala Matlab menggunakan pendekatan berbeda dengan algoritma dasar yang dijelaskan dalam bab 5 – 9. serta cara kerja model JST Bab 4 – 9 menjelaskan tentang model-model JST. Bab 10 berisi tentang penjelasan antarmuka dan cara pemakaian Matlab. arsitektur. jaringan Hebb. sintaks dan manfaat setiap perintah yang dipakai. Teori yang dibahas dalam bab 5 – 9 adalah konsep aslinya. Dalam setiap bab dijelaskan tentang arsitektur jaringan. sintaks perintah. Ini bertujuan agar pembaca tidak menjadi “burung beo” saja yang meniru perintah yang tertulis. algoritma pelatihan serta contoh-contoh cara iterasinya Bab 10 – 12 dijelaskan tentang dasar-dasar Matlab.5. serta Back Propagation.4 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Bab 3 berisi tentang konsep dasar JST. ADALINE. hingga jaringan dengan supervisi yang umum dipakai seperti Perceptron. Juga dibahas tentang jaringan tanpa supervisi seperti jaringan Hamming serta Kohonen.1.

Quitter never win. Terima kasih juga penulis sampaikan pada penerbit Andi Offset yang bersedia menerbitkan buku ini. Banyak pengorbanan. terutama program studi ilmu komputer Universitas Sanata Dharma Jogjakarta yang memberi kesempatan.Kata Pengantar 5 menyelesaikan buku ini. Jogjakarta. Winner never quit. Hanya dengan pertolongan Tuhanlah penulis mengatasi semuanya itu.com . Juli 2004 j_j_siang@yahoo. kesulitan yang penulis alami selama penyusunan buku ini. Kritik dan saran untuk penyempurnaan materi buku ini sangat penulis harapkan dari pembaca. dorongan dan fasilitas untuk menyelesaikan buku ini. Terima kasih juga penulis sampaikan pada semua pejabat di fakultas MIPA.

.......................... 43 4.............................................................................................................1 Jaringan Hebb .............. 1 1.......................................................... 20 BAB 3 MODEL NEURON ..................2......... 17 SOAL-SOAL LATIHAN .......1......................3 Bias dan Threshold .........................6 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Daftar Isi BAGIAN I : JARINGAN SYARAF TIRUAN BAB 1 PENDAHULUAN .............1 Jaringan Syaraf Biologi dan Tiruan ............. 23 3..................................2 Jaringan Syaraf Tiruan ............... 26 3.... 2 1...................................3 Aplikasi Jaringan Syaraf Tiruan ................................... 59 5.................1 Arsitektur Jaringan .......................................................................................1 Jenis-jenis Matriks ..................... 57 BAB 5 PERCEPTRON ..................... 7 2.................3 Ketergantungan Linier ....................................................................1......... 13 2......2 Sejarah Jaringan Syaraf Tiruan .................................................................................................3 Pengenalan Pola Karakter .....4 Pelatihan Supervised dan Unsupervised .................... 23 3............................................................................................2 Pelatihan Perceptron ....................... 5 BAB 2 DASAR-DASAR MATEMATIKA ....1 Jaringan Syaraf Biologi .............................................................................................................................................................................................................................................. 27 3.......1 Arsitektur Jaringan ........................................................1.....................2 Fungsi Aktivasi ..........................................................5 Taksonomi Jaringan Syaraf Tiruan ...... 1 1........1 Operasi-Operasi Vektor ..... 59 5.............................................. 28 3................ 4 1............. 29 3............................................ 16 2.........1..................................................2........................................................ 8 2........... 74 ..............................................6 Neuron McCulloch – Pitts ................................................................... 15 2................................................................................................................... 43 4.............. 54 SOAL-SOAL LATIHAN .............2 Norma Vektor ..........1 Vektor ......... 40 BAB 4 MODEL HEBB ....... 1 1................................................2 Jaringan Hebb Untuk Pengenalan Pola .............................................. 16 2.................................... 7 2........................................1................ 31 SOAL-SOAL LATIHAN ............... 60 5.......................................................2 Operasi pada Matriks ..................2 Matriks .............

3. 124 BAB 8 JARINGAN KOMPETISI DENGAN BOBOT TETAP .................................1 Pelatihan Tanpa Supervisi . 98 7.. 83 6..........................................................1.............................................. 131 8.......................................... 74 5...... 113 7............ 139 BAB 9 JARINGAN KOHONEN .1 Pelatihan ADALINE .............4 Jaringan Hamming ...............................................2 Jumlah Unit Tersembunyi .......................................................... 142 9................2 Delta – Bar – Delta .......................... 95 BAB 7 BACK PROPAGATION ... 113 7...........3......................................................................... 147 SOAL-SOAL LATIHAN ................ 80 BAB 6 ADALINE ..2 Pengenalan Beberapa Pola Karakter ........................3.......... 99 7.............. 127 8.................................................................3 Variasi Backpropagation ... 109 7..........1 Standar Backpropagation .. 127 8.......... 149 ........................................................................................................1 Momentum ...............................................4 Aplikasi Backpropagation Dalam Peramalan ..................................1 Pengenalan Sebuah Pola Karakter .................................................1.3 Jumlah Pola Pelatihan .................... 97 7........2 Algoritma Jaringan Kohonen ....................................................2..................3 Pengenalan Pola ...................................... 112 7............................................................................................. 109 7................................ 88 SOAL-SOAL LATIHAN .....................................................2 MaxNet ................1 Pemilihan Bobot dan Bias Awal ......... 128 8...........................3.....3 Topi Meksiko (Mexican Hat) ......1.................1 Arsitektur Jaringan Kohonen . 135 SOAL-SOAL LATIHAN ...2.......................................2...................................................................................................................2 Fungsi Aktivasi ............................. 118 7...............2 Optimalitas Arsitektur Backpropagation ......................3 Pelatihan Standar Backpropagation ........................................... 83 6.....................2....4 Lama Iterasi ................ 141 9............................................................................. 141 9...........................................................Daftar Isi 7 5............................1 Arsitektur Backpropagation ......... 100 7..........2 MADALINE ..........3 Perubahan Bobot Berkelompok ............................. 78 SOAL-SOAL LATIHAN ................... 112 7.............................................................. 111 7................................... 119 SOAL-SOAL LATIHAN .............................................................................3......................................................................................... 119 7............................................. 97 7...............

..........................1 Pemrograman ADALINE ...................... 226 SOAL-SOAL LATIHAN .................................................................... 235 14............................................................. 242 ........................ 155 11........................................8 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab BAGIAN 2 : PEMROGRAMAN JARINGAN SYARAF TIRUAN BAB 10 PENGENALAN MATLAB .....................5 Mengakses Elemen Matriks ................................ 235 14....................... 199 12................ 218 13......................................................... 162 11.........2... 193 12................. 214 13............ 190 12..........................2 Perintah Masukan-Keluaran Dari Berkas ....................5 Modifikasi Bobot dan Bias ...............................................................................................................3 Pembentukan Vektor Masukan dan Target ...................5 Pembuatan Grafik ................... 239 14......................... 198 12..............2 Memulai Matlab .......2 Pembentukan Jaringan .................................................................................4 Statemen Perulangan ............................................... 236 14.................. 157 11..............1 Matriks ......... 188 12....................................................4 Menghitung Keluaran ADALINE ............................4.......................2 Vektor ........................................4 Manipulasi Matriks ...................................... 234 BAB 14 PEMROGRAMAN ADALINE DENGAN MATLAB ..1............................................................5 Modifikasi bobot dan Bias ......................................................1 Perintah Masukan-Keluaran dari Keyboard ........................................4.......................3 Statemen Kendali ............................................................................................................................. 213 13.................................... 207 SOAL-SOAL LATIHAN ........................................................ 238 14... 167 11.........3 Operasi Skalar ............6 Pelatihan Perceptron .................................2 Struktur While ....................2 Pembentukan Jaringan ...................... 213 13.... 152 BAB 11 MATRIKS DAN MANIPULASINYA ......................................... 185 12..........................................................1 Struktur For ................................. 181 BAB 12 PEMROGRAMAN MATLAB ............................ 203 12......................... 151 10............................................ 188 12............................... 185 12.......... 221 13....................... 216 13.................................................. 155 11..........2 Matriks Khusus ................................... 151 10.................................2.....4 Menghitung Keluaran Perceptron ..2 Masukan dan Keluaran .......3 Pembentukan Vektor Masukan dan Target ...............................1.......... 211 BAB 13 PEMROGRAMAN PERCEPTRON DENGAN MATLAB ............................1 Matriks Umum ........................... 161 11.............................................................................................. 155 11........................1 Membentuk M-File .......1 Matlab Sebagai Alat Komputasi Matriks .......... 174 SOAL-SOAL LATIHAN ................................1 Spesifikasi Perceptron Dalam Matlab ............................................................................

.......2 Inisialisasi Bobot ............................................................................ 294 16..................................................... 294 16........ 259 15............. traincgp............................................................ 243 SOAL-SOAL LATIHAN .............................1 Topologi Jaringan ....................................................................3 Resilient Backpropagation (trainrp) .....4 Mempercepat Pelatihan Backpropagation ..............................................................1 Jaringan Kompetitif .. 269 15...... 299 16..............4.........1 Inisialisasi Jaringan ................... 259 15..................................4................................ 249 15................. 257 15................................3................................................................2 Jarak Antar Neuron ...... traingdx) ..........4.................... 304 SOAL-SOAL LATIHAN . traincgb) ................4 Algoritma Gradien Conjugate (traincgf...............................6 Pelatihan ADALINE ..................................................... 269 15.......................................... 252 15.... 285 16....................... 277 SOAL-SOAL LATIHAN ................................................................................................ 310 .1.........3 Pengelompokan Pola Jaringan Kohonen ...1 Metode Penurunan Gradien dengan Momentum (traingdm) ...........................................Daftar Isi 9 14........................2........1 Pelatihan Kelompok ......... 249 15.2 Pelatihan Backpropagation ......... 260 15....3 Pelatihan Backpropagation ................................................1 Membentuk Jaringan ...............................................2.......2 Simulasi Jaringan .......... 272 15....2........................... 282 BAB 16 PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 285 16.... 275 15............ 247 BAB 15 PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 249 15....4...................................2 Variabel Laju Pemahaman (traingda......................2 Pengaturan Mandiri ............................3...1...

1018 sinapsis. melakukan perhitungan. otak mampu mengenali pola. dan mengontrol organ-organ tubuh dengan kecepatan yang lebih tinggi dibandingkan komputer digital. Otak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis. pengenalan wajah seseorang yang sedikit berubah (misal memakai topi.1 Jaringan Syaraf Biologi Otak manusia memiliki struktur yang sangat kompleks dan memiliki kemampuan yang luar biasa. dll) akan lebih cepat dilakukan manusia dibandingkan komputer.1. Axon dari neuron lain Dendrit Dendrit neuron lain Celah Sinapsis Celah Sinapsis Dendrit Axon dari neuron lain neuron lain Gambar 1.1 Jaringan Syaraf Biologi dan Tiruan 1. Neuron meneruskannya pada neuron lain. Neuron bekerja berdasarkan impuls/sinyal yang diberikan pada neuron. Sebagai perbandingan. memiliki jenggot tambahan. Bab 1 PENDAHULUAN 1. Dengan jumlah yang begitu banyak. Diperkirakan manusia memiliki 1012 neuron dan 6.1 .

Sinyal tersebut dimodifikasi (diperkuat/diperlemah) di celah sinaptik. Sinyal tersebut berupa impuls elektrik yang dikirim melalui celah sinaptik melalui proses kimiawi. Pertama. manusia sering dapat mengenali seseorang yang wajahnya pernah dilihat dari foto. Pada 2 tahun pertama umur manusia. terutama pada umur 0-2 tahun. Kedua. Berikutnya. Neuron biologi merupakan sistem yang “fault tolerant” dalam 2 hal. atau dapat mengenali seseorang yang wajahnya agak berbeda karena sudah lama tidak dijumpainya. terbentuk 1 juta sinapsis per detiknya. Frekuensi penerusan sinyal berbeda-beda antara satu sel dengan yang lain. Kalau jumlahan tersebut cukup kuat dan melebihi batas ambang (threshold).2 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Pada waktu lahir. manusia dapat mengenali sinyal input yang agak berbeda dari yang pernah kita terima sebelumnya.1. Sebagai contoh. otak manusia tetap mampu bekerja meskipun beberapa neuronnya tidak mampu bekerja dengan baik. Neuron memiliki 3 komponen penting yaitu dendrit. soma dan axon. otak mempunyai struktur yang menakjubkan karena kemampuannya membentuk sendiri aturan-aturan/pola berdasarkan pengalaman yang diterima. Dendrit menerima sinyal dari neuron lain. neuron lain kadang-kadang dapat dilatih untuk menggantikan fungsi sel yang rusak tersebut. . Jika sebuah neuron rusak. 1. Jumlah dan kemampuan neuron berkembang seiring dengan pertumbuhan fisik manusia.2 Jaringan Syaraf Tiruan Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi. maka sinyal tersebut akan diteruskan ke sel lain melalui axon. soma menjumlahkan semua sinyal-sinyal yang masuk.

dengan asumsi bahwa : Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron) Sinyal dikirimkan diantara neuron-neuron melalui penghubung-penghubung Penghubung antar neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal Untuk menentukan output.2 . Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang. perhatikan neuron Y pada gambar 1. Metode untuk menentukan bobot penghubung (disebut metode training/learning/algoritma) c. setiap neuron menggunakan fungsi aktivasi (biasanya bukan fungsi linier) yang dikenakan pada jumlahan input yang diterima. JST ditentukan oleh 3 hal : a.PENDAHULUAN 3 JST dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi. Pola hubungan antar neuron (disebut arsitektur jarigan) b.2 x1 w1 x2 w2 Y w3 x3 Gambar 1. Fungsi aktivasi Sebagai contoh.

maka sinyal akan diteruskan. w2 dan w3. . Tahun 1958. Aturan ini akan mengubah bobot perceptron apabila keluaran yang dihasilkan tidak sesuai dengan target yang diinginkan. x2 dan x3 dengan bobot hubungan masing-masing adalah w1. Apa yang dilakukan peneliti terdahulu hanya menggunakan jaringan dengan layer tunggal (single layer). Rumelhart (1986) mengembangkan perceptron menjadi Backpropagation. McCulloch dan Pitts menyimpulkan bahwa kombinasi beberapa neuron sederhana menjadi sebuah sistem neural akan meningkatkan kemampuan komputasinya. Bobot dalam jaringan yang diusulkan oleh McCulloch dan Pitts diatur untuk melakukan fungsi logika sederhana. Rosenblatt memperkenalkan dan mulai mengembangkan model jaringan yang disebut Perceptron. yang dikenal sebagai aturan delta (atau sering disebut kuadrat rata-rata terkecil). Ketiga impuls neuron yang ada dijumlahkan net = x1w1 + x2w2 + x3w3 Besarnya impuls yang diterima oleh Y mengikuti fungsi aktivasi y = f(net). Metode pelatihan diperkenalkan untuk mengoptimalkan hasil iterasinya. Fungsi aktivasi yang dipakai adalah fungsi threshold. Widrow dan Hoff (1960) mengembangkan perceptron dengan memperkenalkan aturan pelatihan jaringan. Apabila nilai fungsi aktivasi cukup kuat. yang memungkinkan jaringan diproses melalui beberapa layer.2 Sejarah Jaringan Syaraf Tiruan Jaringan syaraf tiruan sederhana pertama kali diperkenalkan oleh McCulloch dan Pitts di tahun 1943.4 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Y menerima input dari neuron x1. Nilai fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai dasar untuk merubah bobot 1.

3 Aplikasi Jaringan Syaraf Tiruan Beberapa aplikasi jaringan syaraf tiruan adalah sebagai berikut : a. kedokteran. jaringan syaraf tiruan juga dilaporkan dapat menyelesaikan masalah dalam bidang kontrol.PENDAHULUAN 5 Selain itu. angka. 1. Hal ini mirip dengan otak manusia yang masih mampu mengenali orang yang sudah beberapa waktu tidak dijumpainya (mungkin wajah/bentuk tubuh nya sudah sedikit berubah). dll. Pengenalan Pola (Pattern Recognition) Jaringan syaraf tiruan dapat dipakai untuk mengenali pola (misal huruf. b. Signal Processing Jaringan syaraf tiruan (model ADALINE) dapat dipakai untuk menekan noise dalam saluran telpon. beberapa model jaringan syaraf tiruan lain juga dikembangkan oleh Kohonen (1972). Meskipun banyak aplikasi menjanjikan yang dapat dilakukan oleh jaringan syaraf tiruan. Disamping area-area tersebut. dan lan-lain. Hopfield (1982). c. Ini dapat dilakukan mengingat kemampuan jaringan syaraf tiruan untuk mengingat dan membuat generalisasi dari apa yang sudah ada sebelumnya. Peramalan Jaringan syaraf tiruan juga dapat dipakai untuk meramalkan apa yang akan terjadi di masa yang akan datang berdasarkan pola kejadian yang ada di masa yang lampau. namun jaringan syaraf tiruan juga memiliki . Pengembangan yang ramai dibicarakan sejak tahun 1990 an adalah aplikasi model-model jaringan syaraf tiruan untuk menyelesaikan berbagai masalah di dunia nyata. suara atau tanda tangan) yang sudah sedikit berubah.

SOAL-SOAL LATIHAN 1. Model jaringan syaraf tiruan apakah yang dipakai dalam metode peramalan ? 5. Jaringan syaraf tirun bekerja berdasarkan pola yang terbentuk pada inputnya. Apa kelebihan dan kekurangan penggunaan jaringan syaraf tiruan dibandingkan dengan metode analitik ? 2.6 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab beberapa keterbatasan umum. Pertama adalah ketidak akuratan hasil yang diperoleh. Apakah yang disebut fungsi aktivasi ? Apa manfaatnya ? 4. Sebutkan komponen-komponen pembentuk jaringan syaraf tiruan 3. Apakah dalam mengaplikasikan jaringan syaraf tiruan mutlak dibutuhkan bantuan program komputer ? mengapa ? .

. xn Secara geometris.. z .. y. 2.. Transpose x (simbol xt) adalah suatu vektor x yang dinyatakan dalam sebuah baris... x1 x2 x= dengan x1. .0) ke titik terminal (x1. x t = x1 x2 . xn adalah bilangan-bilangan riil .. . Bab 2 DASAR-DASAR MATEMATIKA Proses yang terjadi dalam jaringan syaraf tiruan banyak berhubungan dengan matriks dan vektor. .. x2. . Notasinya adalah huruf kecil seperti x.. vektor x menyatakan garis berarah di ruang dimensi n dari titik awal (0. .1 Vektor Vektor adalah n tupel bilangan-bilangan riil. x2. xn)..... Maka kadang-kadang yang disebut suatu vektor x adalah xt . Untuk itulah bab ini membahas beberapa konsep dasar matematika yang banyak dipakai dalam jaringan syaraf tiruan. 0. xn Tidaklah penting apakah sebuah vektor dinyatakan dalam sebuah baris ataupun sebuah kolom.

Sebaliknya. xn) adalah vektor. . Jika k = 0 maka semua elemen vektor kx = 0... maka kx menyatakan vektor di ruang dimensi n yang panjangnya k kali panjang vektor x. .. k xn Secara geometris. maka arah vektor kx berlawanan dengan arah vektor x. Jika k > 0 maka arah vektor kx sama dengan arah vektor x.. Perkalian vektor dengan skalar Misalkan k adalah skalar dan xt = (x1.. .. x2 = y2. jika k 0.. jika k < 0.1. Hasil kali k dengan x (ditulis kx) didefinisikan sebagai suatu n tupel bilangan-bilangan riil yang elemennya adalah elemen- elemen vektor x dikalikan dengan k k x1 k x2 kx = . x1 y1 x2 y2 = apabila x1 = y1. … xn = yn . Vektor dengan semua elemen = 0 sering disebut vektor 0.1 Operasi-Operasi Vektor Beberapa operasi yang dapat dilakukan pada vektor antara lain : a.8 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Dua buah vektor x dan y dikatakan sama (simbol x = y) apabila semua komponen yang bersesuaian sama. x2.. . xn yn 2.

..... . Perkalian titik vektor x dengan vektor y (sering disebut dot product x dan y) adalah suatu skalar yang merupakan jumlahan dari hasil kali elemen-elemen vektor x dan y yang bersesuaian x1 y1 x2 y2 Jika x = dan y = maka x. Misalkan x. Dua buah vektor x dan y (keduanya bukan vektor 0) disebut ortogonal apabila xy = 0. Penjumlahan/pengurangan vektor x dan y (simbol x + y) adalah suatu vektor di dimensi n yang elemen- elemennya adalah penjumlahan/pengurangan elemen x dengan elemen y.. dan c1. c2 adalah skalar.. .DASAR-DASAR MATEMATIKA 9 b.. Penjumlahan 2 buah vektor Misalkan x dan y adalah 2 buah vektor pada ruang dimensi yang sama (misal dimensi n). xn yn Perhatikan bahwa hasil kali titik 2 buah vektor menghasilkan suatu skalar..y = x1 y1 + x2 y2 +. . xn yn xn yn xn yn xn yn c.. .. Beberapa sifat operasi vektor adalah sebagai berikut : ... x1 y1 x1 y1 x1 y1 x1 y1 x2 y2 x2 y2 x2 y2 x2 y2 + = .. .. .. + xn yn . . y dan z adalah vektor-vektor dalam ruang yang sama. = . 0 adalah vektor nol.. bukan suatu vektor.. Hasil kali titik 2 vektor Misalkan x dan y adalah 2 buah vektor pada ruang dimensi yang sama (misal dimensi n).

x. 1) dan zt = (3. Asosiatif : x + (y + z) = (x + y) + z c1 (c2 x) = (c1 c2) x iii.y = c1 (x . Elemen Identitas x+0 = 0+x = 0 b. Distributif : x . Komutatif : x .y . Distributif : c1 (x + y) = c1 x + c1 y (c1 + c2) x = c1 x + c2 x iv. yt = (2.y = y . x = 0 jika x = 0 Contoh 2. Hitunglah : a. (c1 y) iii. 2 x . -3.1 Diketahui vektor xt = (1. (y + z) = x . y + x . Asosiatif : (c1 x) . Operasi penjumlahan vektor dan perkalian dengan skalar i. 2. 3). Komutatif : x+y = y+x ii. -1).x ii. 2. Operasi perkalian titik i.z iv.10 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab a. y) = x . x – z b. 3 (x – 7y) c.

3 (x – 7y) = 3 ( 2 . Carilah vektor v yang memenuhi 2x – y + v = 7v + z Penyelesaian 2x – y + v = 7v + z 6 v = 2x – y – z .2 = 2 2 = 0 3 1 3 ( 1) 4 1 2 1 14 13 b.2 Diketahui vektor x.(-3) + 3. 2 x . x – z = 2 .7 3 ) = 3( 2 .DASAR-DASAR MATEMATIKA 11 Penyelesaian 1 3 1 3 2 a.1.y = 2 (1.1) = 2 (-1) = -2 Contoh 2. y dan z seperti contoh 2.2 + 2. 21 ) = 3 23 = 3 1 3 7 4 39 69 12 d.

2) dan yt = (-3. Carilah skalar c1 dan c2 sehingga c1 xt + c2 yt = (5.2 ) = 1 6 ( 5 ) = 3 1 1 6 1 2 5 6 1 Contoh 2.4 Tentukan vektor-vektor yang tegak lurus dengan vektor xt = (1.3 Diketahui vektor xt = (1.3 c2 = 5 2 c1 + 2 c2 = 2 Yang jika diselesaikan menghasilkan c1 = 2 dan c2 = -1 Contoh 2. 3 . 2) Penyelesaian 1 3 5 c1 + c2 = 2 2 2 c1 3c2 5 = 2c1 2c2 2 Menurut kesamaan dua vektor.12 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 2 3 3 Maka x = 1 6 (2x – y – z) = 1 6 (2 2 . 2). -2) . maka berarti c1 .

Vektor yt = (y1. . Norma/panjang vektor x didefinisikan sebagai x x12 x22 .DASAR-DASAR MATEMATIKA 13 Penyelesaian Dua buah vektor saling tegak lurus (ortogonal) bila hasil kali titiknya = 0. 2 y2 2s Maka vektor yang tegak lurus dengan x berbentuk y = = y2 s dengan s = bilangan riil Jadi ada tak berhingga vektor yang tegak lurus dengan vektor x. y2) yang tegak lurus dengan x akan memenuhi persamaan : 1 y1 + (-2) y2 = 0 atau y1 = 2 y2. Hitunglah : . adalah vektor searah dengan x dengan panjang = 1. x2.. xn2 Beberapa sifat norma vektor adalah sebagai berikut : a. -3.2 Norma Vektor Misalkan xt = (x1. maka cx c x b. Jika c adalah sembarang bilangan riil. . Jarak 2 buah vektor x dan y adalah x y x c. Pertidaksamaan Cauchy-Schwartz : xy x y Contoh 2. x 2 2 2 d. 2) dan yt = (2. -4). Semua vektor-vektor tersebut memiliki arah yang sama 2. xn) adalah suatu vektor..5 Misalkan xt = (1..1. 2..

2x y b. x y 1 c. y = 22 22 ( 4)2 = 24 2 1 2 24 6 1 1 2 1 Maka y = 2 = = y 24 24 6 4 4 2 24 6 . y y Penyelesaian 1 2 4 a. 2x + y = 2 3 + 2 = 4 2 4 0 Maka 2x y = 42 ( 4)2 02 = 4 2 b. x y = 12 ( 3)2 22 + 22 22 ( 4) 2 = 14 24 c. y y 1 d.14 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab a.

maka himpunan vektor {x1.6 Jika x t = (1.3 Ketergantungan Linier Himpunan vektor-vektor {x1. carilah semua skalar c sehingga cx 3 Penyelesaian cx c x c 12 22 42 c 21 Didapat c 21 = 3 atau c = 3 21 2. 10. 2. Jika tidak ada skalar dengan sifat demikian. cn yang tidak semuanya 0 sedemikian hingga c1x1 + c2x2 + . . Setiap vektor dalam Rn dapat dinyatakan sebagai kombinasi vektor-vektor yang bebas linier tersebut. Di ruang dimensi n (= Rn)....7 Tentukan apakah vektor-vektor xt = (2. xn} disebut bebas linier. 2) dan zt = (2. . + cnxn = 0. terdapat paling banyak n buah vektor yang bebas linier.. Maka dikatakan bahwa vektor-vektor yang bebas linier tersebut membentuk basis bagi Rn Contoh 2. y = = 1 y 24 24 24 1 Perhatikan bahwa y = 1 untuk sembarang vektor y y Contoh 2. 6. c2. .1. .. x2. 4). yt = (3. ... -4) merupakan vektor-vektor yang bebas linier. 4).. . x2.DASAR-DASAR MATEMATIKA 15 2 2 2 1 2 2 4 d. . -1. xn} dikatakan bergantung linier apabila terdapat skalar c1.

10. -4) = 0 atau 2 c1 + 3 c2 + 2 c3 = 0 .. -1....2 Matriks Matriks adalah kumpulan bilangan-bilangan yang disusun dalam larik baris dan kolom.. Jika matriks A terdiri dari m baris dan n kolom (sering disebut ordo mxn). a1n a21 a22 .2.. 6. am1 am 2 .c1 + 6 c2 + 10 c3 = 0 4 c1 + 2 c2 – 4 c3 = 0 Ketiga persamaan linier tersebut menghasilkan penyelesaian c1 = c2 = c3 = 0.. 4) + c2 (3. B. 2) + c3 (2.1 Jenis-jenis Matriks Matriks nol adalah matriks yang semua elemennya = 0 . Umumnya matriks diberi notasi huruf kapital A. a2 n A = aij = .. 2. Berarti ketiga vektor tersebut bebas linier 2. .. amn Perhatikan bahwa matriks yang terdiri dari 1 kolom sama dengan suatu vektor.16 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Penyelesaian Persamaan c1xt + c2yt + c3 zt = 0 berarti c1 (2. maka A dapat ditulis sebagai : a11 a12 ..

. 0 0 . c amn .2 Operasi pada Matriks Beberapa operasi yang dapat dilakukan pada matriks antara lain : a... c a11 c a12 . a11 0 .2.. a22. . Perkalian matriks dengan skalar Jika A adalah sembarang matriks dan c adalah skalar. c a2 n cA = .. 0 0 1 .. 0 0 . 0 D= dengan tidak semua a11.DASAR-DASAR MATEMATIKA 17 Matriks bujur sangkar adalah matriks yang jumlah baris = jumlah kolom Matriks diagonal D adalah matriks bujur sangkar dimana semua elemen di luar diagonal utama = 0... c a1n c a21 c a22 .. 1 0 .... 0 0 a22 .. 1 2....... ann = 0 . . c am1 c am 2 .. dan tidak semua elemen pada diagonal utama = 0.. maka cA adalah matriks yang elemennya merupakan perkalian elemen matriks A dengan skalar c. 0 I = ..... ann Jika semua elemen diagonal utama pada matriks diagonal = 1 maka matriks tersebut disebut matriks identitas (= I)..

.... bmn a11 b11 a12 b12 . b2 n Jika A = dan B = . a2 n b2 n maka A + B = .B berordo mxp dengan elemen : cik = n aij b jk = ai1b1k ai2 b2 k .... Transpose matriks Transpose matriks A (simbol At) diperoleh dari matriks A dengan cara menukar baris dan kolomnya. a1n b1n a21 b21 a22 b22 . ainbnk j 1 d.... amn bm1 bm 2 ... am1 am 2 .... . Jika A berordo mxn.. a1n b11 b12 .18 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab b.. maka C = A. Apabila A berordo mxn dan B berordo nxp. Perkalian matriks Matriks A dapat dikalikan dengan matriks B apabila jumlah kolom matriks A = jumlah baris matriks B. am1 bm1 am 2 bm 2 . Hasil penjumlahan/pengurangan 2 buah matriks sama dengan penjumlahan/pengurangan elemen-elemen matriks yang seletak.... maka At berordo nxm .... a2 n b21 b22 . amn bmn c.... b1n a21 a22 . a11 a12 . Penjumlahan/pengurangan matriks Dua buah matriks dapat dijumlahkan/dikurangkan jika ordonya sama.

.... am1 am 2 . . amn a1m a2 m . anm Jika suatu matriks sama dengan transposenya....... B.. an2 Jika A = maka At = . B A e. maka matriks tersebut dinamakan matriks simetris.. dan C sebagai berikut : 2 1 2 3 1 4 0 1 A= 0 1 1 ... B= 1 2 . a1n a11 a21 .. A I (dengan I adalah matriks identitas) Penyelesaian 2 1 2 4 2 4 a. (C B)t f.DASAR-DASAR MATEMATIKA 19 a11 a12 . a2 n a12 a22 .8 Diketahui matriks A. 2 A b. A B d. Contoh 2. an1 a21 a22 . A + B c. C = 2 2 1 4 1 4 1 0 Hitunglah (jika mungkin) : a. 2 A = 2 0 1 1 = 0 2 2 4 1 4 8 2 8 ..

Secara umum AB BA 3 1 4 0 1 13 4 e. untuk sembarang matriks bujur sangkar A. A B = 0 1 1 1 2 = 0 2 4 1 4 1 0 9 2 d. AI = 0 1 1 0 1 0 = 0 1 1 4 1 4 0 0 1 4 1 4 Secara umum. C B = 1 2 = 2 2 1 9 2 1 0 13 9 Maka (C B)t = 4 2 2 1 2 1 0 0 2 1 2 f. A I = IA=A SOAL-SOAL LATIHAN 1 1. Kenyataan ini menunjukkan bahwa perkalian matriks tidaklah komutatif (meskipun perkalian- perkalian tersebut dapat dilakukan). A + B tidak mungkin dilakukan karena ordonya tidak sama (ordo A = 3x3 sedangkan ordo B = 3x2) 2 1 2 3 1 3 4 c. Tunjukkan bahwa untuk sembarang vektor x. maka x =1 x .20 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab b. BA tidak mungkin dilakukan karena jumlah kolom B (= 2) tidak sama dengan jumlah baris A (= 3).

Ulangi soal 4 jika x. Apakah operasi x xt dapat dilakukan ? Jika dapat.z dengan x 0.y = x. y. Misalkan x. berapa ordo matriks hasilnya ? b. x1 x2 6. 1) dan yt = (4. c. 3) ortogonal 4.. berapa ordo matriks hasilnya ? c. Apakah operasi xA dapat dilakukan ? Jika dapat. Misalkan x = adalah suatu vektor dan A adalah sembarang . Jelaskan mengapa operasi hasil kali titik pada sembarang vektor- vektor x.y) + z d.. Apakah operasi Ax dapat dilakukan ? Jika dapat. z dan skalar c berikut ini tidak dapat dilakukan a. x. Tentukan c jika vektor xt = (c. B= 4 . y dan z merupakan matriks-matriks bujur sangkar dengan ordo yang sama. x. c2 dan matriks A.z) c. vektor atau skalar ? 7.DASAR-DASAR MATEMATIKA 21 2. Diketahui A = 3 1 2 . (x. xn matriks bujur sangkar berordo nxn a. (x + y) 3. berlakulah (c1 c2) A = c1 (c2 A) 0 2 0 8. y b. Apakah y = z ? 5. Tunjukkan bahwa untuk setiap konstanta c1. 1 3 1 . (y. C= . apakah hasilnya berupa matriks.

Bt D b. BAC . ABC c. Hitunglah (jika dapat dilakukan) 1 4 1 a.22 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 2 0 1 D= 2 3 1 .

xm adalah unit-unit input dan wj1.. Jalur-jalur tersebut memiliki bobot/kekuatan yang berbeda-beda. wjm adalah bobot penghubung dari unit-unit tersebut ke unit keluaran Yj. maka unit penjumlah akan memberikan keluaran sebesar uj = x1 wj1 + x2 wj2 + . . struktur dan pola hubungan antar unit-unit tersebut akan menentukan arsitektur jaringan (dan juga model jaringan yang terbentuk). + xm wjm 3. x2. Suatu unit penjumlah yang akan menjumlahkan input-input sinyal yang sudah dikalikan dengan bobotnya... Misalkan x1.. Neuron terdiri dari 3 elemen pembentuk : 1. wj2. Fungsi aktivasi yang akan menentukan apakah sinyal dari input neuron akan diteruskan ke neuron lain ataukah tidak. Jumlah. Bobot yang bernilai positip akan memperkuat sinyal dan yang bernilai negatif akan memperlemah sinyal yang dibawanya.. Himpunan unit-unit yang dihubungkan dengan jalur koneksi. . . 2.. . Bab 3 MODEL NEURON Neuron adalah unit pemroses informasi yang menjadi dasar dalam pengoperasian jaringan syaraf tiruan. .

. Dalam beberapa model (misal perceptron). bobot-bobot tersebut akan dimodifikasi untuk meningkatkan keakuratan hasil. Model semacam ini tepat digunakan untuk pengenalan pola karena kesederhanaannya. .. . Bobot-bobot ini saling independen.. Perhatikan bahwa dalam jaringan ini. x2. Ym).24 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 3.1 Arsitektur Jaringan Beberapa arsitektur jaringan yang sering dipakai dalam jaringan syaraf tiruan antara lain : a. semua unit input dihubungkan dengan semua unit output. Y2. . meskipun dengan bobot yang berbeda-beda. . Jaringan Layar Tunggal (single layer network) Dalam jaringan ini. hanya ada sebuah unit neuron output.xn) dan m buah unit output (Y1. w11 x1 Y1 wj1 wm1 w1i wji xi Yj wmi w1n wjn xn wmn Ym Gambar 3. Besaran wji menyatakan bobot hubungan antara unit ke-i dalam input dengan unit ke-j dalam output. Demikian pula dengan unit output. Tidak ada unit input yang dihubungkan dengan unit input lainnya.. .1 menunjukkan arsitektur jaringan dengan n unit input (x1. Selama proses pelatihan. sekumpulan input neuron dihubungkan langsung dengan sekumpulan outputnya.1 Gambar 3.

.. . Hanya saja.2 Gambar 3.. ada neuron output yang memberikan sinyal pada unit input (sering disebut feedback loop) .. zp wjp v1n wmp xn vpn Ym Gambar 3. selain unit input dan output. z1 wj1 w1i wm1 ... x1 v11 Y1 w11 vp1 .. ... .2 adalah jaringan dengan n buah unit input (x1. zp) dan m buah unit output (Y1.. xn). Dalam jaringan ini...... . xi w1p Yj wpi . . Jaringan Reccurent Model jaringan reccurent mirip dengan jaringan layar tunggal ataupun ganda. . sebuah layar tersembunyi yang terdiri dari p buah unit (z1. Sama seperti pada unit input dan output.. Y2.. Ym) Jaringan layar jamak dapat menyelesaikan masalah yang lebih kompleks dibandingkan dengan layar tunggal. c. unit-unit dalam satu layar tidak saling berhubungan. . Dimungkinkan pula ada beberapa layar tersembunyi. x2. Jaringan Layar Jamak (multi layer network) Jaringan layar jamak merupakan perluasan dari layar tunggal. ada unit –unit lain (sering disebut layar tersembunyi). meskipun kadangkala proses pelatihan lebih kompleks dan lama.MODEL NEURON 25 b.

Fungsi identitas f(x) = x . Jika net = xi wi . tapi berharga -1 atau 1 (sering disebut threshold bipolar). maka fungsi aktivasinya adalah f (net) = f ( xi wi ). Fungsi sigmoid 1 f(x) = x 1 e Fungsi sigmoid sering dipakai karena nilai fungsinya yang terletak antara 0 dan 1 dan dapat diturunkan dengan mudah. Jadi 1 jika x a f(x) = 1 jika x a b. Beberapa fungsi aktivasi yang sering dipakai adalah sebagai berikut : a.2 Fungsi Aktivasi Dalam jaringan syaraf tiruan. Fungsi threshold (batas ambang) 1 jika x a f(x) = 0 jika x a Untuk beberapa kasus. f’(x) = f(x) (1 – f(x)) c. Argumen fungsi aktivasi adalah net masukan (kombinasi linier masukan dan bobotnya). fungsi aktivasi dipakai untuk menentukan keluaran suatu neuron. fungsi threshold yang dibuat tidak berharga 0 atau 1.26 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 3.

maka keluaran unit penjumlah adalah net = b xi wi i Fungsi aktivasi threshold menjadi : 1 jika net 0 f (net) = 1 jika net 0 x1 w1 x2 w2 Y b 1 Gambar 3. 1] 3. Unit yang sedemikian itu disebut Bias (lihat gambar 3. Bias dapat dipandang sebagai sebuah input yang nilainya = 1.3).1 . 1] atau [-1. Bias berfungsi untuk mengubah nilai threshold menjadi = 0 (bukan = a).3 Bias dan Threshold Kadang-kadang dalam jaringan ditambahkan sebuah unit masukan yang nilainya selalu = 1.MODEL NEURON 27 Fungsi identitas sering dipakai apabila kita menginginkan keluaran jaringan berupa sembarang bilangan riil (bukan hanya pada range [0. Jika melibatkan bias.3 Contoh 3.

Pada setiap kali pelatihan.3 dan bobot bias = b = 1. ADALINE dan .1 dan memiliki bias.2 + (0. Pasangan data tersebut berfungsi sebagai “guru” untuk melatih jaringan hingga diperoleh bentuk yang terbaik.2.28 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Suatu jaringan layar tunggal seperti gambar 3. suatu input diberikan ke jaringan.92 i Karena net > 0 maka keluaran jaringan = y = f(net) = 1. Selisih antara keluaran jaringan dengan target (keluaran yang diinginkan) merupakan kesalahan yang terjadi.3) = 0. Jaringan akan memproses dan mengeluarkan keluaran.7 dan x2 = 2. terdapat sejumlah pasangan data (masukan – target keluaran) yang dipakai untuk melatih jaringan hingga diperoleh bobot yang diinginkan. Jaringan akan memodifikasi bobot sesuai dengan kesalahan tersebut. Tentukan keluaran neuron Y jika fungsi aktivasinya adalah fungsi threshold bipolar Penyelesaian net = b xi wi = 1. ada 2 macam pelatihan yang dikenal yaitu dengan supervisi (supervised) dan tanpa supervisi (unsupervised).1 * -0. Jaringan perceptron. 3.5) + (2. Dalam pelatihan dengan supervisi.7 * 0. “Guru” akan memberikan informasi yang jelas tentang bagaimana sistem harus mengubah dirinya untuk meningkatkan unjuk kerjanya.4 Pelatihan Dengan dan Tanpa Supervisi Berdasarkan cara memodifikasi bobotnya.5 dan w2 = -0. Bobot garis w1 = 0.3 terdiri dari 2 input x1 = 0.

perubahan bobot jaringan dilakukan berdasarkan parameter tertentu dan jaringan dimodifikasi menurut ukuran parameter tersebut. Sebagai ilustrasi. Ini berarti untuk data pelatihan yang cukup banyak. dalam pelatihan tanpa supervisi (unsupervised learning) tidak ada “guru” yang akan mengarahkan proses pelatihan. Sebagai contoh. Akan tetapi kelemahan utama pelatihan dengan supervisi adalah dalam hal pertumbuhan waktu komputasinya yang beroder eksponensial. pelatihan dengan supervisi dapat diandaikan sebagai skripsi yang dibimbing oleh seorang dosen. Sebaliknya.MODEL NEURON 29 backpropagation merupakan model-model yang menggunakan pelatihan dengan supervisi. mengarahkan dan meminta perbaikan agar kualitas skripsi meningkat. jaringan terdiri dari 2 layar. Mahasiswa mengerjakan skripsi sebaik- baiknya berdasarkan ukuran tertentu (misal dibandingkan dengan skripsi yang sudah ada sebelumnya atau dibandingkan dengan hasil skripsi temannya). dosen akan mengkritik. prosesnya menjadi sangat lambat. Dalam pelatihannya. dalam pelatihan tanpa supervisi dapat dibayangkan sebagai skripsi tanpa dosen pembimbing. Pada setiap kali pengumpulan berkas skripsi. yaitu layar input dan layar kompetisi. dalam model jaringan kompetitif. Bobot neuron pemenang akan dimodifikasi sehingga lebih menyerupai data masukan. Sebaliknya. Layar input menerima data eksternal. Layar kompetitif berisi neuron-neuron yang saling berkompetisi agar memperoleh kesempatan untuk merespon sifat-sifat yang ada dalam data masukan. model pelatihan dengan supervisi lebih banyak digunakan dan terbukti cocok dipakai dalam berbagai aplikasi. Neuron yang memenangkan kompetisi akan memperoleh sinyal yang berikutnya ia teruskan. . Berdasarkan hasil yang pernah dilaporkan.

Pelatihan dengan supervisi. dll b. Backpropagation. aplikasi. Neocognitron. Hopfield. ADALINE. Hopfield. fungsi aktivasi dan perhitungan yang berbeda-beda dalam prosesnya. Perceptron. Perceptron. Kohonen.30 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 3. Dalam bab ini. Berdasarkan arsitekturnya. Neocognitron. Hebbian. dll Perhatikan bahwa ada beberapa model yang dapat dikategorikan ke dalam kedua jenis.5 Taksonomi Jaringan Syaraf Tiruan Hingga kini terdapat lebih dari 20 model jaringan syaraf tiruan. dll . Pelatihan tanpa supervisi Contoh model yang masuk dalam kategori ini antara lain model Competitive. Contoh model yang masuk dalam kategori ini antara lain model Hebbian. model jaringan syaraf tiruan dapat digolongkan menjadi : a. Backpropagation. Berdasarkan strategi pelatihan. LVQ (Learning Vektor Quantization). Boltzman. LVQ. dijelaskan pembagian jaringan syaraf tiruan berdasarkan cara pembelajaran. Jaringan Layar Tunggal Model yang masuk kategori ini antara lain : ADALINE. dan jenis arsitektur. Jaringan Layar Jamak Model yang masuk kategori ini antara lain : MADALINE. Masing-masing model menggunakan arsitektur. dll b. model jaringan dibagi menjadi : a.

dll Aplikasi yang sudah berhasil ditemukan antara lain a. Hopfield. Pengenalan Pola Model yang bisa digunakan untuk aplikasi ini antara lain : ART (Adaptive Resonance Theory). MADALINE. LVQ. LVQ. dll b. dll d. Backpropagation. Klasifikasi Model yang bisa digunakan untuk aplikasi ini antara lain : ADALINE. Neocognitron. Hopfield. Boltzman Machine.6 Neuron McCulloch .Pitts Model jaringan syaraf tiruan yang digunakan McCulloch dan Pitts merupakan model yang pertama ditemukan. Backpropagation. Peramalan Model yang bisa digunakan untuk aplikasi ini antara lain : ADALINE. dll 3. Boltzman. Model neuron McCulloch .MODEL NEURON 31 c. dll c. Fungsi aktivasinya biner. . Reccurent Model yang masuk kategori ini antara lain : BAM (Bidirectional Associative Memory).Pitts memiliki karakteristik sebagai berikut : a. Backpropagation. Backpropagation. Optimisasi Model yang bisa digunakan untuk aplikasi ini antara lain : ADALINE.

. Perhatikan bahwa semua penghubung dari x1... xn ke Y merupakan garis yang memperkuat sinyal (bobot positip). Akan tetapi jika ada neuron lain (misal Y2). n buah penghubung dari x1.4 menunjukkan model neuron McCulloch-Pitts. xn. xn+m juga memiliki bobot yang sama. maka neuron akan meneruskan sinyal.4 1 jika net a Fungsi aktivasi neuron Y adalah f (net) = 0 jika net a . Hal yang analog berlaku untuk garis yang memperlemah sinyal (bobot negatif) ke arah neuron tertentu.. Neuron Y menerima sinyal dari (n+m) buah neuron x1. xn+m. ... .. Semua garis yang memperkuat sinyal (bobot positip) ke arah suatu neuron memiliki kekuatan (besar bobot) yang sama. . Apabila total input ke neuron tersebut melebihi threshold. xn+m Gambar 3.. ... . . maka bobot penghubung dari x1 ke Y1 boleh berbeda dengan bobot garis dari x1 ke Y2 x1 w .. c. Demikian juga semua penghubung dari xn+1. xn w Y -p xn+1 -p ... . x2. xn+1.. . sedangkan m penghubung sisanya merupakan garis yang memperlemah sinyal (bobot negatif).32 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab b. Gambar 3.. Setiap neuron memiliki batas ambang (threshold) yang sama. xn ke Y memiliki bobot yang sama..

x1 1 Y 2 1 x2 Gambar 3.2 Fungsi logika “dan” dengan 2 masukan x1 dan x2 akan memiliki keluaran Y = 1 bila dan hanya bila kedua masukan bernilai 1. Contoh 3.5 . tetapi dengan metode analitik (dan coba-coba). Beberapa contoh berikut ini memaparkan bagaimana neuron McCulloch-Pitts digunakan untuk memodelkan fungsi logika sederhana.5.MODEL NEURON 33 Bobot tiap garis tidak ditentukan dengan proses pelatihan.1 Tabel 3. Bobot tiap garis adalah = 1 dan fungsi aktivasi memiliki nilai threshold = 2.1 x1 x2 y 1 1 1 1 0 0 0 1 0 0 0 0 Buatlah model neuron McCulloch-Pitts untuk menyatakan fungsi logika “dan” Penyelesaian Model neuron fungsi “dan’ tampak pada gambar 3. Tabel kebenarannya tampak pada tabel 3.

Berarti jaringan dapat dengan tepat merepresentasikan fungsi “dan”.1 + 0.1 = 2 1 1 0 1. nilai fungsi aktivasi tampak dalam tabel 3. Masalahnya adalah mencari garis lurus yang dengan tepat memisahkan semua titik dengan nilai = 0 dalam satu bagian dan semua titik dengan nilai = 1 dalam bagian yang lain.1).0).2 x1 x2 2 y = f(net) = 1 jika net 2 net = xi w 0 jika net 2 i 1 1 1 1.1)=1 f (0. (0.1 = 0 0 Tampak bahwa keluaran jaringan tepat sama dengan tabel logika “dan”. 0.34 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Untuk semua kemungkinan masukan.1 = 1 0 0 0 0.0)=0 Gambar 3.1)=0 f (1.6 . Ada banyak garis yang bisa dibuat. dalam fungsi “and” kita memiliki 4 titik masing- masing dengan koordinat (1. (1.1 = 1 0 0 1 0.0)=0 f (1.2 Tabel 3.1) dan (0. f (0.1 + 1.1 + 0.5 seperti yang tampak pada gambar 3. Salah satunya adalah garis x1 + x2 = 1. 0 dan 0.0).6 Secara geometris. masing-masing dengan nilai 1.1 + 1.

Contoh 3.2. batas garis pemisah ditentukan dari persamaan net = b xi wi = 0 i w1 b b x1w1 x2 w2 0 atau x2 x1 w2 w2 Apabila garis pemisahnya diambil dengan persamaan x1 + x2 = 2. w1 b (atau x2 = . Dengan menggunakan nilai bias. salah satunya adalah w1 = w2 = 1 dan b = -2. Pembaca dapat mencoba-coba berbagai bobot dan nilai threshold yang lainnya. Tidak diperlukan program ataupun iterasi bobot. . Akan tetapi untuk masalah yang lebih kompleks (misal masukan/keluaran tidak biner atau lebih dari 2) maka penyelesaian analitik umumnya tidak dapat dipakai.MODEL NEURON 35 Besarnya nilai threshold dapat diganti menjadi suatu bias dengan nilai yang sama.x1 + 2).3 Buatlah model neuron McCulloch-Pitts untuk menyatakan fungsi logika “atau” Penyelesaian Fungsi logika “atau” dengan 2 masukan x1 dan x2 akan memiliki keluaran Y = 1 bila dan hanya bila salah satu masukannya bernilai 1.1 dan = 2. w2 w2 Ada banyak w1. Dalam contoh 3. w2 dan b yang memenuhi persamaan tersebut.5. jaringan hanya dibuat untuk merepresentasikan fungsi yang sederhana sehingga bobot dan threshold jaringan dapat dibuat secara analitik. maka berarti = . seperti penyelesaian pada gambar 3.

3 x1 x2 y 1 1 1 1 0 1 0 1 1 0 0 0 Model neuron fungsi “atau” tampak pada gambar 3.4 Tabel 3. Bobot tiap garis adalah = 1 dan fungsi aktivasi memiliki nilai threshold = 1. x1 1 Y 1 1 x2 Gambar 3. nilai fungsi aktivasi tampak dalam tabel 3.1 = 2 1 1 0 1.7 Untuk semua kemungkinan masukan.36 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tabel kebenarannya tampak pada tabel 3.3 Tabel 3.1 = 1 1 .4 x1 x2 2 y = f(net) = 1 jika net 1 net = xi w 0 jika net 1 i 1 1 1 1.1 + 1.7.1 + 0.1 = 1 1 0 1 0.1 + 1.

5 x1 x2 y 1 1 0 1 0 1 0 1 0 0 0 0 Perhatikan bahwa untuk memperoleh nilai threshold = 1 jika x1 = 1. Model neuron fungsi x1 x2 tampak pada gambar 3. maka bobot garis yang berhubungan dengan x1 harus lebih besar dari bobot garis dari x2.MODEL NEURON 37 0 0 0. Bobot garis dari x1 = 2 dan bobot garis dari x2 = -1 dan fungsi aktivasi memiliki nilai threshold = 2.1) tidak besar (sehingga nilai fungsi thresholdnya akan menjadi = 1). maka bobot garis dari x2 harus memperlemah sinyal (bobot negatif).4 Buatlah model neuron McCulloch-Pitts dengan 2 masukan x1 dan x2 untuk menyatakan fungsi logika x1 x2 Penyelesaian Tabel kebenaran fungsi x1 x2 tampak pada tabel 3.5 Tabel 3.8.1 = 0 0 Contoh 3. Akan tetapi untuk mencegah agar nilai f(1. x1 2 Y 2 -1 x2 .1 + 0.

1. Hal f (0.6 x1 x2 y 1 1 0 1 0 1 0 1 1 0 0 0 Jaringan untuk menyatakan fungsi “XOR” tidak bisa dibuat dengan unit masukan yang langsung berhubungan dengan unit keluaran seperti pada contoh-contoh terdahulu.1). Unit masukan yang langsung berhubungan dengan unit keluaran dapat dipandang sebagai sebuah garis lurus yang memisahkan semua titik bernilai 0 (titik (1.1)=1 f (1.0)) kedalam satu bagian dengan semua titik lain yang bernilai 1 (titik (1.8 Contoh 3.1) yang masing-masing memiliki nilai y = 0.0)=0 f (1.1)) kedalam bagian yang lain.0) dan (0.0)=1 . 1. Hal ini bisa dilihat secara geometris sebagai berikut : Keempat pasangan masukan menyatakan 4 buah titik (0.0).1)=0 f (0.1) dan (0. dan 0.38 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gambar 3.5 Buatlah model neuron McCulloch-Pitts dengan 2 masukan x1 dan x2 untuk menyatakan fungsi logika “XOR” Penyelesaian Tabel kebenaran fungsi “XOR” tampak pada tabel 3.6 Tabel 3. (0.0) dan (1. (1.

2 x1 2 z1 1 -1 Y 1 -1 1 x2 2 z2 2 Gambar 3.10. seperti yang tampak pada gambar 3. Bobot garisnya adalah 2 dan –1. maka bobotnya sama seperti fungsi “atau” pada contoh 3. nilai fungsi aktivasi z1 dan z2 tampak dalam tabel 3. Unit- unit pada layar tersembunyi dihubungkan langsung dengan keluaran melalui fungsi “atau” Perhatikan bagaimana hubungan antara unit-unit input dengan unit di layar tersembunyi. Gambar 3.MODEL NEURON 39 tersebut tidak dapat dengan hanya menggunakan sebuah garis lurus. Layar tersembunyi terdiri dari 2 neuron yang masing- masing dipakai untuk membentuk x1 x2 dan x1 x2 . Hubungan antara unit tersembunyi ke fungsi keluaran adalah fungsi “atau”.10 Untuk semua kemungkinan masukan x1 dan x2. Jaringan tersebut merupakan gabungan dari 2 buah fungsi “dan tidak” seperti dalam contoh 3.3 dengan kedua unit pada layar tersembunyi sebagai unit masukan.4. Maka dibutuhkan jaringan dengan sebuah layar tersembunyi (hidden layer) seperti tampak pada gambar 3.4 a Tabel 3. Minimal harus ada 2 buah garis.9 x1 XOR x2 x1 x2 x1 x2 .9.4 a x1 x2 net 1 z1 = f(net1) net 2 z2 = f(net2) .

2 = 1 0 1 0 1.1 + 0.1 = 0 0 1 0 1.2 + 1 (-1) = 1 0 1 (-1) + 1. Gambarkanlah jaringan syaraf tiruan layar jamak yang terdiri dari 5 unit masukan. 2 layar tersembunyi yang masing-masing berisi 4 dan 3 neuron.2 + 0 (-1) = 2 1 1 (-1) + 0. 3. 4 dan -2.4 b z1 z2 net Y = f(net) 0 0 0. Buktikan bahwa fungsi aktivasi sigmoid f(x) = x memiliki 1 e turunan f’(x) = f(x) (1 – f(x)) 2.2 = 0 0 Selanjutnya.2 = 2 1 0 0 0.2 + 1 (-1) = -1 0 0 (-1) + 1. -20. dari z2 = 1 dan threshold = 1).1 + 1.1 + 0.1 = 1 1 0 0 0. Hasilnya tampak pada tabel 3.4 b Tabel 3. serta unit keluaran tunggal. nilai-nilai z1 dan z2 ini diteruskan ke fungsi aktivasi Y (dengan bobot dari z1 = 1.1 + 0.1 = 0 0 SOAL-SOAL LATIHAN 1 1. Bobot . Suatu neuron j menerima masukan dari 4 neuron lain dengan fungsi aktivasi masing-masing bernilai 10.40 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 1 1.2 + 0 (-1) = 0 0 0 (-1) + 0.1 = 1 1 0 1 0.2 = -1 0 0 1 0.

Sigmoid dengan sebuah tambahan bias 4.8. Threshold biner (0 atau 1) dengan nilai threshold = 2 b.MODEL NEURON 41 dari keempat neuron tersebut ke neuron j masing-masing sebesar 0. x2. N4 dan N5 masing- masing memiliki threshold = 2.2. Hitunglah keluaran neuron j jika fungsi aktivasi yang digunakan pada neuron j adalah : a.11. Tentukan respon/keluaran unit N5 untuk semua kemungkinan masukan N1 dan N2 N1 1 N3 2 1 N5 2 2 N2 -1 N4 Gambar 3. Perhatikan jaringan syaraf McCulloch-Pitts dengan input biner yang tampak pada gambar 3. Unit N3.11 6. dan x3 . Buatlah jaringan untuk menyatakan fungsi “NAND” dengan 2 masukan biner x1 dan x2 5. Sigmoid c. Buatlah model McCulloch-Pitts untuk menyatakan fungsi logika “AND” dalam 3 variabel x1.9. 0.0 dan -0. -1.

Gambar 5. wn xn Arsitektur jaringan perceptron mirip dengan arsitektur jaringan Hebb. tetapi memiliki kemungkinan nilai -1.1 Jaringan terdiri dari beberapa unit masukan (ditambah sebuah bias). Untuk suatu harga threshold θ yang ditentukan : . Model tersebut merupakan model yang memiliki aplikasi dan pelatihan yang paling baik pada era tersebut. 5..1 Arsitektur Jaringan 1 b x1 w1 x2 w2 Y . dan memiliki sebuah unit keluaran. Bab 5 PERCEPTRON Model jaringan perceptron ditemukan oleh Rosenblatt (1962) dan Minsky – Papert (1969).. Hanya saja fungsi aktivasi bukan merupakan fungsi biner (atau bipolar). 0 atau 1.

.2 Pelatihan Perceptron Misalkan s adalah vektor masukan dan t adalah target keluaran α adalah laju pemahaman (learning rate) yang ditentukan θ adalah threshold yang ditentukan Algoritma pelatihan perceptron adalah sebagai berikut : 1. lakukan : a. Untuk penyederhanaan. Selama ada elemen vektor masukan yang respon unit keluarannya tidak sama dengan target. Set aktivasi unit masukan xi = si (i = 1. + wn xn + b = −θ 5. Hitung respon unit keluaran : net = ∑x w i i i +b .60 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab ⎧1 jika net > θ ⎪ f (net) = ⎨0 jika − θ ≤ net ≤ θ ⎪ jika net < −θ ⎩ −1 Secara geometris. Inisialisasi semua bobot dan bias (umumnya wi = b = 0) Tentukan laju pemahaman (= α )... . n) b. + wn xn + b = θ dan w1 x1 + w2 x2 + .. biasanya α diberi nilai = 1 2.... masing-masing dengan persamaan : w1 x1 + w2 x2 + . fungsi aktivasi membentuk 2 garis sekaligus.

Perubahan bobot hanya akan terjadi kalau unit masukan ≠ 0. Semakin besar harga α .. Perubahan tersebut merupakan hasil kali unit masukan dengan target dan laju pemahaman. perubahan bobot hanya dilakukan pada pola yang mengandung kesalahan (keluaran jaringan ≠ target). Akan tetapi jika α terlalu besar. Algoritma pelatihan perceptron lebih baik dibandingkan model Hebb karena : . Perbaiki bobot pola yang mengandung kesalahan (y ≠ t) menurut persamaan : wi (baru) = wi (lama) + Δ w (i = 1. maka akan merusak pola yang sudah benar sehingga pemahaman menjadi lambat. Iterasi dilakukan terus hingga semua pola memiliki keluaran jaringan yang sama dengan targetnya (jaringan sudah memahami pola).. . Iterasi tidak berhenti setelah semua pola dimasukkan seperti yang terjadi pada model Hebb b. Pada langkah 2 (c).PERCEPTRON 61 ⎧1 jika net > θ ⎪ y = f (net) = ⎨0 jika − θ ≤ net ≤ θ ⎪ jika net < −θ ⎩ −1 c. n) dengan Δ w = α t xi b (baru) = b (lama) + Δ b dengan Δb= α t Ada beberapa hal yang perlu diperhatikan dalam algoritma tersebut : a. c. Kecepatan iterasi ditentukan pula oleh laju pemahaman (= α dengan 0 ≤ α ≤ 1) yang dipakai. semakin sedikit iterasi yang diperlukan. .

3. tapi juga melibatkan suatu laju pemahaman (learning rate) yang besarnya bisa diatur. Contoh 5.1 Masukan Target x1 x2 1 t 1 1 1 1 .1 Tabel 5. Untuk inisialisasi.1 Buatlah perceptron untuk mengenali fungsi logika “dan” dengan masukan dan keluaran bipolar. Jadi tidak semua bobot selalu dimodifikasi dalam setiap iterasinya. Dalam jaringan Hebb. hasil keluaran jaringan dibandingkan dengan target yang sesungguhnya. maka proses pelatihan akan konvergen ke bobot yang tepat tersebut. α = 1 dan threshold = θ = 0 Penyelesaian Tabel masukan dan target fungsi logika “dan” dengan masukan dan keluaran bipolar tampak dalam tabel 5. pelatihan hanya dilakukan dalam satu epoch saja. Pelatihan dilakukan berulang-ulang untuk semua kemungkinan pola yang ada hingga jaringan dapat mengerti polanya (ditandai dengan samanya semua keluaran jaringan dengan target keluaran yang diinginkan).62 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1. Teorema konvergensi perceptron menyatakan bahwa apabila ada bobot yang tepat. Satu siklus pelatihan yang melibatkan semua pola disebut epoch. Modifikasi bobot tidak hanya ditentukan oleh perkalian antara target dengan masukan. gunakan bobot dan bias awal = 0. Jika terdapat perbedaan. 2. Setiap kali sebuah pola dimasukkan. maka bobot akan dimodifikasi.

Tabel 5.PERCEPTRON 63 1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 Untuk threshold = 0.2 menunjukkan hasil pada epoch pertama.2 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 1) t net = f (net) ( Δw1 Δw2 Δb ) (w1 w2 b) inisialisasi (0 0 0) (1 1 1) 1 0 0 (1 1 1) (1 1 1) (1 -1 1) -1 1 1 (-1 1 -1) (0 2 0) (-1 1 1) -1 2 1 (1 -1 -1) (1 1 -1) (-1 -1 1) -1 -3 -1 (0 0 0) (1 1 -1) Pada input pertama (x1. Harga net dihitung berdasarkan bobot yang sudah ada sebelumnya yaitu (w1 w2 b) = (0 0 0). x2 1) = (1 1 1). Maka net = ∑ xi wi + b = 1 (0) + 1 (0) + 0 = 0 sehingga f (net) = f(0) = 0 . maka fungsi aktivasi menjadi : ⎧1 jika net > 0 ⎪ y = f (net) = ⎨0 jika net = 0 ⎪ ⎩ −1 jika net < 0 Iterasi untuk seluruh pola yang ada disebut epoch Tabel 5.

2 (c) Persamaan garis untuk tiap iterasi tampak pada tabel 5.2 (a) Gambar 5.2 (b) Gambar 5. maka bobot diubah menggunakan rumusan Δ w = α t xi = t xi (karena α =1). harga f(net) = -1 yang sama dengan targetnya.3 Tabel 5. Karena θ = 0 maka hanya terbentuk sebuah garis saja. x2 1) = (-1 -1 1). Pada pola terakhir (x1.3 Masukan Bobot Baru Persamaan (x1 x2 1) (w1 w2 b) Garis (1 1 1) (1 1 1) x1 + x2 = -1 . Bobot baru = bobot lama + Δ w Input pola kedua dan seterusnya dihitung secara analog. x2 x2 x2 -1 1 -1 1 -1 1 1 1 1 x1 x1 x1 -1 1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Gambar 5. Hasil iterasi pola pertama : w1 = 1. w2 = 1 dan b = 1. Maka garis pemisahnya memiliki persamaan : x1 + x2 + 1 = 0 (atau x1 + x2 = -1). Hal ini dinyatakan dengan kondisi Δ w = 0 Perhatikan bagaimana perubahan persamaan garis yang terbentuk dalam setiap pola input. Garis pemisah pola terbentuk dari persamaan w1 x1 + w2 x2 + b = θ dan w1 x1 + w2 x2 + b = −θ . yang secara geometris dapat digambarkan pada gambar 5. Maka bobot tidak diubah.64 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Keluaran jaringan (= f(net) = 0) tidak sama dengan target yang diinginkan (dalam iterasi ini adalah 1).2 (a).

Garis pada gambar 5. sedangkan gambar 5. Berikutnya garis pada gambar 5.4 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 1) t net = f (net) ( Δw1 Δw2 Δb ) (w1 w2 b) bobot yang diperoleh dari epoch pertama (1 1 -1) (1 1 1) 1 1 1 (0 0 0) (1 1 -1) (1 -1 1) -1 -1 -1 (0 0 0) (1 1 -1) . Diperoleh hasil iterasi seperti yang tampak pada tabel 5.2 sama dengan target t. Semua pola kembali dimasukkan ke jaringan dengan menggunakan bobot terakhir yang diperoleh sebagai bobot awalnya. untuk semua pola nilai f (net) = t sehingga tidak dilakukan perubahan bobot. maka iterasi dilanjutkan pada epoch kedua. Mengingat tidak semua f(net) pada tabel 5.4 Dalam iterasi tersebut.PERCEPTRON 65 (1 -1 1) (0 2 0) x2 = 0 (-1 1 1) (1 1 -1) x1 + x2 = 1 (-1 -1 1) (1 1 -1) x1 + x2 = 1 Gambar 5.2 (b) memisahkan dengan benar pola 1. Karena f (net) = t untuk semua pola maka jaringan sudah mengenal semua pola sehingga iterasi dihentikan. garis memisahkan dengan benar pola 1 dan 4. Tampak bahwa pada gambar 5.2 (c) memisahkan dengan benar semua pola menjadi 2 bagian. Tabel 5.2 (c) menunjukkan garis pola 3 dan 4. 2 dan 4.2 (a).2 (a) – (b) masing-masing menunjukkan garis pemisah untuk pola 1 dan pola ke-2.

2.1. maka fungsi aktivasi menjadi : ⎧1 jika net > 0.2 ⎪ y = f (net) = ⎨0 jika − 0.2 Penyelesaian Dengan threshold = 0. Gunakan α = 1 dan threshold = θ = 0. Maka iterasi harus dilanjutkan ke epoch berikutnya.5 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 1) t net = f (net) ( Δw1 Δw2 Δb ) (w1 w2 b) inisialisasi (0 0 0) (1 1 1) 1 0 0 (1 1 1) (1 1 1) (1 0 1) -1 2 1 (-1 0 -1) (0 1 0) (0 1 1) -1 1 1 (0 -1 -1) (0 0 -1) (0 0 1) -1 -1 -1 (0 0 0) (0 0 -1) Tampak hanya pola masukan terakhir saja yang benar (f(net) = target).5 adalah hasil iterasi epoch pertama Tabel 5. .2 Ulangi contoh 5.2 ≤ net ≤ 0. tapi menggunakan masukan biner dan keluaran bipolar.2 ⎩ Tabel 5.66 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab (-1 1 1) -1 -1 -1 (0 0 0) (1 1 -1) (-1 -1 1) -1 -3 -1 (0 0 0) (1 1 -1) Contoh 5.2 ⎪ −1 jika net < −0.

2 ).2 dan w1 x1 + w2 x2 + b = −0.6 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 1) t net = f (net) ( Δw1 Δw2 Δb ) (w1 w2 b) epoch 2 : Bobot dari epoch .6 adalah hasil iterasi epoch kedua. maka garis yang terbentuk memiliki persamaan x1 + x2 + 1 = 0. persamaan garis yang terbentuk adalah w1 x1 + w2 x2 + b = 0.2 (atau x1 + x2 = −0.8 ) dan x1 + x2 + 1 = −0. setelah pola pertama dimasukkan.1 (0 0 -1) (1 1 1) 1 -1 -1 (1 1 1) (1 1 0) (1 0 1) -1 1 1 (-1 0 -1) (0 1 -1) (0 1 1) -1 0 0 (0 -1 -1) (0 0 -2) (0 0 1) -1 -2 -1 (0 0 0) (0 0 -2) . Dalam contoh ini. Tampak bahwa belum semua pola dikenali. Garis ini akan mengenali pola pertama dan terakhir (lihat gambar 5.PERCEPTRON 67 Perhatikan bahwa dengan threshold yang ≠ 0. Hanya pola terakhir saja yang memiliki f (net) = t Tabel 5. x2 -1 1 1 x1 -1 1 -1 -1 -1 x1+x2 = -0. Sebagai contoh. maka akan terbentuk 2 buah garis pemisah pola.2 (atau x1 + x2 = −1.3 Tabel 5.3).2 Gambar 5.8 x1+x2 = -1.2 .

Hasil iterasi tampak dalam tabel 5.68 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Iterasi dilanjutkan untuk epoch ketiga dan seterusnya.7 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 1) t net = f (net) ( Δw1 Δw2 Δb ) (w1 w2 b) epoch 3 : (1 1 1) 1 -2 -1 (1 1 1) (1 1 -1) (1 0 1) -1 0 0 (-1 0 -1) (0 1 -2) (0 1 1) -1 -1 -1 (0 0 0) (0 1 -2) (0 0 1) -1 -2 -1 (0 0 0) (0 1 -2) epoch 4 : (1 1 1) 1 -1 -1 (1 1 1) (1 2 -1) (1 0 1) -1 0 0 (-1 0 -1) (0 2 -2) (0 1 1) -1 0 0 (0 -1 -1) (0 1 -3) (0 0 1) -1 -3 -1 (0 0 0) (0 1 -3) epoch 5 : (1 1 1) 1 -2 -1 (1 1 1) (1 2 -2) (1 0 1) -1 -1 -1 (0 0 0) (1 2 -2) (0 1 1) -1 0 0 (0 -1 -1) (1 1 -3) (0 0 1) -1 -3 -1 (0 0 0) (1 1 -3) epoch 6 : .7 Tabel 5.

PERCEPTRON 69 (1 1 1) 1 -1 -1 (1 1 1) (2 2 -2) (1 0 1) -1 0 0 (-1 0 -1) (1 2 -3) (0 1 1) -1 -1 -1 (0 0 0) (1 2 -3) (0 0 1) -1 -3 -1 (0 0 0) (1 2 -3) epoch 7 : (1 1 1) 1 0 0 (1 1 1) (2 3 -2) (1 0 1) -1 0 0 (-1 0 -1) (1 3 -3) (0 1 1) -1 0 0 (0 -1 -1) (1 2 -4) (0 0 1) -1 -4 -1 (0 0 0) (1 2 -4) epoch 8 : (1 1 1) 1 -1 -1 (1 1 1) (2 3 -3) (1 0 1) -1 -1 -1 (0 0 0) (2 3 -3) (0 1 1) -1 0 0 (0 -1 -1) (2 2 -4) (0 0 1) -1 -4 -1 (0 0 0) (2 2 -4) epoch 9 : (1 1 1) 1 0 0 (1 1 1) (3 3 -3) (1 0 1) -1 0 0 (-1 0 -1) (2 3 -4) (0 1 1) -1 -1 -1 (0 0 0) (2 3 -4) (0 0 1) -1 -4 -1 (0 0 0) (2 3 -4) epoch 10 : (1 1 1) 1 1 1 (0 0 0) (2 3 -4) .

8 -1 -1 -1 Gambar 5.70 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab (1 0 1) -1 -2 -1 (0 0 0) (2 3 -4) (0 1 1) -1 -1 -1 (0 0 0) (2 3 -4) (0 0 1) -1 -4 -1 (0 0 0) (2 3 -4) Setelah 10 epoch.8) x2 -1 1 1 2x1+3x2 = 4.2 -1 1 x1 2x1+3x2 = 3.8. x3. dan target bernilai = -1 apabila tepat salah satu dari masukan bernilai 0 (tidak diketahui bagaimana target apabila ada 2 atau lebih masukan yang bernilai 0). Gunakan bobot awal dan bias = 0 dengan laju pemahaman = α =1 dan threshold = θ = 0. Carilah bobot yang akan mengenali pola sebagai berikut : target keluaran bernilai 1 apabila semua masukan bernilai 1. sebuah bias dan sebuah keluaran bipolar.2 .1 Penyelesaian Bentuk pola masukan dan targetnya tampak pada tabel 5. semua f(net) = t sehingga jaringan telah mengenal pola dan iterasi dihentikan.2) dan 2x1 + 3x2 – 4 = -0.3 Diketahui perceptron dengan 3 masukan biner x1.4 Contoh 5.2 (atau 2x1 + 3x2 = 3.2 (atau 2x1 + 3x2 = 4. Persamaan garisnya adalah 2x1 + 3x2 – 4 = 0. x2. Bentuk ini sama dengan pola yang tidak dapat diselesaikan dengan model Hebb pada contoh 4.

9. Ini terjadi jika f (net) = t Tabel 5.8 Masukan Target x1 x2 x3 t 1 1 1 1 1 1 0 -1 1 0 1 -1 0 1 1 -1 Iterasi yang dilakukan tampak pada tabel 5.9 Masukan Target y Perubahan Bobot Bobot Baru (x1 x2 x3 1) t net = f (net) ( Δw1 Δw2 Δw3 Δb ) (w1 w2 w3 b) epoch 1 : inisialisasi (0 0 0) (1 1 1 1) 1 0 0 (1 1 1 1) (1 1 1 1) (1 1 0 1) -1 3 1 (-1 -1 0 -1) (0 0 1 0) (1 0 1 1) -1 1 1 (-1 0 -1 -1) (-1 0 0 -1) (0 1 1 1) -1 -1 -1 (-1 0 0 -1) epoch 2 : (1 1 1 1) 1 -2 -1 (1 1 1 1) (0 1 1 0) . PERCEPTRON 71 Tabel 5. Kolom perubahan bobot yang kosong berarti ( Δw1 Δw2 Δw3 Δb ) = (0 0 0 0) .

72 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab (1 1 0 1) -1 1 1 (-1 -1 0 -1) (-1 0 1 -1) (1 0 1 1) -1 -1 -1 (-1 0 1 -1) (0 1 1 1) -1 0 0 (0 -1 -1 -1) (-1 -1 0 -2) epoch 3 : (1 1 1 1) 1 -4 -1 (1 1 1 1) (0 0 1 -1) (1 1 0 1) -1 -1 -1 (0 0 1 -1) (1 0 1 1) -1 0 0 (-1 0 -1 -1) (-1 0 0 -2) (0 1 1 1) -1 -2 -1 (-1 0 0 -2) epoch 4 : (1 1 1 1) 1 -3 -1 (1 1 1 1) (0 1 1 -1) (1 1 0 1) -1 0 0 (-1 -1 0 -1) (-1 0 1 -2) (1 0 1 1) -1 -2 -1 (-1 0 1 -2) (0 1 1 1) -1 -1 -1 (-1 0 1 -2) epoch 5 : (1 1 1 1) 1 -2 -1 (1 1 1 1) (0 1 2 -1) (1 1 0 1) -1 0 0 (-1 -1 0 -1) (-1 0 2 -2) (1 0 1 1) -1 -1 -1 (-1 0 2 -2) (0 1 1 1) -1 0 0 (0 -1 -1 -1) (-1 -1 1 -3) dan seterusnya .. ..

PERCEPTRON 73 epoch 10 : (1 1 1 1) 1 -3 -1 (1 1 1 1) (1 1 2 -3) (1 1 0 1) -1 -1 -1 (1 1 2 -3) (1 0 1 1) -1 0 0 (-1 0 -1 -1) (0 1 1 -4) (0 1 1 1) -1 -2 -1 (0 1 1 -4) epoch 20 : (1 1 1 1) 1 -2 -1 (1 1 1 1) (2 2 4 -6) (1 1 0 1) -1 -2 -1 (2 2 4 -6) (1 0 1 1) -1 0 0 (-1 0 -1 -1) (1 2 3 -7) (0 1 1 1) -1 -2 -1 (1 2 3 -7) epoch 25 : (1 1 1 1) 1 0 0 (1 1 1 1) (3 4 4 -7) (1 1 0 1) -1 0 0 (-1 -1 0 -1) (2 3 4 -8) (1 0 1 1) -1 -2 -1 (2 3 4 -8) (0 1 1 1) -1 -1 -1 (2 3 4 -8) epoch 26 : (1 1 1 1) 1 1 1 (2 3 4 -8) (1 1 0 1) -1 -3 -1 (2 3 4 -8) (1 0 1 1) -1 -2 -1 (2 3 4 -8) (0 1 1 1) -1 -1 -1 (2 3 4 -8) .

perceptron dapat dilatih untuk mengenalinya. Jika sebaliknya. laju pemahaman dan threshold 4. 2. berikan nilai target = -1 3. Nyatakan tiap pola masukan sebagai vektor bipolar yang elemennya adalah tiap titik dalam pola tersebut. 5.74 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tampak bahwa jaringan dapat mengenali semua pola yang diberikan setelah 26 epoch. Berikan inisialisasi bobot. Lakukan proses pelatihan perceptron seperti bab 5. Tampak disini keunggulan perceptron dibandingkan model Hebb. 5.3 Pengenalan Pola Karakter Perceptron dapat pula dipakai untuk mengenali pola karakter.3.2 . bias. Berikan nilai target = +1 jika pola masukan menyerupai huruf yang diinginkan.1 Pengenalan Sebuah Pola Karakter Algoritma untuk mengenali apakah pola masukan yang diberikan menyerupai sebuah karakter tertentu (misal mirip huruf “A”) atau tidak adalah sebagai berikut : 1. Dengan berbagai pola masukan yang menyerupai huruf-huruf alphabeth. Susunan pola yang tidak dapat dikenali oleh model Hebb ternyata dapat dikenali oleh perceptron.

# . Penyelesaian Untuk menentukan vektor masukan. . . . . # # # # # # . . # . # # . . . . . # # . . # . # . # . . dimulai dari baris paling atas. . . . # . . . . # . . . . # # # . . . . . # . . . . # # # . . . . . . # . # . .” diberi nilai -1. . # # # # # . # . . . . . . # . . . . . . . # . . . . # . . # . . . . . # # . . . # # . # # # # . . . . . # . . . . . . # . . . # . .PERCEPTRON 75 Contoh 5. . . . . . . Pola 1 Pola 2 Pola 3 . . # . # # # # # # # # # . . # . . # . . . # # . . . .4 Diketahui 6 buah pola masukan seperti gambar 5. . # . . . .5 : . . . . . . # . . # . # . . # . # . # # # # # . . # . . . . . . . . . . . # # . . . . . tiap titik dalam pola diambil sebagai komponen vektor. # . . . . # # # # . . . . # # . . . # . # # . . . . # . . # . . . . # . # . Pembacaan pola dilakukan dari kiri ke kanan. . . . . . . # . . # # # # # # . . . # . # # . . # # # # # . . . # . # . . . . # . . Pola 4 Pola 5 Pola 6 Gambar 5. . . . # . # # # # # # . # # # # # . . # . . . . . . . . Jadi tiap vektor masukan memiliki 9*7 = 63 komponen. . # . . # . . # . . . . # . . . . . . .5 Buatlah model perceptron untuk mengenali pola “A”. . . # . Titik dalam pola yang bertanda “#” diberi nilai = +1 dan titik bertanda “. # . . # . # # # # # # . . . . . . # . . # .

maka target bernilai = -1. Pola yang menyerupai huruf “A” adalah pola 1 dan pola 4.10 . Pasangan pola dan targetnya tampak pada tabel 5. Jika tidak.76 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Vektor masukan pola 1 adalah (-1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 1 1 1 1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 1 1 1 -1 1 1 1 ) Vektor masukan pola 2 adalah (1 1 1 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 1 1 1 1 1 1 -1 ) Vektor masukan pola 3 adalah (-1 -1 1 1 1 1 1 -1 1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 1 1 1 -1 ) Vektor masukan pola 4 adalah (-1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 -1 -1 1 1 1 1 1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 1 -1 ) Vektor masukan pola 5 adalah (1 1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 -1 ) Vektor masukan pola 6 adalah (-1 -1 1 1 1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1 1 1 -1 -1) Target bernilai = +1 bila pola masukan menyerupai huruf “A”.

maka bobot dan bias diubah Proses pelatihan dilakukan terus hingga semua keluaran jaringan sama dengan targetnya.5 ⎩ Apabila f (net) ≠ target.PERCEPTRON 77 Tabel 5.5 Pelatihan dilakukan dengan cara memasukkan 63 unit masukan (atau 63 sebuah pola huruf). laju pemahaman diambil α =1 dan threshold = 0. sebuah bias dan sebuah unit keluaran.5 ⎪ −1 jika net < −0.5 ≤ net ≤ 0. Berikutnya.5 ⎪ y = f (net) = ⎨0 jika − 0. . Misalkan bobot awal diambil = 0 untuk semua bobot maupun bias.10 Pola Masukan Target Pola 1 1 Pola 2 -1 Pola 3 -1 Pola 4 1 Pola 5 -1 Pola 6 -1 Maka perceptron yang dipakai untuk mengenali pola huruf “A” (atau bukan “A”) memiliki 63 unit masukan. fungsi i =1 i i aktivasi dihitung menggunakan persamaan ⎧1 jika net > 0. Dihitung net = ∑ x w + b .

2. Demikian juga bias dihubungkan dengan semua unit keluaran dengan bobot masing-masing b1. ym wm2 wmn xn Gambar 5.. Berikan nilai target tj = +1 jika pola masukan menyerupai huruf yang diinginkan.2 Pengenalan Beberapa Pola Karakter Pengenalan beberapa pola karakter sekaligus (misal “A” atau bukan “A”. Lakukan proses pelatihan perceptron seperti bab 5. “B” atau bukan “B”..78 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 5. Jika sebaliknya..1. laju pemahaman dan threshold 4. . dan seterusnya) dilakukan dengan cara menggabungkan beberapa model perceptron bab 5. 2. seperti yang tampak pada gambar 5. w1n . b2 .6 Setiap unit masukan dihubungkan dengan setiap unit target. Jadi ada beberapa unit keluaran sekaligus. . Berikan inisialisasi bobot.3 untuk tiap unit keluaran sebagai berikut : ..... Nyatakan tiap pola masukan sebagai vektor bipolar yang elemennya adalah tiap titik dalam pola tersebut.. berikan nilai target = tj = -1 (j = 1. Bobot penghubung dari unit xi ke yj adalah wji (perhatikan bagaimana indeks dibuat).. m) 3.6 1 b1 x1 w11 bm y1 w12 x2 wm1 .3. bm Algoritma pelatihan perceptron untuk pengenalan beberapa pola sekaligus adalah sebagai berikut : 1.4. bias.

dan “C”. . Hitung respon unit keluaran ke-j : netj = ∑x wi i ji + bj ⎧1 jika net j > θ ⎪ yj = f (netj) = ⎨0 jika − θ ≤ net j ≤ θ ⎪ −1 jika net j < −θ ⎩ b. Perbaiki bobot pola yang mengandung kesalahan (yj ≠ tj) menurut persamaan : wji (baru) = wji (lama) + α tj xi bj (baru) = bj (lama) + α tj c.. “B” atau “C”. “B”. Ada 3 buah vektor keluaran yang masing-masing menyatakan bahwa pola menyerupai huruf “A”. m Contoh 5.PERCEPTRON 79 a.5 Diketahui 6 buah pola masukan seperti gambar 5. j = 1.4.5 Buatlah model perceptron untuk mengenali pola “A”.Vektor target tampak pada tabel 5. Penyelesaian Mula-mula dibuat 6 buah vektor masukan seperti conton 5.11 Pola Masukan t1 t2 t3 Pola 1 1 -1 -1 Pola 2 -1 1 -1 . Lakukan langkah 4a–b terus menerus hingga tj = yj .11 Tabel 5.

5.. t2 dan t3 ƒ Ada 3 kolom net yaitu net1.5. Δw21 .3 tapi dengan menggunakan laju pemahaman yang lebih kecil yaitu 0.63 . … .. Buatlah iterasi sebanyak 2 epoch contoh 5. … . . Δw32 .. . Δw2. w12 .63 . Δw31 . . dengan beberapa perubahan sebagai berikut : ƒ Vektor masukan terdiri dari 36 elemen x1.. .. x2. w3.63 ... masing- masing merupakan hasil kali bobot dengan vektor masukan ƒ Ada 3 buah y yang merupakan fungsi aktivasi ketiga kolom net.63 ƒ Ada 3*63 buah bobot. w21 . . .. Δw1.80 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Pola 3 -1 -1 1 Pola 4 1 -1 -1 Pola 5 -1 1 -1 Pola 6 -1 -1 1 Selanjutnya iterasi dapat dibuat seperti contoh 5. ..63 . . w1. y1 = f(net1).2 dan 5. Selesaikan kembali contoh 5. . .. Δw22 . Δw3. masing-masing : w11 . w2. Apa pengaruhnya terhadap jumlah iterasi yang dibutuhkan ? 2. … .. w32 . w31 . .63 SOAL-SOAL LATIHAN 1.. Δw12 .4 dan 5. y2 = f(net2). x36 dan sebuah bias b ƒ Ada 3 target t1. .3. y3 = f(net3) ƒ Ada 3*63 buah kolom perubahan bobot yaitu Δw11 . net2 dan net3. . w22 .

Buatlah program komputer (menggunakan bahasa yang anda kuasai) untuk melatih perceptron pada contoh 5. 4. perceptron tidak akan mampu mengenali pola secara benar.2 a. θ dan bobot awal = 0 5. tanpa menggunakan bias (jika mungkin) b.PERCEPTRON 81 3. Tunjukkan secara grafik bahwa tanpa bias. Buatlah model perceptron yang dapat dipakai untuk membentuk klasifikasi berikut ini (perhatikan bahwa pola tersebut berarti bahwa 2 input pertama merupakan anggota kelas dan 2 input terakhir bukan anggota kelas) Masukan Target x1 x2 x3 x4 t 1 1 1 1 1 -1 1 -1 -1 1 1 1 1 -1 -1 1 -1 -1 1 -1 Gunakan α = 1. Apakah perceptron mampu membedakan pola huruf ‘A’ dari pola huruf lain ? Berapa epoch yang dibutuhkan ? .4. menggunakan bias c. Buatlah perceptron untuk mengenali pola yang terbentuk pada fungsi logika XOR dengan α = 1 dan θ = 0.

Arsitekturnya mirip dengan perceptron. 2 2 E= t f (net ) = t xi wi b i E merupakan fungsi bobot wi. Dalam aturan delta. Maka perubahan wi i bobot adalah : . Selama pelatihan. net = xi wi b i y = f (net) = net = xi wi b i Kuadrat selisih antara target (t) dan keluaran jaringan (f (net)) merupakan error yang terjadi. fungsi aktivasi yang dipakai adalah fungsi identitas. Perbedaan dengan perceptron adalah dalam hal cara modifikasi bobotnya. bobot dimodifikasi sedemikian hingga errornya minimum. Bobot dimodifikasi dengan aturan delta (sering juga disebut least mean square). Bab 6 ADALINE 6.1 Pelatihan ADALINE Model ADALINE (Adaptive Linear Neuron) ditemukan oleh Widrow & Hoff (1960). Beberapa masukan (dan sebuah bias) dihubungkan langsung dengan sebuah neuron keluaran. Penurunan E tercepat terjadi pada arah E = 2 t xi wi b xi = 2 t y xi .

ADALINE dapat dipakai untuk pengenalan pola. n) b.. ..1) Tentukan toleransi kesalahan yang diijinkan 2.1) Algoritma pelatihan ADALINE adalah sebagai berikut : 1.. Untuk penyederhanaan. Perbaiki bobot pola yang mengandung kesalahan (y t) menurut persamaan : wi (baru) = wi (lama) + (t – y) xi b (baru) = b (lama) + (t – y) Setelah proses pelatihan selesai. Selama max wi > batas toleransi. Inisialisasi semua bobot dan bias (umumnya wi = b = 0) Tentukan laju pemahaman (= ). lakukan : i a. umumnya dipakai fungsi threshold bipolar (meskipun tidak menutup kemungkinan digunakan bentuk lainnya). Caranya adalah sebagai berikut : . Hitung respon unit keluaran : net = xi wi + b i y = f (net) = net c. Set aktivasi unit masukan xi = si (i = 1. Untuk itu.84 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab wi t y xi dengan merupakan bilangan positip kecil (umumnya diambil = 0. biasanya diberi nilai kecil (= 0.

1 Masukan Target x1 x2 t 1 1 1 1 -1 -1 -1 1 -1 -1 -1 -1 Gunakan batas toleransi = 0.1 . Hitung net vektor keluaran : net = xi wi + b i c. n) b.05 dan = 0.. Set aktivasi unit masukan xi = si (i = 1. Kenakan fungsi aktivasi : 1 jika net 0 y= 1 jika net 0 Contoh 6.ADALINE 85 1...1 Gunakan model ADALINE untuk mengenali pola fungsi logika “dan” dengan masukan dan target bipolar : Tabel 6. . Untuk setiap input masukan bipolar x. lakukan : a. Inisialisasi semua bobot dan bias dengan bobot dan bias hasil pelatihan 2.

8 -0.3 Masukan y= Perubahan Bobot Bobot Baru (x1 x2 1) t net f (net) t . 86 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Penyelesaian Dengan = 0.3 Tabel 6.01 0.04 -0.33 -0.13) (-1 -1 1) -1 -0.24 -0.1) (0.11 -0.14 0.2.12) (0. maka iterasi dilanjutkan untuk epoch kedua.09) (0.91 (-0.18 0.2) (-1 1 1) -1 -0.2 (0.1 -1.2) Maksimum wi = 0.11 0.18 0.29 0.67 (0.1. maka perubahan bobotnya = wi = 0.1 0. f(net) = net Tabel 6.16 -0.11) (-0.09 -0.09 0.09) (0.12 -0.33 -0.1 -0.3) (-1 -1 1) -1 -0.86 (0.01) (-1 1 1) -1 0.26 -0.21 (0.21 -1. Dalam tabel 6.1 (t – y) xi.02) (0.02 -0.09 0.17 0.y ( w1 w2 b) (w1 w2 b) Inisialisasi (0.07 > toleransi.09 -0.1 0.1) (1 -1 1) -1 0.1 (t – f(net)) xi = 0.1) (0.33 -0.1 -0.1 (-0.04 -0.11) (1 -1 1) -1 -0.32) .07 0.24 -0.8 -0.12 -0.27 0.1 0.1 0.1 0.y ( w1 w2 b) (w1 w2 b) Inisialisasi (0 0 0) (1 1 1) 1 0 0 1 (0.21 -0.11 0. Iterasi untuk epoch-1 tampak pada tabel 6.02 0.2 Masukan y= Perubahan Bobot Bobot Baru (x1 x2 1) t net f (net) t .09 -0.09 0.96 (0. yang tampak pada tabel 6.16 -0.14 0.26 0.07) (0.07 -0.21 0.2.09 -0.2) (1 1 1) 1 0.

ADALINE 87 Maksimum wi = 0.26 dan b = -0.5 merupakan hasil iterasi ADALINE dengan menggunakan = 0.32) merupakan bobot yang digunakan dalam pengenalan polanya.02 < toleransi.4 Masukan net y x1 x2 1 1 0.2 Penyelesaian Tabel 6. Perhatikan bahwa fungsi aktivasi yang dipakai berbeda dengan fungsi aktivasi pada pelatihan. Dalam pengenalan 1 jika net 0 pola. maka iterasi dihentikan dan bobot terakhir yang diperoleh (w1 = 0.2 Ulangi contoh 6.87 -1 Tampak bahwa keluaran jaringan tepat sama dengan targetnya.29 -1 -1 1 -0. Disimpulkan bahwa pola dapat dikenali dengan sempurna menggunakan bobot hasil pelatihan Contoh 6. tapi menggunakan = 0.1.29. fungsi aktivasinya adalah : y = 1 jika net 0 Tabel 6.4 merupakan pengenalan pola fungsi “dan” menggunakan bobot hasil pelatihan.2 . w2 = 0. Tabel 6.23 1 1 -1 -0.35 -1 -1 -1 -0.

05 -0.5 Masukan y= Perubahan Bobot Bobot Baru (x1 x2 1) t net f (net) t .2 0. Arsitektur . Dengan cara seperti perhitungan tabel 6.21 dan b = -0.05 = toleransi.3.44 -0.2 MADALINE Beberapa ADALINE dapat digabungkan untuk membentuk suatu jaringan baru yang disebut MADALINE (many ADALINE). Dalam MADALINE terdapat sebuah layar tersembunyi.15 -0.25 0. dapat dicek bahwa bobot yang diperoleh akan mengenali semua pola dengan benar Dari contoh 6.2 0.2 -1. sebuah layar tersembunyi yang terdiri dari 2 unit neuron tersembunyi z1 dan z2.73 -0. 88 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tabel 6. Gambar 6.44 (0.4.05) (0.73 -0.2 0.2 0. dan sebuah keluaran Y.38) Maksimum wi = 0.2) (1 -1 1) -1 0. Akan tetapi penggunaan yang terlalu besar akan menyebabkan iterasi melompat terlalu jauh sehingga melewati bobot optimalnya.2 tampak bahwa penggunaan yang lebih besar akan menyebabkan iterasi menjadi lebih cepat.2) (0.44 -1.24) (-0.29) (0.29 -0. 6.04 0.33) (-1 -1 1) -1 -0.1 dan 6. maka iterasi dihentikan dan bobot terakhir yang diperoleh (w1 = 0.2 0.24 -0. w2 = 0.44 0.2 (-0.04) (-1 1 1) -1 0.24 0.1 menunjukkan arsitektur MADALINE untuk 2 buah masukan x1 dan x2.27 (0.y ( w1 w2 b) (w1 w2 b) Inisialisasi (0 0 0) (1 1 1) 1 0 0 1 (0.05 0.29 -0.21 -0.38) merupakan bobot yang digunakan dalam pengenalan polanya.3 0.

Pada awal ditemukannya MADALINE (Widrow dan Hoff (1960)). meskipun pelatihannya juga lebih kompleks.ADALINE 89 MADALINE untuk lebih dari 2 unit masukan (atau lebih dari 2 unit tersembunyi) dapat dibentuk secara analog.1 Keluaran dari unit tersembunyi z1 dan z2 adalah nilai fungsi aktivasi (dan threshold) yang diterima dari x1 dan x2. w12. Winter dan Baxter (1987)) dilakukan dengan memodifikasi semua bobotnya. Adanya unit tersembunyi dalam MADALINE akan meningkatkan kapabilitas komputasi dibandingkan ADALINE. w22 dalam gambar 6. v2. Keluaran Y . Meskipun keluaran z1 dan z2 masing-masing merupakan fungsi linier. Bobot ke unit keluaran merupakan kuantitas yang tetap. Dalam algoritma MADALINE mula-mula. Modifikasi MADALINE (Widrow. bobot v1. dan bias b3 yang diteruskan ke Y diatur sedemikian hingga keluaran Y akan = 1 jika salah satu keluaran dari z1 atau z2 (atau keduanya) = 1. Demikian pula unit keluaran Y merupakan nilai fungsi aktivasi dari z1 dan z2. tetapi keluaran Y bukanlah fungsi linier x1 dan x2 karena adanya unit tersembunyi. hanya bobot ke unit tersembunyi (w11. w21. 1 1 b1 x1 w11 z1 b3 v1 w21 w12 Y v2 x2 w22 z2 b2 1 Gambar 6.1) saja yang dimodifikasi selama proses pelatihan.

Hitung net input untuk setiap unit tersembunyi ADALINE (z1. Inisialisasi laju pemahaman (= ) dengan bilangan kecil. Tentukan keluaran jaringan y_in = bk + z jv j j 1 jika yin 0 y = f (y_in) = 1 jika yin 0 .2.90 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab = -1 jika keluaran z1 maupun z2 = -1. 2.. Maka diambil v1 = v2 = ½ dan b3 = ½. z2. Inisialisasi semua bobot dan bias dengan bilangan acak kecil. unit Y membentuk fungsi logika “atau” dengan masukan dari z1 dan z2.1 – 2. Set aktifvasi unit masukan : xi = si untuk semua i 2. .3.5 2. Hitung keluaran setiap unit tersembunyi dengan menggunakan fungsi aktivasi bipolar : 1 jika zin _ j 0 zj = f (zin_ j) = 1 jika zin _ j 0 2. Algoritma pelatihan MADALINE mula-mula untuk pola masukan dan target bipolar adalah sebagai berikut : 1. lakukan langkah 2.4.) zin_ j = bj + xi w ji i 2.. Dengan kata lain. Selama perubahan bobot lebih besar dari toleransi (atau jumlah epoch belum melebihi batas yang ditentukan).1.

Jika y t dan t = 1 (karena y bipolar berarti y = -1).5. Misalkan unti z yang keluarannya terdekat dengan 0 adalah zp.1. Padahal semua z harus memiliki f(net) = -1. Untuk mengenali pola. Maka bobot dan bias dimodifikasi menurut persamaan : bp baru = bp lama + (1 – zin_p) wpi baru = wpi lama + (1 – zin_p) xi Sebaliknya jika y t dan t = -1 (dengan kata lain y = 1). paling sedikit salah satu dari z tersebut harus dijadikan = 1. Bobot yang dimodifikasi adalah bobot ke unit z yang netnya paling dekat dengan 0. ubah bobot ke unit zj yang zin nya terdekat dengan 0 (misal ke unit zp) sebagai berikut : bp baru = bp lama + (1 – zin_p) wpi baru = wpi lama + (1 – zin_p) xi Untuk t = -1. maka f (net) di z1 = z2 = -1. ubah semua bobot ke unit zk yang zin nya positip sebagai berikut : bk baru = bk lama + (-1 – zin_k) wki baru = wki lama + (-1 – zin_k) xi Logika modifikasi bobot pada langkah 2. maka tidak dilakukan perubahan bobot Jika y target : Untuk t = 1.5 adalah sebagai berikut : Perhatikan MADALINE pada gambar 6. Maka bobot yang dimodifikasi adalah bobot yang netnya positip (misal unit zk) menurut persamaan : .ADALINE 91 2. Hitung error dan tentukan perubahan bobot Jika y = target. berarti minimal salah satu z memiliki f(net) = 1 (atau ada z yang netnya positip).

2 Gunakan MADALINE mula-mula untuk mengenali pola fungsi logika “XOR” dengan 2 masukan x1 dan x2.7 Tabel 6.2 w22 = 0.1 Penyelesaian Fungsi logika “XOR” memiliki pasangan masukan-target seperti yang tampak pada tabel 6. Misalkan didapat hasil seperti pada tabel 6.1 x2 w12 = 0.6 Masukan Target x1 x2 t 1 1 -1 1 -1 1 -1 1 1 -1 -1 -1 Inisialisasi dilakukan pada semua bobot ke unit tersembunyi dengan suatu bilangan acak kecil.6 Tabel 6.92 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab bk baru = bk lama + (-1 – zin_k) wki baru = wki lama + (-1 – zin_k) xi Contoh 6. Gunakan = 0.2 .05 w21 = 0.5 dan toleransi = 0.7 Ke unit tersembunyi Dari unit z1 z2 x1 w11 = 0.

15 1 Bobot ke unit keluaran Y adalah : v1 = v2 = b = ½.45 2.15 + 1 (0. x2 = 1. Didapat z1 = f (zin_ 1) = 1 dan z2 = f (zin_ 2) = 1 2.5 + 1 (0.ADALINE 93 bias b1 = 0.3 x1 0.2 Disini hanya akan dilakukan iterasi untuk pola pertama saja.4 Tentukan keluaran jaringan Y : y_in = b3 + z1 v1 + z2 v2 = 0.3 b2 = 0.2 Y 0.5 0. Pola – 1 : Masukan : x1 = 1.5 0.3 Hitung keluaran unit tersembunyi z1 dan z2 menggunakan fungsi aktivasi bipolar.2) = 0.5 x2 0.3 + 1 (0.05 z1 0.5) + 1 (0.5) = 1.05) + 1 (0.55 zin_2 = b2 + x1 w21 + x2 w22 = 0. Gambar 6.5 . Pelatihan pola-pola selanjutnya dilakukan secara analog dan diserahkan kepada pembaca untuk latihan.15 1 1 0.2 z2 0. t = -1 2.2) = 0.1) + 1 (0.2 Hitung net untuk unit tersembunyi z1 dan z2 : zin_1 = b1 + x1 w11 + x2 w12 = 0.1 0.

2 + 0.55) = .5 (-1 – 0.575 Perubahan bobot ke unit tersembunyi z2 : b2 baru = b2 lama + (-1 – zin_2) = 0.0.0.1 .0.73 w12 0.0.775 b2 0. Karena zin_1 > 0 dan zin_2 > 0.5 (-1 – 0. maka semua bobotnya dimodifikasi sebagai berikut : Perubahan bobot ke unit tersembunyi z1 : b1 baru = b1 lama + (-1 – zin_1) = 0.2 + 0.8 Bobot mula.575 0.0.15 + 0. Maka semua bobot yang menghasilkan z_in yang positip dimodifikasi.575 w21 baru = w21 lama + (-1 – zin_2) x1 = 0.475 0.2 .5 (-1 – 0.45) = .775 w11 0.94 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Maka y = f (y_in) = 1 2.625 0.5 (-1 – 0.5 t – y = -1 – 1 = -2 0 dan t = -1.725 w21 0.525 Tabel 6.0.525 0.0.55) = -0.05 + 0.2 .55) = -0.05 .45) = -0.3 .15 .475 w11 baru = w11 lama + (-1 – zin_1) x1 = 0.725 .625 w22 baru = w22 lama + (-1 – zin_2) x2 = 0.8 merupakan pengecekan perubahan nilai bobot : Tabel 6.1 + 0.725 0.45) = -0. Bobot setelah w mula iterasi b1 0.725 w12 baru = w12 lama + (-1 – zin_1) x2 = 0.725 w22 0.5 (-1 – 0.3 + 0.5 (-1 – 0.0.575 0.

5. bobot awal = 0.5 dan toleransi = 0.ADALINE 95 Karena masih ada (bahkan semua) perubahan bobot > toleransi yang ditetapkan.1).2 dengan menggunakan masukan dan target biner (bukan bipolar) 3. Iterasi dilakukan untuk semua pola. 4. . SOAL-SOAL LATIHAN 1. maka iterasi dilanjutkan untuk epoch-2 dan seterusnya. maka iterasi dilanjutkan untuk pola 2. Ulangi contoh 6. dan toleransi = 0.1. Selesaikan soal latihan #5 pada bab 4 (model Hebb) menggunakan ADALINE dengan = 0. Gunakan ADALINE untuk mengenali fungsi logika “dan” dengan 3 buah masukan ( = 0. Apakah kelebihan ADALINE dibandingkan dengan Perceptron ? 2. Apabila ada perubahan bobot yang masih lebih besar dari batas toleransi.

membuat JST semakin diminati orang. Kelemahan ini bisa ditanggulangi dengan menambahkan satu/beberapa layar tersembunyi diantara layar masukan dan keluaran. tapi pelatihannya memerlukan waktu yang lama.1 Standar Backpropagation Kelemahan JST yang terdiri dari layar tunggal membuat perkembangan JST menjadi terhenti pada sekitar tahun 1970 an. Terlebih setelah berhasil ditemukannya berbagai aplikasi yang dapat diselesaikan dengan Backpropagation. Penemuan backpropagation yang terdiri dari beberapa layar membuka kembali cakarawala. Meskipun penggunaan lebih dari satu layar tersembunyi memiliki kelebihan manfaat untuk beberapa kasus. Bab 7 BACK PROPAGATION 7. . Maka umumnya orang mulai mencoba dengan sebuah layar tersembunyi lebih dahulu. Backpropagation melatih jaringan untuk mendapatkan keseimbangan antara kemampuan jaringan untuk mengenali pola yang digunakan selama pelatihan serta kemampuan jaringan untuk memberikan respon yang benar terhadap pola masukan yang serupa (tapi tidak sama) dengan pola yang dipakai selama pelatihan. JST dengan layar tunggal memiliki keterbatasan dalam pengenalan pola. Seperti halnya model JST lain.

98 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 7. wkj merupakan bobot dari unit layar tersembunyi zj ke unit keluaran yk (wk0 merupakan bobot dari bias di layar tersembunyi ke unit keluaran zk) Y1 Yk Ym w10 wk0 wkj wkp wmp wk1 wm0 w11 wm1 w1j wmj w1p 1 z1 zj zp vj0 vj1 vjn vpn v10 vji v11 v1i vpi vp1 v1n vp0 1 x1 xi xn Gambar 7. Gambar 7. vji merupakan bobot garis dari unit masukan xi ke unit layar tersembunyi zj (vj0 merupakan bobot garis yang menghubungkan bias di unit masukan ke unit layar tersembunyi zj). sebuah layar tersembunyi yang terdiri dari p unit (ditambah sebuah bias).1.1 adalah arsitektur backpropagation dengan n buah masukan (ditambah sebuah bias).1 .1 Arsitektur Backpropagation Backpropagation memiliki beberapa unit yang ada dalam satu atau lebih layar tersembunyi. serta m buah unit keluaran.

1).2 Fungsi Aktivasi Dalam backpropagation. pola masukan dan keluaran harus terlebih dahulu ditransformasi sehingga semua polanya memiliki range yang sama seperti fungsi sigmoid yang dipakai. Alternatif lain adalah . Salah satu fungsi yang memenuhi ketiga syarat tersebut sehingga sering dipakai adalah fungsi sigmoid biner yang memiliki range (0. terdiferensial dengan mudah dan merupakan fungsi yang tidak turun.3.2 Fungsi lain yang sering dipakai adalah fungsi sigmoid bipolar yang bentuk fungsinya mirip dengan fungsi sigmoid biner.5 x 0 Gambar 7.2 1 f(x) 0. f ( x) = 2 − 1 dengan turunan f ' ( x ) = (1 + f ( x ) ) (1 − f ( x ) ) −x 1+ e 2 Grafik fungsinya tampak pada gambar 7.1. Fungsi sigmoid memiliki nilai maksimum = 1. 1). tapi dengan range (-1. Maka untuk pola yang targetnya > 1. fungsi aktivasi yang dipakai harus memenuhi beberapa syarat yaitu : kontinu.BACK PROPAGATION 99 7. 1 f ( x) = dengan turunan f ' ( x ) = f ( x ) (1 − f ( x ) ) 1 + e− x Grafik fungsinya tampak pada gambar 7.

Fase kedua adalah fase mundur. • Fase I : Propagasi maju Selama propagasi maju. dimulai dari garis yang berhubungan langsung dengan unit-unit di layar keluaran.1. sinyal masukan (= xi) dipropagasikan ke layar tersembunyi menggunakan fungsi aktivasi yang ditentukan.3 7. Fase ketiga adalah modifikasi bobot untuk menurunkan kesalahan yang terjadi. . Pada layar keluaran. Fase pertama adalah fase maju. Demikian seterusnya hingga menghasilkan keluaran jaringan (= yk). Keluaran dari setiap unit layar tersembunyi (= zj) tersebut selanjutnya dipropagasikan maju lagi ke layar tersembunyi di atasnya menggunakan fungsi aktivasi yang ditentukan. fungsi aktivasi yang dipakai adalah fungsi identitas : f(x) = x 1 f(x) x -1 Gambar 7. Kesalahan tersebut dipropagasikan mundur. Pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan.100 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab menggunakan fungsi aktivasi sigmoid hanya pada layar yang bukan layar keluaran.3 Pelatihan Standar Backpropagation Pelatihan Backpropagation meliputi 3 fase. Selisih antara keluaran jaringan dengan target yang diinginkan merupakan kesalahan yang terjadi.

δ k juga dipakai untuk mengubah bobot garis yang berhubungan langsung dengan unit keluaran. Iterasi akan dihentikan jika jumlah iterasi yang dilakukan sudah melebihi jumlah maksimum iterasi yang ditetapkan. .. maka iterasi dihentikan. atau jika kesalahan yang terjadi sudah lebih kecil dari batas toleransi yang diijinkan. . Demikian seterusnya hingga semua faktor δ di unit tersembunyi yang berhubungan langsung dengan unit masukan dihitung. • Fase III : Perubahan bobot Setelah semua faktor δ dihitung. Perubahan bobot suatu garis didasarkan atas faktor δ neuron di layar atasnya. perubahan bobot garis yang menuju ke layar keluaran didasarkan atas δ k yang ada di unit keluaran. Jika kesalahan ini lebih kecil dari batas toleransi yang ditentukan. m) yang dipakai untuk mendistribusikan kesalahan di unit yk ke semua unit tersembunyi yang terhubung langsung dengan yk.. keluaran jaringan (= yk) dibandingkan dengan target yang harus dicapai (= tk). • Fase II : Propagasi mundur Berdasarkan kesalahan tk – yk. Dengan cara yang sama. Selisih tk – yk adalah kesalahan yang terjadi. Umumnya kondisi penghentian yang sering dipakai adalah jumlah iterasi atau kesalahan. Akan tetapi apabila kesalahan masih lebih besar dari batas toleransinya. . dihitung faktor δ j di setiap unit di layar tersembunyi sebagai dasar perubahan bobot semua garis yang berasal dari unit tersembunyi di layar di bawahnya. dihitung faktor δ k (k = 1.2 . Sebagai contoh. Ketiga fase terebut diulang-ulang terus hingga kondisi penghentian dipenuhi. bobot semua garis dimodifikasi bersamaan.BACK PROPAGATION 101 Berikutnya. maka bobot setiap garis dalam jaringan akan dimodifikasi untuk mengurangi kesalahan yang terjadi.

m) . m) p y_net k = wko + ∑zj =1 j wk j 1 yk = f (y_net k ) = 1 + e − y _ netk Fase II : Propagasi mundur Langkah 6 : Hitung faktor δ unit keluaran berdasarkan kesalahan di setiap unit keluaran yk (k = 1. . 2. . .. lakukan langkah 2 – 9 Langkah 2 : Untuk setiap pasang data pelatihan. p) n z_net j = v jo + ∑x v i =1 i ji 1 zj = f (z_net j ) = − z _ net j 1+ e Langkah 5 : Hitung semua keluaran jaringan di unit yk (k = 1.. 2. . . .102 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Algoritma pelatihan untuk jaringan dengan satu layar tersembunyi (dengan fungsi aktivasi sigmoid biner) adalah sebagai berikut : Langkah 0 : Inisialisasi semua bobot dengan bilangan acak kecil Langkah 1 : Jika kondisi penghentian belum terpenuhi. lakukan langkah 3–8 Fase I : Propagasi maju Langkah 3 : Tiap unit masukan menerima sinyal dan meneruskannya ke unit tersembunyi di atasnya Langkah 4 : Hitung semua keluaran di unit tersembunyi zj (j = 1... 2...

. p Langkah 7 : Hitung faktor δ unit tersembunyi berdasarkan kesalahan di setiap unit tersembunyi zj (j = 1. . p .. . . 2. p) m δ _ net j = ∑ δ k wk j k =1 Faktor δ unit tersembunyi : δ j = δ _ net j f ' ( z _ net j ) = δ _ net j z j (1 − z j ) Hitung suku perubahan bobot vji (yang akan dipakai nanti untuk merubah bobot vji) Δv ji = α δ j xi . 2.. k = 1. . 1.m . p) Perubahan bobot garis yang menuju ke unit tersembunyi : v ji (baru ) = v ji (lama ) + Δ v ji (j = 1. .. . . i = 0.m ... p .. . j = 1. j = 0. 1. 2. .. 1. 1. i = 0. n) . j = 0.. .. . .. .. 2.. 2.... .BACK PROPAGATION 103 δ k = ( tk − yk ) f ' ( y _ netk ) = ( tk − yk ) yk (1 − yk ) δ k merupakan unit kesalahan yang akan dipakai dalam perubahan bobot layar di bawahnya (langkah 7) Hitung suku perubahan bobot wkj (yang akan dipakai nanti untuk merubah bobot wkj) dengan laju percepatan α Δwkj = α δ k z j . .n Fase III : Perubahan Bobot Langkah 8 : Hitung semua perubahan bobot Perubahan bobot garis yang menuju ke unit keluaran : wk j (baru ) = wk j (lama ) + Δwk j (k = 1. . ....

104 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Setelah pelatihan selesai dilakukan. Apabila fungsi aktivasi yang dipakai bukan sigmoid biner.4 . Gunakan laju pemahaman α = 0. Dalam hal ini. maka langkah 4 dan 5 harus disesuaikan.1 Gunakan Backpropagation dengan sebuah layar tersembunyi (dengan 3 unit) untuk mengenali fungsi logika XOR dengan 2 masukan x1 dan x2. x2 = 1 dan t = 0).2 Penyelesaian Arsitektur Backpropagation dengan 1 layar tersembunyi yang terdiri dari 3 unit untuk mengenali fungsi XOR tampak pada gambar 7. Buatlah iterasi untuk menghitung bobot jaringan untuk pola pertama (x1 = 1. Demikian juga turunannya pada langkah 6 dan 7 Contoh 7. hanya propagasi maju (langkah 4 dan 5) saja yang dipakai untuk menentukan keluaran jaringan. jaringan dapat dipakai untuk pengenalan pola.4 Y w10 w11 w12 w13 1 z1 z2 z3 v10 v20 v21 v22 v32 v11 v31 v12 v30 1 x1 x2 Gambar 7.

3 -0.2) + 1 (0.1 (bobot dari layar masukan ke layar tersembunyi = vji) dan 7.3 0.3 + 1 (-0.2 (bobot dari layar masukan ke layar tersembunyi = wkj) Tabel 7.2 0.1) = 0.3) = 0.3 0.1 -0.1 z1 z2 z3 x1 0.1) = 0.1 1 zj = f (z_net j ) = − z _ net j 1+ e .BACK PROPAGATION 105 Mula-mula bobot diberi nilai acak yang kecil (range [-1. 1]).3 + 1 (0. Misal didapat bobot seperti tabel 7.2 y z1 0.3 Tabel 7.3 0.2 z_net 2 = 0.1 x2 0.3) + 1 (0.4 1 -0.3 z3 -0.1 1 -0.3 + 1 (0.1 Langkah 4 : Hitung keluaran unit tersembunyi (zj) 2 z_net j = v jo + ∑x v i =1 i ji z_net 1 = -0.1) + 1 (-0.7 z_net 3 = 0.5 z2 -0.

01 .2 (-0.55 (0.2) : Δwkj = α δ k z j = α δ z j .11 Suku perubahan bobot wkj (dengan α = 0.52) = -0.44) = -0. Karena jaringan hanya memiliki sebuah keluaran maka δ k = δ = ( t − y ) y (1 − y ) = (0 – 0.3) + 0.2 = 0.2 (-0. 3 Δw10 = 0.01 Δw12 = 0.106 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 1 1 z1 = −0. z3 = = 1+ e 1+ e 1 + e −0.67 .24 1 1 y = f (y_net ) = − y _ net = = 0. j = 0.11) (0. . ..7 = 0.01 Δw13 = 0.2 (-0.44 1+ e 1 + e0.1 + 0.11) (0.52 Langkah 5 : Hitung keluaran unit yk 3 y_net k = wko + ∑z j =1 j wk j = Karena jaringan hanya memiliki sebuah unit keluaran y maka 3 y_net k = y_net = w1o + ∑z j =1 j w1 j = -0.52 (-0. z2 = −0.1 0.55) = -0.2 (-0.11) (0. 1.4) = -0.67) = -0.24 Langkah 6 : Hitung faktor δ di unit keluaran yk δ k = ( tk − yk ) f ' ( y _ netk ) = ( tk − yk ) yk (1 − yk ) .67 (-0.11) (1) = -0.55 .5) + 0.44) (1 – 0.44) (0.02 Δw11 = 0..

5) = -0.01) (1) = 0 (1) = 0 (1) = 0 1 Δv10 = (0.2) (0.2) (-0.01) Δv32 = (0.55) = -0.11) (0.2) (0.04 Faktor kesalahan δ di unit tersembunyi : δ j = δ _ net j f ' ( z _ net j ) = δ _ net j z j (1 − z j ) δ 1 = -0.52) (1 .05 δ _ net2 = (-0.0.52) = 0.03 (0.01) Δv30 = (0.11) (-0.55) (1 .01) Δv21 = (0.3) = 0. 1.01) (1) = 0 (1) = 0 (1) = 0 . 2.01 Suku perubahan bobot ke unit tersembunyi Δv ji = α δ j xi (j = 1.0.01) (1) = 0 (1) = 0 (1) = 0 x2 Δv12 = (0.01) Δv20 = (0.67) = 0.03 δ _ net3 = (-0.67) (1 .2) (-0.05 (0.2) (0.3 z1 z2 z3 x1 Δv11 = (0.01) Δv22 = (0.4) = 0. 2) Tabel 7.2) (-0.2) (0. 3 .01) Δv31 = (0.11) (-0. i = 0.2) (0.01 δ 3 = 0.2) (0. Karena jaringan hanya memiliki sebuah k =1 unit keluaran maka δ _ net j = δ w1 j δ _ net1 = (-0.04 (0.01 δ 2 = 0.0.BACK PROPAGATION 107 Langkah 7 : Hitung penjumlahan kesalahan dari unit tersembunyi (= δ ) m δ _ net j = ∑ δ k wk j .

3 = 0.49 w12 (baru) = -0. i = 0.1 + 0 v32 (baru) = -0. j = 0. 1. x2 = 0.4 z1 z2 z3 x1 v11 (baru) = 0.4 – 0. 3) w11 (baru) = 0.1 1 v10 (baru) = -0...1 + 0 = 0. 2.3 = 0.02 = -0.3 – 0.41 w10 (baru) = -0.108 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Langkah 8 : Hitung semua perubahan bobot Perubahan bobot unit keluaran : wk j (baru ) = wk j (lama ) + Δwk j (k = 1 .2 = 0.3 = -0.3 = 0. 2) Tabel 7.5 – 0.1 – 0. 1.3 Pembaca dapat mencoba membuat iterasi untuk pola kedua (x1 = 1.1 + 0 = 0.3 + 0 = -0.2 + 0 v21 (baru) = 0. t = 1) .12 Perubahan bobot unit tersembunyi : v ji (baru ) = v ji (lama ) + Δ v ji (j = 1.1 x2 v12 (baru) = 0.3 + 0 v30 (baru) = 0.01 = -0. . .3 + 0 v31 (baru) = -0.31 w13 (baru) = -0.3 + 0 v22 (baru) = 0.3 + 0 v20 (baru) = 0.01 = -0. 3 .1 = -0.01 = 0.

2 Optimalitas Arsitektur Backpropagation Masalah utama yang dihadapi dalam Backpropagation adalah lamanya iterasi yang harus dilakukan. bobot dan bias diisi dengan bilangan acak kecil.1 Pemilihan Bobot dan Bias Awal Bobot awal akan mempengaruhi apakah jaringan mencapai titik minimum lokal atau global. 7.BACK PROPAGATION 109 7.7 n p Algoritma inisialisasi Nguyen Widrow adalah sebagai berikut : a.2. Backpropagation tidak dapat memberikan kepastian tentang berapa epoch yang harus dilalui untuk mencapai kondisi yang diinginkan.5.5] . 0. Demikian pula nilai bobot awal tidak boleh terlalu besar karena nilai turunan fungsi aktivasinya menjadi sangat kecil juga. Oleh karena itu orang berusaha meneliti bagaimana parameter-parameter jaringan dibuat sehingga menghasilkan jumlah iterasi yang relatif lebih sedikit. Bobot yang menghasilkan nilai turunan aktivasi yang kecil sedapat mungkin dihindari karena akan menyebabkan perubahan bobotnya menjadi sangat kecil. dan seberapa cepat konvergensinya. Inisialisasi semua bobot (vji (lama)) dengan bilangan acak dalam interval [-0. Nguyen dan Widrow (1990) mengusulkan cara membuat inisialisasi bobot dan bias ke unit tersembunyi sehingga menghasilkan iterasi lebih cepat Misal n = jumlah unit masukan p = jumlah unit tersembunyi β = faktor skala = 0. Oleh karena itu dalam standar Backpropagation.

3 β = 0..2 2 + 0.32 = 0. n = jumlah unit masukan = 2 dan p = jumlah unit tersembunyi = 3.7 2 3 = 1.32 .1 -0.12 = 0.3 0. Hitung v j = v 2j1 + v 2j 2 + .2 0.1 menggunakan modifikasi bobot Nguyen Widrow Penyelesaian Dalam contoh 7.32 + 0.21 v1 = v112 + v122 = 0.3 0.3 -0.2 Buatlah bobot awal ke unit tersembunyi contoh 7.β dan β Contoh 7.3 0.110 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab b.1 x2 0. + v 2jn β v ji (lama ) c.5 Tabel 7. Bias yang dipakai sebagai inisialisasi = vj0 = bilangan acak antara .1 1 -0.5 z1 z2 z3 x1 0.1..36 v2 = 2 v21 + v22 2 = 0. Bobot lama (vji lama) yang didapat secara acak tampak dalam tabel 7. Bobot yang dipakai sebagai inisialisasi = vj i = vj d.

faktor δ perlu dihitung untuk tiap layar tersembunyi. dimulai dari layar tersembunyi paling bawah (terdekat dengan masukan). maka algoritma pelatihan yang dijabarkan sebelumnya perlu direvisi.6 merupakan bobot yang dipakai sebagai inisialisasi Tabel 7.21*(-0. Jika jaringan memiliki lebih dari satu layar tersembunyi.21*(-0.21 7.67 1.2 Jumlah Unit Tersembunyi Hasil teoritis yang didapat menunjukkan bahwa jaringan dengan sebuah layar tersembunyi sudah cukup bagi Backpropagation untuk mengenali sembarang perkawanan antara masukan dan target dengan tingkat ketelitian yang ditentukan.14 = 1 0.1) 2 = 0.86 x2 (1.36 (1.1))/0.1) 2 + ( −0.1))/0.21*0.14 = 0.86 Bias yang dipakai adalah bilangan acak antara -1.13 = 0. dimulai dari layar keluaran . keluaran harus dihitung untuk tiap layar.6 z1 z2 z3 x1 (1.32 = (1. Dalam propagasi maju.2)/0.1)/0. Sebaliknya. Akan tetapi penambahan jumlah layar tersembunyi kadangkala membuat pelatihan lebih mudah.21*0. dalam propagasi mundur.36 (1.14 Tabel 7.21*0.3)/0.38 = 0.2.21 hingga 1.3)/0.BACK PROPAGATION 111 v3 = v31 2 + v32 2 = ( −0.32 = (1.21*0.

Akan tetapi hal itu tidak menjamin jaringan akan mampu mengenali pola pengujian dengan tepat. Jumlah pola yang dibutuhkan dipengaruhi oleh banyaknya bobot dalam jaringan serta tingkat akurasi yang diharapkan. . kesalahan yang terjadi dihitung berdasarkan semua data (pelatihan dan pengujian). pelatihan tidak ada gunanya untuk diteruskan lagi. pelatihan terus dijalankan.3 Jumlah Pola Pelatihan Tidak ada kepastian tentang berapa banyak pola yang diperlukan agar jaringan dapat dilatih dengan sempurna. maka 800 pola masukan diharapkan akan mampu mengenali dengan benar 90 % pola diantaranya. Akan tetapi selama pelatihan (misal setiap 10 epoch). yaitu pola data yang dipakai sebagai pelatihan dan data yang dipakai untuk pengujian. Selama kesalahan ini menurun.2. Jaringan dapat dilatih terus menerus hingga semua pola pelatihan dikenali dengan benar. Jaringan sudah mulai mengambil sifat yang hanya dimiliki secara spesifik oleh data pelatihan (tapi tidak dimiliki oleh data pengujian) dan sudah mulai kehilangan kemampuan melakukan generalisasi. Akan tetapi jika kesalahannya sudah meningkat. Perubahan bobot dilakukan berdasarkan pola pelatihan.1.112 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 7. Aturan kasarnya dapat ditentukan berdasarkan rumusan : Jumlah pola = Jumlah bobot / tingkat akurasi Untuk jaringan dengan 80 bobot dan tingkat akurasi 0. Umumnya data dibagi menjadi 2 bagian saling asing.2.4 Lama Iterasi Tujuan utama penggunaan Backpropagation adalah mendapatkan keseimbangan antara pengenalan pola pelatihan secara benar dan respon yang baik untuk pola lain yang sejenis (disebut data pengujian). 7. Jadi tidaklah bermanfaat untuk meneruskan iterasi hingga semua kesalahan pola pelatihan = 0.

kini sudah berkembang berbagai variasinya. Jadi tidak hanya pola masukan terakhir saja yang diperhitungkan.3. bobot baru pada waktu ke (t+1) didasarkan atas bobot pada waktu t dan (t-1).3 Variasi Backpropagation Disamping model standar Backpropagation. Namun apabila data terakhir yang dimasukkan memiliki pola yang berbeda dengan pola sebelumnya. atau teknik modifikasi bobot untuk mempercepat pelatihan dalam kasus tertentu.1 Momentum Pada standar Backpropagation. Apabila beberapa data terakhir yang diberikan ke jaringan memiliki pola serupa (berarti arah gradien sudah benar). Jika μ adalah konstanta (0 ≤ μ ≤ 1) yang menyatakan parameter momentum maka bobot baru dihitung berdasarkan persamaan : wkj (t + 1) = wkj (t ) + α δ k z j + μ ( wkj (t ) − wkj (t − 1) ) dan . Disini harus ditambahkan 2 variabel baru yang mencatat besarnya momentum untuk 2 iterasi terakhir. 7.BACK PROPAGATION 113 7. perubahan bobot didasarkan atas gradien yang terjadi untuk pola yang dimasukkan saat itu. Dengan penambahan momentum. Beberapa variasi diantaranya dijelaskan dalam bab ini. maka perubahan dilakukan secara lambat. Modifikasi yang dapat dilakukan adalah melakukan perubahan bobot yang didasarkan atas arah gradien pola terakhir dan pola sebelumnya (disebut momentum) yang dimasukkan. Variasi tersebut bisa berupa model Backpropagation yang digunakan untuk keperluan khusus. maka perubahan bobot dilakukan secara cepat. Penambahan momentum dimaksudkan untuk menghindari perubahan bobot yang mencolok akibat adanya data yang sangat berbeda dengan yang lain (outlier).

114 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab v ji (t + 1) = v ji (t ) + α δ j xi + μ ( v ji (t ) − v ji (t − 1) ) Contoh 7.3 0.1 -0.1. Hanya saja perhitungan bobot baru pada langkah 8 dilakukan dengan menambahkan momentum (bobot pada waktu (t-1) = bobot awal) Hasil iterasi yang diperoleh dari pola pertama tampak pada tabel 7.3 -0. dan t = 1) dengan menggunakan suku momentum ( μ = 0.1 x2 0.49 z2 -0. x2 = 0.31 . Lakukan iterasi untuk pola kedua (x1 = 1.3 0.3 0.1.8 Tabel 7.1 1 -0.7 z1 z2 z3 x1 0.2 Perhatikan kembali iterasi pola pertama fungsi logika XOR dengan Backpropagation pada contoh 7.7 dan 7.3 Tabel 7.2 0.5) Penyelesaian Iterasi untuk pola kedua sebenarnya sama dengan iterasi contoh 7.8 y z1 0.

3 + 1 (0.49) + 0.1) = 0.1 z_net 2 = 0.12 + 0.55 (-0.6 = 0.42 1+ e 1 + e0.1) + 0 (-0.BACK PROPAGATION 115 z3 -0.31 .65 (-0.2 0.1) = 0.6 z_net 3 = 0.31) + 0.65 . z3 = = 1+ e 0.48 .55 Langkah 5 : Hitung keluaran unit yk 3 y_net k = wko + ∑z j =1 j wk j Karena jaringan hanya memiliki sebuah unit keluaran y maka 3 y_net k = y_net = w1o + ∑z j =1 j w1 j = -0.48 (0.3 + 1 (0.3) = -0.41) = -0.41 1 -0.12 Langkah 4 : Hitung keluaran unit tersembunyi (zj) 2 z_net j = v jo + ∑x v i =1 i ji z_net 1 = -0.31 1 1 y = f (y_net) = − y _ net = = 0.1 1+ e 1 + e −0.3) + 0 (0. z2 = −0.3 + 1 (-0.2 1 zj = f (z_net j ) = − z _ net j 1+ e 1 1 1 z1 = = 0.2) + 0 (0.

48) (1 .49) = 0..0.48) = 0.42) (1 – 0..04 δ _ net3 = (0.41) = -0.14) (0.14 Suku perubahan bobot wkj (dengan α = 0. Karena jaringan hanya memiliki sebuah k =1 unit keluaran maka δ _ net j = δ w1 j δ _ net1 = (0.07 (0.65) = 0.14) (0.14) (1) = 0. .31) = -0.42) (0. Karena jaringan hanya memiliki sebuah keluaran y maka δ k = δ = ( t − y ) y (1 − y ) = (1 – 0.48) = 0.14) (-0. j = 0.42) = 0.2 (0.2 (0.01 Δw12 = 0.2 (0.14) (0.02 .2 (0.55) = 0.06 Faktor kesalahan δ di unit tersembunyi : δ j = δ _ net j f ' ( z _ net j ) = δ _ net j z j (1 − z j ) δ 1 = 0.14) (0.02 Langkah 7 : Hitung penjumlahan kesalahan dari unit tersembunyi (= δ ) m δ _ net j = ∑ δ k wk j .02 Δw13 = 0.14) (-0.2) : Δwkj = α δ k z j = α δ z j .116 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Langkah 6 : Hitung faktor δ di unit keluaran yk δ k = ( tk − yk ) f ' ( y _ netk ) = ( tk − yk ) yk (1 − yk ) . 3 Δw10 = 0. . 1.07 δ _ net2 = (0.03 Δw11 = 0.

.1) sedangkan wkj (t − 1) adalah bobot mula-mula pada iterasi pola pertama (bobot awal contoh 7. 2) Tabel 7.. .65) = -0.31 – (-0. 1. 1.49 – 0.495 w12 (baru) = -0. wkj (t ) adalah bobot mula-mula pola kedua (hasil dari iterasi pola pertama contoh 7.01 + 0.0.2) (-0.5) = 0.02) Δv21 = (0.2) (-0.2) (-0. 3 .01) Δv31 = (0.55) (1 .31 + 0.55) = -0.0.01) (0) = 0 (0) = 0 (0) = 0 1 Δv11 = (0.01 Suku perubahan bobot ke unit tersembunyi Δv ji = α δ j xi (j = 1.2) (-0.02 + 0.5 (-0.01) (1) = 0 (1) = 0 (1) = 0 x2 Δv11 = (0.65) (1 .04 (0.2) (0. i = 0.3)) = -0.2) (0. 2.06 (0.1) w11 (baru) = 0.01) (1) = 0 (1) = 0 (1) = 0 Langkah 8 : Hitung semua perubahan bobot Bobot baru unit keluaran : wkj (t + 1) = wkj (t ) + α δ k z j + μ ( wkj (t ) − wkj (t − 1) ) (k = 1 . j = 0.5 (0.01) Δv31 = (0.BACK PROPAGATION 117 δ 2 = -0.01) Δv31 = (0.01 δ 3 = -0.2) (-0.2) (0.02) Δv21 = (0.49 + 0.295 .02) Δv21 = (0.. 3) Suku α δ k z j adalah hasil yang didapat dari langkah 6.9 z1 z2 z3 x1 Δv11 = (0.2) (-0.

118 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

w13 (baru) = -0.41 + 0.02 + 0.5 (-0.41 – (-0.4)) = -0.395
w10 (baru) = -0.12 + 0.03 + 0.5 (-0.12 – (-0.1)) = -0.1

Perubahan bobot unit tersembunyi :

v ji (t + 1) = v ji (t ) + α δ j xi + μ ( v ji (t ) − v ji (t − 1) )

(j = 1, 2, 3 ; i = 0, 1, 2)
v ji (t ) adalah bobot awal yang dipakai dalam contoh 7.2 (hasil
iterasi vji pada contoh 7.1), sedangkan v ji (t − 1) adalah bobot
awal yang dipakai dalam contoh 7.1. Keduanya bernilai sama
sehingga suku momentum (v ji (t ) − v ji (t − 1) ) = 0.

α δ j xi adalah hasil langkah 7, yang bernilai = 0 ∀ i, j.
Berarti vji tidak mengalami perubahan. vji baru hasil iterasi pola
kedua sama dengan vji tabel 7.7

7.3.2 Delta – Bar – Delta
Dalam standar Backpropagation, laju pemahaman ( α ) merupakan
suatu konstanta yang dipakai dalam seluruh iterasinya. Perubahan
dapat dilakukan dengan memberikan laju pemahaman yang berbeda-
beda untuk setiap bobotnya (atau bahkan laju pemahaman yang
berbeda-beda untuk tiap bobot dalam tiap iterasinya). Apabila
perubahan bobot berada dalam arah yang sama dalam beberapa pola
terakhir (dapat dilihat dari tanda suku δ k z j yang selalu sama), maka
laju pemahaman yang bersesuaian dengan bobot wkj ditambah.
Sebaliknya apabila arah perubahan bobot dua pola terakhir berbeda
(ditandai dengan suku δ k z j yang berselang-seling positip – negatif)
maka laju pemahaman untuk bobot tersebut harus dikurangi.

BACK PROPAGATION 119

Perubahan bobot dalam aturan delta – bar – delta adalah sebagai
berikut :

wkj (t + 1) = wkj (t ) + α kj (t + 1) δ k z j

7.3.3 Perubahan Bobot Berkelompok
Variasi lain yang dapat dilakukan pada standar Backpropagation
adalah merubah bobotnya sekaligus setelah semua pola dimasukkan.
Untuk tiap pola yang dimasukkan, dilakukan langkah 4 – 7 standar
Backpropagation. Nilai Δwkj dan Δv ji untuk tiap pola dijumlahkan.
Langkah 8 (perhitungan bobot baru) dilakukan berdasarkan hasil
jumlahan Δwkj dan Δv ji tersebut.

Prosedur ini memberikan efek yang lebih halus dalam perubahan
bobot. Dalam beberapa kasus, variasi perubahan ini akan
meningkatkan kemungkinan konvergensi ke titik minimum lokal.

7.4 Aplikasi Backpropagation Dalam
Peramalan
Salah satu bidang dimana Backpropagation dapat diaplikasikan
dengan baik adalah bidang peramalan (forecasting). Peramalan yang
sering kita dengar adalah peramalan besarnya penjualan, nilai tukar
valuta asing, prediksi besarnya aliran air sungai, dll. Sebagai contoh,
dalam penjualan barang, diketahui record data penjualan suatu
produk pada beberapa bulan/tahun terakhir. Masalahnya adalah
memperkirakan berapa perkiraan produk yang terjual dalam
bulan/tahun yang akan datang.

120 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Secara umum, masalah peramalan dapat dinyatakan sebagai berikut :
Diketahui sejumlah data runtun waktu (time series) x1, x2 , .... ,xn.
Masalahnya adalah memperkirakan berapa harga xn+1 berdasarkan x1,
x2 , .... ,xn.

Dengan Backpropagation, record data dipakai sebagai data pelatihan
untuk mencari bobot yang optimal. Untuk itu kita perlu menetapkan
besarnya periode dimana data berfluktuasi. Periode ini kita tentukan
secara intuitif. Misalkan pada data besarnya debit air sungai dengan
data bulanan, periode data dapat diambil selama satu tahun karena
pergantian musim terjadi selama satu tahun.

Jumlah data dalam satu periode ini dipakai sebagai jumlah masukan
dalam backpropagation. Sebagai targetnya diambil data bulan
pertama setelah periode berakhir. Pada data bulanan dengan periode
satu tahun, maka masukan backpropagation yang dipakai terdiri dari
12 masukan. Keluaran adalah 1 unit.

Bagian tersulit adalah menentukan jumlah layar (dan unitnya). Tidak
ada teori yang dengan pasti dapat dipakai. Tapi secara praktis dicoba
jaringan yang kecil terlebih dahulu (misal terdiri dari 1 layar
tersembunyi dengan beberapa unit saja). Jika gagal (kesalahan tidak
turun dalam epoch yang besar), maka jaringan diperbesar dengan
menambahkan unit tersembunyi atau bahkan menambah layar
tersembunyi.

Contoh 7.3
Diketahui data bulanan penjualan suatu produk makanan kaleng
selama 2 tahun terakhir seperti tampak pada tabel 7.10. Buatlah model
backpropagation untuk memperkirakan jumlah produk yang terjual
bulan depan

BACK PROPAGATION 121

Tabel 7.10

Tahun Penjualan tiap bulan

2003 2045 1696 1341 1181 1613 2242
6161 10437 9590 5291 3081 2147
2004 1767 1466 1090 1070 1355 5324
7167 13780 10629 7725 3284 2400

Penyelesaian
Gambar 7.5 adalah grafik penjualan contoh 7.3. Tampak bahwa pola
datanya periodik dalam jangka waktu 12 bulan. Maka model
Backpropagation yang dipakai memiliki 12 unit masukan dan sebuah
keluaran.

16000
14000
12000
10000
Penjualan

8000
6000
4000
2000
0
Apr 03

Apr 04
Okt 03

Okt 04
Jan 03

Jan 04
Jul 03

Jul 04

Bulan

Gambar 7.5

122 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Jika ingin menggunakan fungsi aktivasi sigmoid (biner), data harus
ditransformasikan dulu karena range keluaran fungsi aktivasi sigmoid
adalah [0,1]. Data bisa ditransformasikan ke interval [0,1]. Tapi akan
lebih baik jika ditransformasikan ke interval yang lebih kecil, misal
pada interval [0.1, 0.9]. Ini mengingat fungsi sigmoid merupakan
fungsi asimtotik yang nilainya tidak pernah mencapai 0 ataupun 1.

Jika a adalah data minimum dan b adalah data maksimum,
transformasi linier yang dipakai untuk mentransformasikan data ke
interval [0.1 , 0.9] adalah

0.8 ( x − a )
x' = + 0.1
b−a
Dalam tabel 7.10, a = 1070 dan b = 13780. Dengan transformasi ini
maka data terkecil akan menjadi 0.1 dan data terbesar akan menjadi
0.9. Tabel 7.11 adalah hasil transformasi data tabel 7.10 yang nantinya
dipakai sebagai data pelatihan Backpropagation.

Tabel 7.11

Tahun Penjualan tiap bulan

2003 0.1614 0.1394 0.1171 0.1070 0.1342 0.1738
0.4204 0.6896 0.6363 0.3657 0.2266 0.1678

2004 0.1439 0.1249 0.1013 0.1 0.1179 0.3678
0.4838 0.9 0.7017 0.5189 0.2394 0.1837

Pola yang dipakai merupakan data selama 12 bulan dan target adalah
data penjualan pada bulan ke-13. Jadi ada 12 pola data dalam sebuah
epochnya seperti yang tampak dalam tabel 7.12. Jumlah layar
tersembunyi bisa dicoba-coba mulai dengan sebuah layar tersembunyi
dengan 3 unit.

BACK PROPAGATION 123

Tabel 7.12

Pola Data Masukan (x1, ... , x12) Target

Pola-1 0.1614 0.1394 0.1171 0.1070 0.1342 0.1738 0.1439
0.4204 0.6896 0.6363 0.3657 0.2266 0.1678

Pola-2 0.1394 0.1171 0.1070 0.1342 0.1738 0.4204 0.1249
0.6896 0.6363 0.3657 0.2266 0.1678 0.1439

Pola-3 0.1171 0.1070 0.1342 0.1738 0.4204 0.6896 0.1013
0.6363 0.3657 0.2266 0.1678 0.1439 0.1249

Pola-4 0.1070 0.1342 0.1738 0.4204 0.6896 0.6363 0.1
0.3657 0.2266 0.1678 0.1439 0.1249 0.1013

Pola-5 0.1342 0.1738 0.4204 0.6896 0.6363 0.3657 0.1179
0.2266 0.1678 0.1439 0.1249 0.1013 0.1

Pola-6 0.1738 0.4204 0.6896 0.6363 0.3657 0.2266 0.3678
0.1678 0.1439 0.1249 0.1013 0.1 0.1179

Pola-7 0.4204 0.6896 0.6363 0.3657 0.2266 0.1678 0.4838
0.1439 0.1249 0.1013 0.1 0.1179 0.3678

Pola-8 0.6896 0.6363 0.3657 0.2266 0.1678 0.1439 0.9
0.1249 0.1013 0.1 0.1179 0.3678 0.4838

Pola-9 0.6363 0.3657 0.2266 0.1678 0.1439 0.1249 0.7017
0.1013 0.1 0.1179 0.3678 0.4838 0.9

Pola-10 0.3657 0.2266 0.1678 0.1439 0.1249 0.1013 0.5189
0.1 0.1179 0.3678 0.4838 0.9 0.7017

Pola-11 0.2266 0.1678 0.1439 0.1249 0.1013 0.1 0.2394
0.1179 0.3678 0.4838 0.9 0.7017 0.5189

Pola-12 0.1678 0.1439 0.1249 0.1013 0.1 0.1179 0.1837
0.3678 0.4838 0.9 0.7017 0.5189 0.2394

Apabila data yang tersedia cukup banyak, data bisa dibagi menjadi 2
bagian yaitu data yang dipakai untuk pelatihan dan data yang dipakai

Setelah itu kesalahan dihitung berdasarkan bobot yang diperoleh yang dikenakan pada data pengujian. Akan tetapi kriteria penghentian didasarkan atas data pengujian. 3. dalam tabel 7. Perubahan bobot dilakukan berdasarkan data pelatihan.. Ini berarti jaringan mulai mengambil sifat yang spesifik terjadi pada data pelatihan.124 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab untuk pengujian. dan bukan generalisasi sifat data.1 4. Misalkan sebagai data pelatihan diambil data yang elemen pertamanya adalah bulan ganjil (pola-1. Gunakan α = 0. Mengapa fungsi aktivasi yang dipakai dalam backpropagation harus merupakan fungsi yang turunannya mudah dihitung ? 3. Jika kesalahan data uji masih turun. Data sisanya dipakai sebagai data pengujian. x2 = 0. Pelatihan dihentikan apabila kesalahannya mulai naik. t = 1) fungsi logika XOR sebagai kelanjutan contoh 7. t = 1) dengan menggunakan sebuah layar tersembunyi yang terdiri dari 2 unit. 5. pelatihan dilanjutkan. SOAL-SOAL LATIHAN 1. Buktikan bahwa turunan fungsi aktivasi sigmoid bipolar f ( x) = 2 − 1 adalah f '( x ) = (1 + f ( x ) ) (1 − f ( x ) ) −x 1+ e 2 2.5 dan bobot awal sebagai berikut : . Proses pelatihan dilakukan untuk beberapa epoch (misal tiap 10 epoch). .. Gunakan backpropagation untuk melatih pola pertama fungsi logika (biner) AND (x1 = 1.11). x2 = 1. Buatlah iterasi pola kedua (x1 = 1.

2 1 -0.1 0. Ulangi soal #5. Lanjutkan soal #4 diatas untuk pola kedua (x1 = 1.2 1 0.4 5.3 y z1 0.BACK PROPAGATION 125 z1 z2 x1 -0. tapi menggunakan momentum dengan μ = 0. t = 0) 6.2 .4 0.3 x2 0.1 -0.7 z2 -0. x2 = 0.

Dalam jaringan kompetisi bobot tetap. Dalam model ini tidak ada target vektor yang dipakai sebagai tolok ukur kebenaran pelatihan. Vektor target berfungsi sebagai “pelatih” yang akan mengoreksi apabila keluaran jaringan salah. B. Pola masukan akan akan dilihat apakah menyerupai pola targetnya. Dalam bab ini (dan bab berikutnya) dibahas bagaimana jaringan tanpa supervisi melakukan pelatihannya. Dalam model ini. semua . Model pelatihan lain yang dipakai adalah pelatihan tanpa supervisi. Dalam pengenalan pola ditentukan target polanya (misal pola yang menyerupai huruf A. dst). nilai titik-titiknya berubah selama proses iterasi berlangsung hingga akhirnya diperoleh satu titik yang menjadi pemenang (nilai > 0). neuron dipaksa untuk berkompetisi sehingga hanya satu diantaranya yang menjadi aktif (signal keluaran > 0). Selama proses iterasi. Bab 8 JARINGAN KOMPETISI DENGAN BOBOT TETAP 8. terdapat pasangan masukan dan target yang dipakai selama proses pelatihan. Salah satu model jaringan tanpa supervisi yang sering dipakai adalah jaringan kompetisi. Model pelatihan tanpa supervisi tepat dipakai dalam pengenalan pola (pattern recognition).1 Pelatihan Tanpa Supervisi Dalam model-model jaringan yang terdahulu. Model pelatihan semacam itu disebut pelatihan dengan supervisi (supervised training). Prinsip seperti ini sering disebut “winner takes all”.

bobot dalam Maxnet dibuat tetap. Tidak ada proses pelatihan. Jaringan terdiri dari m titik yang semuanya saling berhubungan dengan bobot simetris. MaxNet dapat dipakai sebagai bagian dari model jaringan lain untuk memperoleh neuron dengan masukan terbesar. Keluaran dari Maxnet adalah titik yang memiliki masukan terbesar. 1 1 A1  Am     Ai  Aj 1 1 Gambar 8. 8. Bobot antar titik berbeda adalah  . Selama proses. Dalam bab ini dibahas tentang dasar jaringan kompetisi.128 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab bobotnya tidak berubah meskipun bobot ini mungkin dipakai untuk mengubah nilai titiknya. Bobot suatu titik ke dirinya sendiri = 1.1. Arsitektur MaxNet tampak pada gambar 8. Pada bab berikutnya akan dibahas tentang model Hopfield yang banyak dipakai.2 MaxNet MaxNet merupakan model yang menggunakan dasar kompetisi. Model jaringan kompetisi cocok dipakai dalam pengenalan pola. Pola masukan yang diberikan akan diubah hingga diperoleh keputusan tentang pola target mana yang paling menyerupai dengan masukan tersebut.1 . Bobot ini bernilai tetap selama prosesnya.

a3 = 0.2 dengan nilai masukan mula-mula : a1 = 0.. .1 Misalkan jaringan MaxNet seperti pada gambar 8. masukan fungsi aktivasi adalah jumlah semua masukan ke titik aj)..m) dengan   a j (baru ) = f  a j (lama)    ak ( lama)   k j  Perhatikan bahwa dalam langkah (2). a2 = 0. . Modifikasi aktivasi titik aj (j = 1.1 memiliki bobot  = 0. a4 = 0. Selama terdapat lebih dari 1 unit yang fungsi aktivasinya > 0 lakukan langkah 2 2.6 .4 . 2.JARINGAN KOMPETISI DENGAN BOBOT TETAP 129 Fungsi aktivasi yang dipakai dalam MaxNet adalah x jika x  0 f ( x)   0 jika x  0 Algoritma pemrosesan jaringan yang terdiri dari m unit adalah sebagai berikut : 0. Inisialisasi  dengan bilangan 0 <  < 1 m 1 jika i  j Inisialisasi bobot wi j  w ji    jika i  j 1. Contoh 8.8 Tentukan titik dengan masukan terbesar menggunakan iterasi MaxNet Penyelesaian .2 .

442 4 0 0 0.008 0.8)) = f(0. Maka iterasi dihentikan dengan masukan terbesar = a4 .2+0.2 (0. hanya a4 saja yang bernilai positip.56 Hasil iterasi selengkapnya tampak pada tabel 8.1.192 0.130 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Modifikasi nilai aj dilakukan dengan aturan :   a j (baru ) = f  a j (lama)    ak ( lama)   k j  Maka iterasi –1 menghasilkan : a1 baru = f(0.08 a3 baru = f(0.6+0.32) = 0.2 (0.2 0.8)) = f(-0.4+0.2 (0.08 0.4 0.08) = 0.48 3 0 0 0. Iterasi dilakukan terus hingga hanya satu aj yang bernilai > 0 Tabel 8.6)) = f(0.421 Pada iterasi ke-5.8)) = f(0.16) = 0 a2 baru = f(0.1 Iterasi a1 a2 a3 a4 mula-mula 0.8 – 0.6 – 0.2+0.4+0.56) = 0.4 – 0.8 1 0 0.096 0.2+0.2 (0.4+0.2 – 0.6+0.442 5 0 0 0 0.32 0.6 0.56 2 0 0 0.32 a4 baru = f(0.

3 Topi Meksiko (Mexican Hat) Sub jaringan penguat lain yang ditemukan oleh Kohonen adalah jaringan topi meksiko (mexican hat). xi juga dihubungkan dengan titik yang jaraknya = 3 (titik xi-3. Nama ini diambil karena jika digambarkan. Lama iterasi berhubungan dengan jari-jari titik terkuat.2 menunjukkan arsitektur titik xi dengan R1 = 2 dan R2 = 3. Selain itu. xi+3) dengan bobot w2 (w2 > 0). w1 w1 w1 xi-4 xi-3 xi-2 xi-1 w1 xi w1 xi+1 xi+2 xi+3 xi+4 w2 w2 Gambar 8. Semakin lama iterasinya. Gambar 8. Setiap neuron hanya dihubungkan dengan semua neuron berjarak R1 darinya (termasuk dengan dirinya sendiri) dengan bobot positip. xi. xi+1. xi+2) dengan bobot w1 (w1 < 0). Algoritma iterasinya sebagai berikut : . jumlah titik yang terpilih akan menjadi semakin sedikit.2 Dalam iterasinya. hasil iterasinya akan meruncing di tengah seperti sebuah topi orang meksiko. xi-1. jaringan akan menyeleksi titik dengan masukan maksimum beserta titik-titik di sekitarnya.JARINGAN KOMPETISI DENGAN BOBOT TETAP 131 8. Dalam prosesnya digunakan 2 konstanta R1 dan R2 (R1 < R2) yang menunjukkan jari-jari titik yang memperkuat (bobot positip) dan memperlemah (bobot negatif) sinyal. dan dihubungkan juga dengan semua neuron berjarak R (dengan R1 < R  R2) darinya dengan bobot negatif. Titik xi dihubungkan dengan semua titik yang jaraknya  2 (titik xi-2.

.2 Gunakan algoritma topi meksiko pada vektor masukan x dengan 7 unit : (0.0 0. dan tmax (jumlah iterasi maksimum) c1  0 untuk k  0..5 2.5 0. R1 Inisialisasi bobot wk   c2  0 untuk k  R1  1. Hitung net masukan xi (i = 1.5 0. . t = t + 1 Contoh 8.4 Penyelesaian Modifikasi nilai x1 dalam iterasi pertama dapat dijelaskan dalam gambar 8. .8 0. R2 = 2.6 dan c2 = -0... Selama t < tmax. .132 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 0.3. R2 Inisialisasi xi = 0 (i = 1..8 1. n) t=0 1. c1 = 0.n) R1  R1 1 R2 xi  c1  k   R1 xi k (lama )  c2  k   R2 xi k (lama )  c2  k  R1 1 xi k (lama ) 3. . R2. x_max = max xi i 4.. 2. xi)) 5.0 0.. max (0. Inisialisasi R1. Hitung fungsi aktivasi xi = min (x_max. 2. Gunakan parameter R1 = 1.. . Langkah 2 iterasi menghasilkan : . .0). Perhatikan bahwa titik sekitar x1 hanyalah titik yang berada di kanannya karena x1 terletak pada posisi paling kiri. lakukan langkah 2 .

6 x6 (lama) .4 x7 (lama) x6 = -0.38 x7 = .0) + 0.6 (0.4 x5 (lama) + 0.6 Gambar 8.6 x2 (lama) + 0.5) + 0.6 (1.6 (0.0) = 0.6 (0.4 x6 (lama) x5 = -0.4 x4 (lama) x3 = -0.0.6 x3 (lama) + 0.6 (0.0.8) + 0.4 (0.6 (0.6 x5 (lama) + 0.16 x5 = .4 (0.4 (0.5 0.5) – 0.38 x3 = .6 x3 (lama) – 0.6 (0.JARINGAN KOMPETISI DENGAN BOBOT TETAP 133 x1 = 0.6 (1.2 .0) + 0.6 x3 (lama) + 0.6 (0.6 x4 (lama) .0) = -0.4 (1.6 (0.8) + 0.6 x5 (lama) + 0.0.4 x3 (lama) x2 = 0.5) – 0.3 Iterasi – 1 (t = 1) x1 = 0.6 x2 (lama) + 0.8) + 0.0) + 0.0.0) – 0.6 (0.5) = 1.0) + 0.6 (0.06 x6 = .0 0.4 x2 (lama) + 0.4 x1 (lama) + 0.6 x7 (lama) x1 x2 x3 x4 x5 x6 x7 0.4 (0.6 x4 (lama) + 0.0.8) + 0.6 (0.0) = 1.0.6 x1 (lama) + 0.0) + 0.6 (1.5) + 0.4 (1.6 (0.8) – 0.0) = 0.0 0.6 x6 (lama) + 0.6 x1 (lama) + 0.5) + 0.5) + 0.6 x5 (lama) .6 x7 (lama) x7 = -0.4 0.8) + 0.4 (0.6 0.6 x2 (lama) – 0.6 (0.0.4 (0.6 x6 (lama) + 0.0.2 x2 = 0.0) + 0.8 1.6 (0.6 (0.6 x4 (lama) + 0.4 x4 (lama) + 0.4 (0.5 0.4 x5 (lama) x4 = -0.0 -0.6 (0.0.8) = 1.8 0.8) = .06 x4 = .5) + 0.8) + 0.8) – 0.4 (0.4 x3 (lama) + 0.

6 (0) = -0. max (0.16.38) + 0.0) + 0.4 (0.38) + 0.6 (0.39 x7 = -0.06) + 0.0.6 (0.6 (1.4 (0.39 x3 = -0.4 (1.134 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab x_max = 1.06 x4 = min (1.06 . max (0. -0.06) + 0.16. max (0. Fungsi aktivasi menghasilkan : x1 = min (1.06) + 0. 0.38 x7 = min (1.6 (0. 0.38) + 0.06) = 1.6 (1. 1.06) – 0.196 x_max = 1.16. 1.06) + 0. 1.6 (1.6 (0.06)) = 1.16.6 (0.6 (1. 0) Iterasi – 2 (t = 2) x1 = 0. -0.16) – 0.38 x3 = min (1.06) + 0. max (0. 1.6 (0.6 (1.196)) = 0 x2 = min (1.6 (1.6 (0.66 x5 = -0. max (0.38)) = 0.06 .6 (0.4 (1.38) + 0. max (0.38) – 0.38 .38) = 1.38) + 0.06) + 0.16.6 (1.16) + 0.4 (1.16.16)) = 1.38) – 0.16.38)) = 0.16.39)) = 0.14 x4 = -0. 0.16 . 1.14 x6 = -0.06)) = 1.16 x5 = min (1. max (0. max (0.4 (0) = 1.4 (1. 0.196 x2 = 0.16.4 (1. -0.2)) = 0 x2 = min (1.4 (0.16) = 0. 1. max (0.66.06 x6 = min (1.16) + 0.16.06) = .0) + 0. Fungsi aktivasi menghasilkan : x1 = min (1.38 .6 (0) = 0. 0.16) + 0.6 (1.0) + 0.4 (1.6 (1.06) – 0.2)) = 0 Didapat x = (0 .39 .

4 0.6 t=0 t=1 1.4 t=2 1.14)) = 1.16. max (0.39)) = 0.14 . max (0.6 0. dan 2 dapat dilihat pada gambar 8.39 x7 = min (1.4 .39 .2 0 x1 x2 x3 x4 x5 x6 x7 Gambar 8. 0) Pembaca bisa melanjutkan iterasi berikutnya.16. xi yang teratas merupakan pemenangnya 1. 0. Semakin lama bentuknya semakin meruncing ke atas. Nilai xi pada t = 0.8 0. 0. -0.66 .14 x4 = min (1. 1. 1. 1.66)) = 1. max (0.16.4. max (0.14 x6 = min (1.66 x5 = min (1. 0.2 Nilai xi 1 0. Tampak bahwa pola yang terbentuk seperti sebuah topi. 1.JARINGAN KOMPETISI DENGAN BOBOT TETAP 135 x3 = min (1.196)) = 0 Didapat x = (0 . 1.39 .14)) = 1. 1.16.14 .16.8 1. max (0. 1.

e(j) = (e1(j). e(2). MaxNet y1 y2 b1 w24 w11 w13 b2 w12 w23 w14 w21 w22 1 x1 x2 x3 x4 Gambar 8. dan MaxNet sebagai subnet untuk menentukan unit yang memiliki net masukan yang terbesar.5 adalah arsitektur jaringan Hamming yang vektor masukannya terdiri dari 4 unit. e(m) adalah m buah vektor contoh.. en(j)) . Jaringan akan menentukan mana diantara vektor contoh yang paling mirip dengan vektor masukan yang diberikan. .4 Jaringan Hamming Misalkan kita memiliki n buah vektor contoh.. . jaringan Hamming menggunakan jarak Hamming sebagai ukuran kemiripan antara 2 buah vektor. Jarak Hamming antara x dan y didefinisikan sebagai banyaknya komponen berbeda diantara x dan y. . Jaringan Hamming dipakai untuk menentukan vektor contoh mana yang paling mirip dengan masukan yang diberikan. Vektor contoh akan menentukan bobot jaringan.136 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 8. Gambar 8... Dalam prosesnya. .5 Misalkan : e(1). Misalkan x dan y adalah 2 buah vektor. e2(j). dan memiliki 2 vektor contoh. dengan masing- masing e(j) terdiri dari n komponen.

.. (j = 1. . i = 1. 2. -1). -1. -1. m) 2 1. j = 1.. . Contoh 8. Untuk setiap vektor masukan x. Hitung y_netj = b j  x w i i ji (j = 1. . n . m 2 n Inisialisasi bias b j  . 1. . . 2. lakukan langkah 2 – 4 2. Gunakan jaringan Hamming untuk menentukan vektor contoh yang paling mirip dengan masing-masing dari 4 buah vektor berikut ini : (1.3 Diketahui 2 buah vektor contoh e(1) = (1. -1.. -1. . 1) dan (-1. . . 1. m) 3.JARINGAN KOMPETISI DENGAN BOBOT TETAP 137 n adalah jumlah unit masukan Algoritma pengenalan pola dengan jaringan Hamming adalah sebagai berikut : 0. . (1. m) 4.. Gunakan prosedur MaxNet hingga diperoleh sebuah vetor yang bernilai positip (misal ak). Inisialisasi masukan MaxNet : aj(0) = y_netj (j = 1. -1... . -1. Maka vektor contoh yang paling baik adalah e(k). 1) Penyelesaian Langkah pertama adalah menghitung bobot berdasarkan vektor contoh e(1) dan e(2). -1. 2. 1).. . -1). Inisialisasi bobot berdasarkan vektor contoh : ei ( j ) w ji  . -1. (-1... -1. -1) dan e(2) = (-1. -1.

Iterasinya menghasilkan : a1(1) = f(3 – 0.2 (1)) = f(2. -1.4 a1(2) = f(2.8 .8) = 2. Maka vektor contoh e(1) = (1. -1) dengan e(1) = (1. 1. -1. yaitu komponen ke-1.5) + 1 (-0. a2(2) = f(0.5 0.16) = 0 Satu-satunya aj yang bernilai positi adalah a1.5 0.2 (3)) = f(0.5) = 3 y_net2 = 2 + 1 (-0.2 (0. -1.5 0. 1) adalah 1 karena hanya komponen ke-3 saja yang sama diantara keduanya.5 0. -1. a2(0) = y_net2 = 1. -1.5  w ji  = dan bj = 4/2 = 2 (j = 1.138 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab ei ( j )  0. -1) Perhitungan dengan jaringan MaxNet sebenarnya adalah mencari y_netj yang memiliki nilai terbesar (dalam contoh ini adalah y_net1) Perhatikan bahwa perhitungan langkah (2) sama dengan menghitung jarak Hamming antara vektor masukan dengan vektor contoh. 1. -1) : . 1.5) + 1 (-0. -1.5 0.72 . -1. -1) : y_net1 = 2 + 1 (0. -1.4 – 0.4) = 0.72) = 2. Jarak Hamming vektor masukan x = (1. -1. -1) adalah 3 (kedua vektor sama dalam 3 komponennya.5) – 1 (0.5 0. Vektor x = (1.4))) = f(2.2 a1(0) = y_net1 = 3 . -1. Misalkan diambil  = 0.8)) = f(- 0. -1) merupakan vektor yang paling cocok dengan masukan x = (1. Jarak Hamming vektor masukan dengan e(2) = (-1. 3.5) – 1 (-0.5) – 1 (-0. 2) 2  0. -1.5  Berikutnya setiap vektor masukan dievaluasi kemiripannya dengan vektor pola contoh Vektor x = (1.5) = 1 Berikutnya digunakan jaringan Maxnet untuk menghitung unit yang menjadi pemenang.8 – 0. a2(1) = f(1 – 0. dan 4).2 (2.5) – 1 (-0.

-1. 1) paling cocok dengan vektor contoh e(2) = (-1.5) – 1 (-0.5) – 1 (0.5) = 4 y_net terbesar adalah y_net2.5) = 3 y_net terbesar adalah y_net2. -1. maka vektor x = (-1.1 (-0.5) – 1 (-0.2 dengan parameter R1 = 1 dan R2 = 3. -1. Bagaimana pengaruh penambahan selisih R2 .5) .1 (-0. -1.5) .1 (-0. 1) : y_net1 = 2 . maka vektor x = (-1.5) = 2 y_net terbesar adalah y_net1. Gambarkan grafiknya untuk t = 0.5) + 1 (-0. -1. -1. -1.1 (-0.1 (-0. Gunakan algoritma topi meksiko pada vektor .5) . 1.5) = 2 y_net2 = 2 . 1) SOAL-SOAL LATIHAN 1.R1 terhadap grafik yang terbentuk 2.5) .1 (0.5) + 1 (0. 1.5) + 1 (0. dan t = 2. -1. 1) Vektor x = (-1. Ulangi contoh 8.5) – 1 (-0.5) – 1 (-0. 1) paling cocok dengan vektor contoh e(2) = (-1.5) .5) – 1 (-0.1 (0. -1. -1) Vektor x = (-1. -1.1 (-0. -1.5) + 1 (-0.5) + 1 (-0. -1) paling cocok dengan vektor contoh e(1) = (1.5) = 1 y_net2 = 2 . maka vektor x = (1. -1.5) . -1.JARINGAN KOMPETISI DENGAN BOBOT TETAP 139 y_net1 = 2 + 1 (0. 1) : y_net1 = 2 .1 (-0.5) + 1 (-0.5) = 4 y_net2 = 2 + 1 (-0. -1.1 (-0. t = 1.

3. # . R2 = 3. 2. # . # . # .4 . 1. . Jelaskan algoritma jaringan Hamming jika dipakai sebagai pengenalan pola. 0. # .1 . # # .3 .140 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab X = (1. 1.5.7 . # . # . # # # . # Pola e(1) Pola e(2) Pola e(3) Pola e(4) Gunakan jaringan Hamming untuk menentukan mana diantara vektor contoh tersebut yang paling mirip dengan vektor : a. # . Diketahui 4 buah vektor contoh pola .6) Dengan parameter R1 = 2. c1 = 0. # # # # b.5 3. 2. # . . # # . c2 = -0.2 .1 . # # # .4 . # . . 4. # # # . # # # # . # . 2. .

vektor contoh w menjadi pemenang. Pada iterasi berikutnya. Ukuran yang sering dipakai adalah jarak Euclidean yang paling minimum Bobot vektor-vektor contoh berfungsi sebagai penentu kedekatan vektor contoh tersebut dengan masukan yang diberikan. Bab 9 JARINGAN KOHONEN Jaringan yang ditemukan oleh Kohonen merupakan salah satu jaringan yang banyak dipakai. sedangkan gambar 9. Ada beberapa ukuran kedekatan yang dapat dipakai.2 menunjukkan kasus untuk vektor w berupa vektor 1 dimensi (dengan jarak R = 2). Jaringan Kohonen dipakai untuk membagi pola masukan kedalam beberapa kelompok (cluster) 9. vektor contoh yang pada saat itu paling dekat dengan masukan akan muncul sebagai pemenang. Arsitektur ini mirip dengan model lain. Vektor pemenang (dan vektor-vektor sekitarnya) akan dimodifikasi bobotnya. Gambar 9.1 Arsitektur Jaringan Kohonen Misalkan masukan berupa vektor yang terdiri dari n komponen (tuple) yang akan dikelompokkan dalam maksimum m buah kelompok (disebut vektor contoh).3 (a) dan (b) menunjukkan vektor sekitar w jika . Arsitektur jaringan Kohonen tampak dalam gambar 9. Keluaran jaringan adalah kelompok yang paling dekat/mirip dengan masukan yang diberikan. Selama proses pengaturan. vektor w dan vektor-vektor sekitarnya akan dimodifikasi bobotnya. Misalkan pada suatu iterasi tertentu.1. Hanya saja jaringan Kohonen tidak menggunakan perhitungan net (hasil kali vektor masukan dengan bobot) maupun fungsi aktivasi.

3 9.... hanya ada 6 vektor di sekitar vektor w (gambar 9. Tetapi jika menggunakan bentuk y1 . xn heksagonal.2 Algoritma Jaringan Kohonen * * * * w * * * * vektor sekitar w berjarak 2 Algoritma pengelompokan pola jaringan Kohonen adalah sebagai * * * * * * * * * * * * * * R=2 R =2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * R=1 R =1 w * * * w * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * . ada 8 vektor di sekitar vektor w (gambar 9.3 (a))..2 (a) (b) Gambar 9..142 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab w direpresentasikan dalam 2 dimensi dengan R = 1 dan R = 2. xi .3 (b)). Gambar 9..1 Gambar 9. ym w1 n w1i wj1 wj n wm1 wj i wm n w11 wmi x1 .. yj . Jika menggunakan bentuk bujur sangkar dengan jarak R = 1..

1. 1. 1). Inisialisasi bobot wji (acak). 0. Selama kondisi penghentian bernilai salah.1 Diketahui 4 buah vektor x(1) = (1. . 0) dan x(4) = (0. Contoh 9. 0. x(2) = (0. 0. Tentukan indeks J sedemikian hingga D(J) minimum 5. lakukan langkah 2 – 7 2. Hitung D(j) = w ji xi untuk semua j i 4. 1).JARINGAN KOHONEN 143 berikut : 0. lakukan langkah 3 – 5. 0). Apabila semua wji hanya berubah sedikit saja. Untuk setiap unit j di sekitar J modifikasi bobot : wbaru ji wlama ji xi wlama ji 6. 1. 0. Uji kondisi penghentian Kondisi penghentian iterasi adalah selisih antara wji saat itu dengan wji pada iterasi sebelumnya. Untuk setiap vektor masukan x. x(3) = (1. laju pemahaman awal dan faktor penurunannya bentuk dan jari-jari (=R) topologi sekitarnya. berarti iterasi sudah mencapai konvergensi sehingga dapat dihentikan. Modifikasi laju pemahaman 7. 2 3. 0. 0.

Maka vektor bobot di baris 2 dimodifikasi menurut aturan w2baru i w2lama i 0.76 w23 = 0. Gunakan laju pemahaman awal (0) = 0.2 0.9 Diperoleh vektor bobot baru : w 0.7 + 0.6 0. w22 = 0.7) = 0.6 (1 – 0.6 0.76 0. Jari-jari vektor sekitar yang dimodifikasi = 0 (berarti hanya vektor pemenang yang dimodifikasi bobotnya pada setiap langkah).3 – 0)2 = 0.28 .7 0.98 D(j) minimum untuk j = 2.8) = 0.4 – 1)2 + (0.9 w 0.6.2 – 1)2 + (0.144 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gunakan jaringan Kohonen untuk mengelompokkan 4 buah vektor tersebut ke dalam maksimum 2 kelompok.4 + 0.4 0.12 .7 – 0)2 + (0.3) = 0.5 – 0)2 + (0. 0.5 0.8 0.6 (0 – 0.5 0.28 0.6 xi w2lama i w21 = 0.5 (t ) .8 + 0.92 0.92 .9 – 0)2 = 1.86 D(2) = (0.8 – 1)2 + (0.3 Jari-jari sekitar yang dipakai = 0 dan laju pemahaman awal = 0.6 (1 – 0. 1.6 (0 – 0. Misalkan secara acak didapat bobot awal : 0. 0) : D(1) = (0. Pelatihan dilakukan untuk tiap vektor : Untuk vektor x(1) = (1.2 0. Penyelesaian Inisialisasi bobot : Kolom matriks bobot menyatakan jumlah komponen dalam sebuah vektor (dalam kasus ini = 4) dan baris menyatakan jumlah maksimum kelompok yang akan dibentuk (dalam kasus ini = 2). w24 = 0.6 dan (t 1) 0.3 + 0.6 – 1)2 + (0.12 0.4) = 0.

28 – 0)2 + (0.048 0.28) = 0.08 – 1)2 + (0. 0.7056 D(2) = (0.24 w13 = 0.968 .28 0.112 0.112 .048 – 1)2 = 2. w22 = 0.87 D(2) = (0.048 Untuk vektor x(4) = (0.6 (1 – 0.24 0.08 0.2 .5 + 0.12) = 0.2 0.08 0.6 – 0)2 + (0. 1.76 – 0)2 + (0.24 – 0)2 + (0.12 Untuk vektor x(3) = (1.92 0.76) = 0. Maka vektor bobot di baris 1 dimodifikasi.28 – 0)2 + (0.12 – 0)2 = 0. 1) : D(1) = (0.96 – 0)2 = 1.08 – 0)2 + (0.112 – 1)2 + (0.92 – 0)2 + (0.76 0.2 + 0. 0.2 – 0)2 + (0.2 – 0)2 + (0. 0.28 D(j) minimum untuk j = 1. 0. 0.968 – 0)2 + (0.68 D(j) minimum untuk j = 2. Maka vektor bobot di baris 1 dimodifikasi.92 + 0.5) = 0.92 – 1)2 + (0.96 0.304 w23 = 0.12 + 0.6 (0 – 0.JARINGAN KOHONEN 145 Untuk vektor x(2) = (0.968 0. Diperoleh : w11 = 0. w24 = 0.5 – 0)2 + (0.2 0.24 – 0)2 + (0.2) = 0. Maka vektor bobot di baris 2 dimodifikasi.76 – 0)2 + (0.6 (1 – 0.6 (0 – 0.9 + 0.96 Vektor bobot baru : w 0.304 – 0)2 + (0.6) = 0.6 (0 – 0.6 (0 – 0.12 – 1)2 = 2.96 Vektor bobot baru : w 0. 0) : D(1) = (0.92) = 0. Diperoleh : w21 = 0.24 0.304 0.724 D(j) minimum untuk j = 1.9 – 1)2 = 0.9) = 0.08 .6 (0 – 0.76 + 0.6 + 0. 1) : D(1) = (0. Diperoleh : .2 – 1)2 + (0.66 D(2) = (0.96 – 1)2 = 0.28 + 0. w14 = 0.6 (0 – 0. w12 = 0.

146 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab w11 = 0.032 .68 0.048 0. 17 16 6.02 0.984 0.6) = 0.5 0.68 0.096 w13 = 0.24 + 0.5 (0.112 0.0053 0.984 Vektor bobot baru : w 0.096 0.032 0.7 1 Iterasi – 2 : w 0.304 0.6 (0 – 0.032 0.51 1 Iterasi – 100 : w 16 16 1 0.968 0.6 0. terlebih dahulu dilakukan modifikasi laju pemahaman baru = 0.086 dan seterusnya .3 0. Diperoleh hasil iterasi : 0.08) = 0.968 0.24) = 0.9 Bobot awal : w 0.2 + 0.96 + 0. w14 = 0.99 0.17 0. Baris vektor bobot diubah berdasarkan vektor yang saat itu digunakan. w12 = 0.6 (1 – 0.08 + 0.68 .6 (0 – 0.8 0..5 1 w 1 0.984 Iterasi – 1 : w 0.304 0.2 0.6 (1 – 0.49 2.4 0.3 0.3 e 1e Tampak bahwa iterasi tersebut akan konvergen ke vektor bobot 0 0 0.7 e 2e 0.5 0 0 .3 Iterasi kedua dilakukan secara analog dengan iterasi pertama.96) = 0.7 0.048 Sebelum melakukan iterasi kedua dalam mengubah bobot...2) = 0.096 0.112 0.

JARINGAN KOHONEN 147 Pengelompokan vektor dilakukan dengan menghitung jarak vektor dengan bobot optimal. jari-jari sekitar suatu titik. 0.25 dan D(2) = 3. 0. 1.0)2 + (0 . 0. serta laju pemahaman (dan koefisien penurunannya). D(1) = 0. J dak K dalam 3 font berbeda seperti yang tampak pada gambar 9. Masukan berupa pola. untuk x(2) = (0. Buatlah rancangan jaringan .25 D(2) = (1 .0)2 + (1 .3 Pengenalan Pola Jaringan Kohonen dapat juga dipakai untuk mengelompokkan pola menjadi beberapa kelompok.1)2 + (0 .1)2 + (0. 0.25 sehingga x(2) masuk dalam kelompok ke-2 Untuk x(4) = (0.5 .2 Diketahui pola huruf A.2 berikut ini : Contoh 9. C.25 Berarti x(1) masuk dalam kelompok ke-2 Secara analog. Untuk lebih jelasnya perhatikan contoh 9. D(1) = 2.25 sehingga x(2) masuk dalam kelompok ke-1 9. 1.1)2 + (0 . D.25 dan D(2) = 0. 0). E. Vektor x(1) = (1. B. 0) memiliki D(1) = (0 .0)2 = 3.1)2 + (0. jumlah kelompok maksimum. dimana semua pola yang berada dalam satu kelompok merupakan pola yang mirip satu dengan lainnya. 1). 0.5 . 1).25 dan D(2) = 2.4.0)2 = 0.25 sehingga x(2) masuk dalam kelompok ke-1 Untuk x(3) = (1. 0. D(1) = 0.

. . . . . . . # . # . . . . . . # . # . # . . . . . . # # . # . . . # . # . . . . . . # # # # # # . # . . # # . # # # # # # # . # # # # # # # # # . . . . # . . # . # . . . # . . . # # . # . # . # . . # . . . . . . . # # . # . . # # # . . . . . . . # . . . # # . . # . . . . . . . . . . . # . . . . # . # . . # . . . # # . . # . # . # . . . . # . . . . . . . . . . . . . . # . # . . . # . . # . . . # . # . .) dan xi = 1 jika elemen yang direpresentasikan berupa #. . . . . . . . . . . . . . . . # . . . # . . . . . . . # # . . . # # . # . . . # . # # # # # # . # . . . # # # # # . # . . . # # # # # # # # . # . . . # . .148 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Kohonen untuk mengelompokkan 21 pola masukan tersebut ke dalam maksimum 25 kelompok. . . . . . # . . . # . # # # # . . . . . # . . . . . . # . . . . # . # . . . Karena sebuah pola terdiri dari 63 komponen dan maksimum kelompok yang akan dibentuk adalah 25. . . . . . . . . . . # . # . . . # . . . . # # # . # # . . # . . # . . . . . # # # # # # # . . # # . . . . # . # . # # . . . . . # . . # . # . # . . # . . . . . . . . . . . . . maka vektor bobot yang digunakan merupa matriks ukuran 25 (baris) x 63 (kolom). # . . . . . . . . . . . . # # # # # . # . # . . . . . . # . . . # . . # . . . . # . # . . . . # . . # . . # . # . . # # . . # . # # # # # # . . # . . . # . . # . . # . # . . # # . # . . # . . . . . . . . . . . . # . # . . # . . # . # . # # . . # # . . . . . . . . . . # # . . # # # . # . . # . # . . . . . . # . . . . # . . . . . # # # . # # . . . . . # . # . . # . # . . . . . . . # . . . # . # . . . . . . . # . # # . . . . . # .. . . . . . . . . . . # # # # # # . . . # . . . # . # . # # # . # # # # # . . # . . .. . . # # # # # . . # . . . . xi = 0 jika elemen yang direpresentasikan berupa suatu titik (. # . . # . . # # # . # . . . # . . . . # # # . # # . . # . . # . # . Langkah 2 algoritma Kohonen dilakukan untuk setiap pola (jadi dilakukan sebanyak 21 kali). . . . # # . # # # # # # . . . # . . . . . # . . # . . # # . # . # . # . . # # # # # # # . . . . . . . . . . . . . . . . . . . . . . . . . . . # . . . # . # . . . # # . . # # . . # . . . . . # . . . # . . Bobot kelompok yang . . . . . . # # # # # # . # # # . . . . . # # # # # # # . . . # . . # # # . # . # .1. . # . . . . # # # # # # # # # # . . . . . # . # . # . . . . . . . . . # # # . . . . . # . . . # . . . . . . # . . # . . . # . . . . . Untuk suatu pola. # . . . . . . # . . . . . . . # # # # # # . . . # . # . . . . # . # . # . . . # . # . . . . # . # # A3 B3 C3 D3 E3 J3 K3 Gambar 9. . . . . # . . . # . . . dihitung jarak vektor pola tersebut dengan bobot tiap kelompok. # . # . . . . . . . . . # # . . . . # . . # # # # # # # . # . . . . . . # . . . # . # . # . . # . # . # # # . . . . # . . . . # . . # # . . . . . # . A2 B2 C2 D2 E2 J2 K2 . . # . # . # . . . . . . . . . . # . . . . # . . # . . . . . # . . . # # # # . . . # . . . # . . . . . . . # # . # # # # # . yang setiap vektornya terdiri dari 9*7 = 63 komponen (x1. # # # # # . . . . . . . # . . . # . . . . # . # . . . . . # . . . . . # . .4 Penyelesaian Pola yang akan dikelompokkan dijadikan bentuk vektor biner. # . . # . # . # . # # # # # . . # . . # # # # # # # . # . . . # . . # . . . . . # . . . . # # # # # # # . . . # . . . . # . # . # # # # # . . . . . # . . . # # # # # . . x63). . # . . # . . . . # . Iterasi yang dilakukan tidak jauh berbeda dengan contoh 9. . . # . . . . # # # # # # . . # . . . . . . . . . . . # # A1 B1 C1 D1 E1 J1 K1 . . . # # . . . . . . . # . . . # . . . . . . . . . . . # . # . . . . . .

6 . dan pada suatu iterasi tertentu pemenangnya adalah yi (baris ke. Diketahui jaringan Kohonen dengan 2 vektor yang masing-masing terdiri dari 5 unit masukan. 0. Meskipun disediakan 25 kelompok.4 dan (t+1) = 0. tapi hanya paling banyak 10 kelompok yang dihasilkan.4 . Ulangi iterasi contoh 9. tetapi pada tiap iterasi.5 (t) 2. 0. 2 dimensi bujur sangkar atau heksagonal). 0. 1. bobot yang dimodifikasi juga neuron di sekitar neuron pemenang (selain neuron pemenang seperti contoh 9.8 .4 . modifikasi bobot dilakukan dengan memperhatikan representasi pola (apakah 1 dimensi. 0.8 . 0. 0.3) SOAL-SOAL LATIHAN 1.0) . radius R bisa dipilih sembarang.6 . 0.2) W2 = (0. dan semua elemen bobot pada baris tersebut dimodifikasi. Akan tetapi jika direpresentasikan sebagai matriks. Dalam iterasinya.JARINGAN KOHONEN 149 menghasilkan jarak minimum dipilih sebagai pemenang. Fausett (1994) mencatat bahwa representasi pola vektor yang berbeda akan menghasilkan pengelompokan yang berbeda. Tapi jika R > 0.1) dengan laju pemahaman awal (0) = 0.1.0 . Bobot vektor adalah : W1 = (1. Maka sekitar titik yi adalah titik yi-1 dan yi+1.i dalam vektor bobot).2 . maka ada 8 titik di sekitar titik yi (berarti ada 8 baris dalam matriks bobot) yang dimodifikasi (lihat gambar 9. Misalkan R = 1 dengan representasi pola linier 1 dimensi.

0. 0.150 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tentukan vektor pemenang jika diberikan pola masukan x = (0. 1.5 .0) Gunakan laju pemahaman = 0.2 dan hanya bobot neuron pemenang saja yang dimodifikasi .5 .0 . 0.0 .

Fungsi- fungsi dalam toolbox Matlab dibuat untuk memudahkan perhitungan tersebut. model dan parameter yang diinginkan (laju pemahaman. program linier dengan simpleks. Bab 10 PENGENALAN MATLAB 10. Matlab menyediakan fungsi-fungsi khusus untuk menyelesaikan model jaringan syaraf tiruan. Banyak model jaringan syaraf tiruan menggunakan manipulasi matriks/vektor dalam iterasinya. Bab 10-12 membahas tentang dasar-dasar penggunaan Matlab. Sebagai contoh. target. dll). Bagi pembaca yang sudah terbiasa menggunakan Matlab dapat langsung membaca bab 13. Pembaca yang ingin mendalami lebih lanjut dapat mencari fungsi-fungsi Matlab yang lain dalam jendela help. pengolahan citra. Pemakai tinggal memasukkan vektor masukan.5) untuk membantu menyelesaikan model jaringan syaraf tiruan. Dalam buku ini dibahas mengenai pemakaian Matlab versi 6.1 (atau 6. threshold. Maka Matlab merupakan perangkat lunak yang cocok dipakai. hingga sistem yang kompleks seperti peramalan runtun waktu (time series). Dalam bab tersebut diperkenalkan dasar-dasar manipulasi matriks dan vektor. bias. matlab dapat dengan mudah dipakai untuk menyelesaikan permasalahan sistem persamaan linier. . dll.1 Matlab Sebagai Alat Komputasi Matriks Matlab merupakan perangkat lunak yang cocok dipakai sebagai alat komputasi yang melibatkan penggunaan matriks dan vektor.

1 Secara keseluruhan Matlab memiliki 6 buah jendela : a. biasanya jendela perintah akan terasa sangat panjang. . Sintaks perintah dalam Matlab akan dijelaskan dengan rinci pada bab-bab selanjutnya. anda dapat memilih Clear command window dari menu edit. Jendela perintah merupakan tempat untuk memasukkan perintah-perintah yang kita inginkan.2 Memulai Matlab Ketika pertama kali membuka Matlab. Baik perintah maupun keluaran Matlab muncul dalam jendela perintah. akan muncul beberapa form seperti pada gambar 10. Untuk menghapus semua teks dalam jendela perintah. Jendela perintah (command window) seperti yang tampak di sebelah kanan gambar 10.1 Gambar 10.152 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 10. Apabila terlalu lama dipakai.1.

dan memilih subfolder demo. drag perintah tersebut dari jendela daftar perintah ke jendela perintah c.1. jika anda mengetikkan help ones (ones adalah perintah untuk membuat matriks yang semua elemennya adalah 1). anda bisa menggunakan help dengan 2 cara a. Sebagai contoh. Jendela Help yang dipakai jika kita mengalami kesulitan sewaktu memilih perintah atau formatnya e. Jendela ini memuat daftar perintah yang pernah kita ketikkan dalam jendela perintah.1. Program dalam Matlab mirip dengan bahasa C++. Jendela launch pad seperti yang tampak di bagian kiri atas gambar 10.PENGENALAN MATLAB 153 Semua perintah dan keluaran yang terdapat di jendela perintah dapat kita copy (setelah diblok terlebih dahulu) dan paste ke perangkat lunak lain (misal word). b. Jendela direktori f. Sebagai contoh. anda bisa memilih folder Neural Network Toolbox. Untuk mengeksekusi kembali perintah yang pernah dipakai. maka akan muncul teks : >> help ones . Caranya adalah dengan membuka m-file dari menu File – New – M- file. d. Mengetikkan help (topik) dalam jendela perintah. Jendela daftar perintah (command history) seperti yang tampak di kiri bawah gambar 10. atau dengan menekan Alt-N Untuk membantu melihat format perintah. Jendela ini berisi fasilitas yang disediakan Matlab untuk menjalankan paket perangkat lunak (toolbox) untuk menyelesaikan masalah tertentu. Matlab juga menyediakan fasilitas editor program. Jendela workspace Selain jendela-jendela tersebut. untuk melihat demo program jaringan syaraf tiruan.

) or ONES([M N P . Gambar 10..2 Untuk mencari sintaks perintah tertentu. ketikkanlah perintah yang anda inginkan (sebagai contoh adalah ones). See also ZEROS. pilihlah function name.154 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab ONES Ones array. uraian dan contoh pemakaiannya. Membuka jendela help dari menu view. ONES(N) is an N-by-N matrix of ones. ONES(M.N) or ONES([M.N]) is an M-by-N matrix of ones. Berikutnya.P. array of ones. ONES(SIZE(A)) is the same size as A and all ones.2). pilihlah folder search di bagian kiri (lihat gambar 10. Pada combo box search type. ONES(M...]) is an M-by-N-by- P-by-. .N.. lalu klik button go.. Matlab akan menampilkan referensi fungsi ones. b...

4 2 -1 2 . ). Bab 11 MATRIKS DAN MANIPULASINYA 11. Sebagai pembatas elemen-elemen matriks dalam satu baris digunakan spasi. 1 3 2 4 Matriks A = 4 2 1 2 dituliskan dalam jendela perintah 3 2 1 4 sebagai : >> A = [1 -3 2 4 . 4 2 -1 2 . Baris matriks yang berbeda dapat dituliskan dalam satu baris ataupun dalam baris yang berbeda.1 Matriks Matriks adalah elemen dasar dalam Matlab. -3 -2 1 -4 ] atau >> A = [1 -3 2 4 . -3 -2 1 -4 ] . Ada 2 macam matriks yang dapat dipakai yaitu matriks yang dimasukkan oleh pemakai dan matriks khusus yang disediakan oleh Matlab 11. dan pembatas baris matriks digunakan semicolon ( . pemakai memasukkan elemen-elemen matriks diantara 2 kurung siku.1 Matriks Umum Dalam matriks umum.1.

Matlab akan menampilkan matriks yang baru saja dimasukkan A = 1 -3 2 4 4 2 -1 2 -3 -2 1 -4 Apabila kita tidak ingin menampilkannya. Dalam Matlab. .156 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Sebagai respon setelah penekanan enter. 3 2 a] ??? Undefined function or variable 'a'. matriks maupun string) tanpa menuliskan nama variabelnya. ketikkan semicolon ( . Matlab akan menampilkan isi variabel X (baik berupa numerik. 3 2] ??? Error using ==> vertcat All rows in the bracketed expression must have the same number of columns. ) pada akhir perintah. Apabila terjadi kesalahan pemasukan elemen matriks (misal jumlah elemen dalam sebuah baris tidak sama. digunakan perintah disp (X). dibedakan nama variabel yang berupa huruf besar dengan huruf kecil. >> A = [2 3 1 . Untuk menampilkan isi suatu variabel X. tanda kurung tidak seimbang atau elemennya berupa non numerik) Matlab akan memunculkan pesan kesalahan. >> A = [2 3 1 . vektor.

Matriks diagonal adalah matriks bujur sangkar yang semua elemen diluar diagonal utamanya = 0.2 Matriks khusus Matlab menyediakan fasilitas bagi pemakai untuk membuat matriks khusus secara cepat. Untuk membentuk matriks diagonal A diatas.1. Beberapa matriks khusus dan perintahnya antara lain : a. jika n = 3 : >> eye (3) ans = 1 0 0 0 1 0 0 0 1 . matriks 2 0 0 diagonal A = 0 1 0 memiliki elemen diagonal berupa 0 0 3 vektor V = [ 2 -1 3 ] Dalam Matlab.MATRIKS DAN MANIPULASINYA 157 11. Sebagai contoh. Perintah yang dipakai untuk membentuk matriks identitas ordo nxn adalah eye (n). perintah Diag (V) dipakai untuk membentuk matriks diagonal yang elemen diagonalnya adalah vektor V. Matriks Diagonal. dipakai perintah : >> V = [2 -1 3] >> A = diag (V) b. Matriks Identitas Matriks identitas adalah matriks diagonal yang semua elemen diagonalnya = 1. Sebagai contoh. Elemen-elemen matriks diagonal dapat dipandang sebagai vektor.

9169 0. Untuk membentuk matriks yang elemennya ~ N (0. 1]. 1)). 1]) atau normal standar (~ N (0. n) digunakan untuk membentuk matriks ordo mxn yang elemennya bilangan acak ~ U [0. gunakan perintah rand (atau randn) Untuk membuat matriks A berordo 3x4 yang elemennya acak berdistribusi seragam.0579 0. >> B = round (100 * rand (3. maka kalikan bilangan bilangan acak dengan 100 kemudian dibulatkan. kadangkala diinginkan suatu matriks yang elemennya diambil secara acak.4)) B = 20 27 75 47 20 20 45 42 60 2 93 85 . Perintah rand (m. Untuk membentuk sebuah bilangan acak. perintah Matlab adalah sebagai berikut : >> A = rand (3.4) A = 0. Matriks random Untuk beberapa keperluan.4057 0.0099 0.8936 0.7382 0.8132 0.1389 Fungsi round bisa dipakai untuk membentuk matriks yang elemennya berupa bilangan acak bulat.9355 0. Misal elemen matriks bulat 0-100. Dalam Matlab.158 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab c. digunakan perintah randn (m. bilangan acak yang digunakan berdistribusi seragam (~ U [0.1763 0.3529 0. 1). n).4103 0.

n) menghasilkan matriks berordo mxn yang semua elemennya = 0.n) . Untuk membentuk matriks bujur sangkar nxn yang semua elemennya = 0.MATRIKS DAN MANIPULASINYA 159 d. gunakan perintah ones (n) >> ones (3) ans = 1 1 1 1 1 1 1 1 1 f. Matriks Nol Matriks nol adalah matriks yang semua elemennya = 0 Perintah zeros (m.5) A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e. Matriks pascal Matriks segitiga pascal adalah matriks yang berisi koefisien segitiga pascal. gunakan perintah zeros (n) >> A = zeros (3. Perintah yang dipakai adalah ones (m. Jika matriksnya bujur sangkar ordo nxn. Matriks satuan Matriks satuan mirip dengan matriks nol. tapi dengan semua elemen = 1. .

j ai .1) sedangkan randn ~ N (0. j 1 jika i 1 dan j 1 Elemen-elemen dalam diagonal sekunder (dari kiri bawah ke kanan atas) merupakan koefisien ekspansi (x + y)k >> A = pascal (5) A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 70 Tabel 11.1 Matriks Perintah Keterangan Diagonal diag (v) v = vektor yang elemennya merupakan elemen matriks diagonal Identitas eye (n) n = ordo matriks bujur sangkar Random rand (m. masih banyak lagi matriks khusus yang dapat dibuat dengan mudah menggunakan Matlab.1 merupakan ringkasan perintah untuk membuat matriks khusus.n) ordo matriks = mxn randn (m. Pembaca dapat melihatnya dari help Tabel 11.n) ordo matriks = mxn .1) Nol zeros (m. Selain perintah yang tercantum dalam tabel 11.n) rand menghasilkan elemen ~ U (0.1.160 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 jika i=1 atau j=1 aij ai 1.

untuk membuat vektor x = 2 3 1 dan y = 2 3 .MATRIKS DAN MANIPULASINYA 161 Satuan ones (m. elemen vektor dipisahkan dengan semicolon ( . ).2 Vektor Vektor merupakan kasus khusus matriks yaitu hanya terdiri dari sebuah baris (disebut vektor baris) atau sebuah kolom (disebut vektor kolom). -1] y = 2 3 .n) ordo matriks = mxn Pascal Pascal (n) 11. Pembuatan vektor baris dilakukan dengan menuliskan elemen-elemen vektor (dipisahkan dengan spasi) diantara 2 buah kurung siku. gunakan perintah : 1 >> x = [2 3 -1] x = 2 3 -1 >> y = [2 . 3 . Sebaliknya untuk membuat vektor kolom. Sebagai contoh.

floor (y) = -4 . b = 2. Operasi-operasi pada skalar tampak pada tabel 11. a – b = 3 .3 Operasi Skalar Beberapa skalar dapat dioperasikan untuk menghasilkan skalar yang baru.2 Tabel 11.162 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab -1 11. a * b = 10 . a/b = 2. jika a = 5. maka a + b = 7 .2 Operator Keterangan + Penjumlahan 2 skalar . mod (a. y = -3. a^b = 25 . Pengurangan 2 kalar * Perkalian 2 skalar / Pembagian 2 skalar ^ Perpangkatan mod (m.5 . fix (y) = -3 floor (x) = 4 . x = 4.2.6. b) = 1 fix (x) = 4 .n) Sisa hasil bagi m dengan n fix (n) Pembulatan terdekat n ke arah 0 floor (n) Pembulatan terdekat n ke arah - ceil (n) Pembulatan terdekat n ke arah + round (n) Pembulatan n ke bilangan bulat terdekat sebagai contoh.

Pada fungsi mod. fix. floor. operasi dilakukan pada elemen-elemen matriks yang sesuai.MATRIKS DAN MANIPULASINYA 163 ceil (x) = 5 . Elemen matriks dianggap sebagai sebuah skalar 3 1 4 2 1 3 Misalkan A = dan B = . Hasil operasi 2 1 5 1 1 3 kedua matriks adalah sebagai berikut : >> A = [3 1 -4 . 1 1 -3] B = 2 -1 3 1 1 -3 >> A+B ans = 5 0 -1 3 2 2 . Operasi perpangkatan bisa dilakukan jika matriksnya bujur sangkar (ingat bahwa perpangkatan sama dengan perkalian 2 matriks). ceil (y) = -3 round (x) = 5 . round (y) = -3 Operator-operator aritmatika yang ada pada tabel 11. 2 1 5] A = 3 1 -4 2 1 5 >> B = [2 -1 3 . ceil. round.2 juga dapat digunakan pada matriks (kecuali pembagian 2 matriks yang tidak didefinisikan).

6700 >> fix (X) ans = .7600 -8.98 Misalkan X = 6.98 .67 2. Hasil operasi fungsi fix.5100 -3. 8.76 .6700 2.23 2. round pada matriks X adalah sebagai berikut : >> X = [-1. floor.76 .164 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> A-B ans = 1 2 -7 1 0 8 >> A*B ??? Error using ==> * Inner matrix dimensions must agree. 6. -8.51 -3.23 2.2300 2.B) ans = 1 0 2 0 0 -1 1. >> mod (A.67 ceil.51 3.67 2.67] X = -1.9800 6.

Matlab juga menyediakan fasilitas operasi vektor inner product (dot product) melalui perintah dot (x.y).MATRIKS DAN MANIPULASINYA 165 -1 2 6 2 -8 -3 >> floor (X) ans = -2 2 6 2 -9 -4 >> ceil (X) ans = -1 3 7 3 -8 -3 >> round (X) ans = -2 3 6 3 -9 -4 Selain operasi aritmatika diatas. x.y = xi y i i .

Hasil berupa skalar sama dengan hasil operasi dot. 3] v = 4 -2 3 >> dot (u. Hasil perkalian kedua 3 vektor adalah sebagai berikut : >> u = [-1 3 4] u = -1 3 4 >> v = [4 .v) ans = 2 >> u*v ans = 2 >> v*u . maka ada 2 kemungkinan hasil yaitu berupa matriks (vektor kolom * vektor baris) atau berupa skalar (vektor baris * vektor kolom). 4 Misalkan u = 1 3 4 dan v = 2 . -2 .166 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Jika vektor baris dan vektor kolom dioperasikan dengan operator perkalian.

maka keluaran Matlab terhadap perintah 2 1 5 A’ adalah sebagai berikut : >> A' ans = 3 2 1 1 -4 5 b.4 Manipulasi Matriks Matlab menyediakan fungsi-fungsi untuk memanipulasi matriks. dll).MATRIKS DAN MANIPULASINYA 167 ans = -4 12 16 2 -6 -8 -3 9 12 11. Dalam Matlab perintah transpose dilakukan dengan ‘. misal menyelesaikan sistem persamaan linier. Selain fungsi-fungsi tersebut. Beberapa fungsi untuk memanipulasi matriks dijabarkan berikut ini. metode simpleks. Transpose matriks Transpose matriks A didapat dengan menukarkan baris dan kolom A. A’ = transpose (A) 3 1 4 Jika A = . masih banyak fungsi manipulasi matriks yang lain (umumnya berhubungan dengan bidang tertentu. a. Ordo matriks .

Misalkan A = 3 2 1 2 5 1 >> A = [2 -1 -1 . 2 5 1] A = .n] = size (A) m = 2 n = 3 c.168 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Perintah size (A) akan menghasilkan ordo matriks A. 2 1 5 >> A = [3 1 -4 . 2 1 5] A = 3 1 -4 2 1 5 >> [m. Invers A (simbol A-1) adalah suatu matriks sedemikian hingga A. Jika A berupa suatu vektor. Statemen [m. maka hasilnya berupa jumlah elemen dalam vektor tersebut.A = I Dalam Matlab digunakan perintah Inv untuk mencari invers 2 1 1 suatu matriks. A-1 = A-1. -3 2 1 . n] = size (A) akan menyebabkan variabel m dan n berisi ordo matriks A 3 1 4 Misalkan sudah dimasukkan matriks A = . Invers matriks Misalkan A adalah matriks bujur sangkar.

maka trace (B) = 4+1+2 = 7 9 3 2 >> B = [4 2 -1 .5000 0.1250 0.1250 >> A*B ans = 1. 9 3 2] B = . Penjumlahan elemen diagonal ini sering digunakan untuk mencari nilai eigen suatu matriks secara iteratif 4 2 1 Sebagai contoh.5000 0. jika B = 3 1 8 .3750 -1.0000 0.0000 0 1.1250 -2.MATRIKS DAN MANIPULASINYA 169 2 -1 -1 -3 2 1 2 5 1 >> B = inv (A) B = -0.0000 0 0 1. 3 1 8 .0000 d. digunakan perintah trace.0000 0 -0.5000 0. Menjumlahkan elemen diagonal Untuk menjumlahkan semua elemen yang berada di diagonal utama.3750 -0.6250 0.

Jika diinginkan penjumlahan dilakukan per baris. 2 5 1] A = 2 -1 -1 -3 2 1 2 5 1 >> sum (A) ans = 1 6 1 >> sum (A.2). maka gunakan perintah sum (A.1) akan menjumlahkan semua elemen dalam satu kolom. Perintah sum (A) atau sum (A. Hasilnya berupa suatu vektor baris 1xn.170 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 4 2 -1 3 1 8 9 3 2 >> k = trace (B) k = 7 e. -3 2 1 . Menjumlahkan elemen-elemen matriks Misalkan A adalah suatu matriks berorodo mxn. maka sum (A) akan menghasilkan suatu skalar berupa jumlah semua elemen dalam A >> A = [2 -1 -1 .2) ans = . Akan tetapi bila A berupa suatu vektor (baik vektor baris maupun vektor kolom).

perintah sort (A) atau sort (A.1) . 3] >> sum (v) ans = 5 >> u = [-1 3 4] >> sum (u) ans = 6 f.MATRIKS DAN MANIPULASINYA 171 0 0 8 >> v = [4 . -3 2 4 . >> A = [1 3 1 .2).1) akan mengurutkan elemen dalam satu kolom dari kecil ke besar. Mengurutkan elemen matriks Jika A adalah suatu matriks. 2 -5 2] A = 1 3 1 -3 2 4 2 -5 2 >> sort (A. Jika diinginkan pengurutan dilakukan per baris. -2 . gunakan perintah sort (A. Format perintah ini mirip dengan perintah sum.

2) ans = 1 1 3 -3 2 4 -5 2 2 g. -3 2 4 . gunakan perintah isequal (A. Jika A = B maka keluaran = 1. -3 2 4 . Menguji kesamaan 2 matiks Untuk menguji apakah 2 buah matriks yang sudah dimasukkan (misal A dan B) sama. Sebaliknya.B). maka keluaran = 0 >> A = [1 3 1 . 2 -5 2] B = 2 3 1 -3 2 4 2 -5 2 . 2 -5 2] A = 1 3 1 -3 2 4 2 -5 2 >> B = [2 3 1 .172 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab ans = -3 -5 1 1 2 2 2 3 4 >> sort (A. Keluaran perintah ini berupa bilangan biner. jika A B (berarti minimal ada satu elemen seletak yang tidak sama).

maka x p sama dengan penjumlahan harga mutlak elemen-elemen vektor. xn adalah suatu vektor. Jika p = 2. jika p = 1.MATRIKS DAN MANIPULASINYA 173 >> isequal (A..3852 . Norma Vektor Norma vektor adalah suatu ukuran untuk mengkuantifikasi vektor.. x p menyatakan panjang vektor x Perintah norm (x. cukup dituliskan norm (x) saja. Untuk p = 2.B) ans = 0 h. xn j 1 Secara khusus. Misalkan x = x1 x2 . >> x = [4 -2 3] x = 4 -2 3 >> norm (x) ans = 5.. Norma vektor didefinisikan sebagai berikut : 1 n p p p p p p x p xj x1 x2 ..p) dalam Matlab (x berupa vektor baris ataupun kolom) menghasilkan keluaran norma vektor x = x p .

2) A = 16 2 3 13 . jika A adalah matriks ajaib yang diperoleh dengan perintah magic. Sebagai contoh. Perhatikan perbedaan penggunaan kurung biasa ( ‘( )’ ) dengan kurung siku ( ‘[ ]’ ). maka proses perhitungan yang melibatkan seluruh elemen dalam satu baris/kolom dapat diproses dengan cepat. Kurung siku dipakai untuk membentuk matriks. matlab menyediakan fasilitas untuk menghapus/menambah baris/kolom. Kurung biasa dipakai untuk mengakses elemen matriks (atau juga sebagai parameter fungsi). Mengakses sebuah elemen matriks Untuk mengakses sebuah elemen dalam matriks.6261 11. maka untuk mengakses elemen baris ke-4 kolom-2 dilakukan dengan statemen A(4. serta penggabungan 2 buah matriks. Selain itu.5 Mengakses Elemen Matriks Elemen matriks bisa kita akses satu persatu maupun per baris/kolom. Dengan cara tersebut. Cara pemrosesannya adalah sebagai berikut : a. cukup dilakukan dengan menuliskan nama matriks diikuti indeksnya diantara 2 buah kurung.174 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> norm (x.3) ans = 4.1) ans = 9 >> norm (x.

2) ans = 14 b. perintah A(:.MATRIKS DAN MANIPULASINYA 175 5 11 10 8 9 7 6 12 4 14 15 1 >> A(4. Sebagai contoh. :)) >> A = magic (4) A = 16 2 3 13 5 11 10 8 9 7 6 12 . Perintah A(1:m. untuk menghitung jumlah elemen baris 3. mulai dari baris-1 hingga baris-n.:) menghasilkan suatu vektor yang isinya adalah seluruh elemen baris ke-4 matriks A. n) menghasilkan vektor yang isinya elemen matriks pada kolom-n. cukup gunakan perintah sum (A(3.4) menghasilkan suatu vektor yang isinya adalah seluruh elemen kolom ke-4. digunakan indeks titik dua (:). Cara pengaksesan seperti ini akan memudahkan kita untuk memanipulasi elemen-elemen matriks yang terletak dalam satu baris/kolom. Jadi perintah A(4. Mengakses seluruh elemen dalam satu baris/kolom Untuk mengakses seluruh elemen dalam satu baris/kolom. Sebaliknya.

maka statemen A(4. Akan tetapi jika kita menyimpan nilai pada elemen matriks yang .4) ans = 8 12 >> sum (A(3. Menambah baris/kolom matriks Jika A berordo 4x4.5) akan menyebabkan error karena indeks kolom yang diminta melebihi ordo matriks.4) ans = 13 8 12 1 >> A(2:3.176 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 4 14 15 1 >> A(4.:)) ans = 34 c.:) ans = 4 14 15 1 >> A(:.

5) = 7 >> A = ones (4) A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> A(4.4). maka matlab akan secara otomatis menambah baris/kolom matriks A. 5:6) = 12 akan menambahkan semua elemen pada baris-2 hingga 4.5) = 7 akan menyebabkan matriks A berordo 4x5. Statemen A(4. perintah A(2:4. Misal A = ones (4. Semua elemen pada kolom ke-5 = 0.5) = 7 A = 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 7 Penambahan elemen dapat dilakukan pada beberapa baris/kolom sekaligus. kolom 5 hingga 6 (jadi ditambahkan 2 kolom baru) dengan bilangan 12 >> A = ones (4) A = 1 1 1 1 1 1 1 1 . keculai A(4.MATRIKS DAN MANIPULASINYA 177 melebihi ordonya. Sebagai contoh.

5:6) = 12 A = 1 1 1 1 0 0 1 1 1 1 12 12 1 1 1 1 12 12 1 1 1 1 12 12 Apabila indeks matriks berada dalam range matriks mula-mula.178 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 1 1 1 1 1 1 1 >> A(2:4. 1:2) = 12 A = 1 1 1 1 12 12 1 1 12 12 1 1 12 12 1 1 . maka efeknya adalah mengganti (bukan menambah) elemen semula. >> A = ones (4) A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> A(2:4.

3) = [] akan menghapus kolom ketiga matriks A. A(2.:) = [] menghapus baris kedua dari matriks A. >> A = magic (4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> A(:.MATRIKS DAN MANIPULASINYA 179 d. di sisi kanan assignment adalah sepasang kurung siku kosong. Jika A = magic (4). Akan tetapi statemen A(2. maka hasilnya bukan lagi suatu matriks.3) = [] akan menghasilkan kesalahan karena jika elemen A(2. maka perintah A(:. Menghapus baris/kolom matriks Cara menghapus baris/kolom matriks dilakukan dengan cara yang mirip dengan penambahan baris/kolom.3) dihapus.3) = [] A = 16 2 13 5 11 8 9 7 12 4 14 1 >> A(2. Bedanya.:)=[] A = 16 2 13 .

Perintah [A magic(4)] akan menyebabkan penambahan matriks magic (4) di sebelah kanan matriks A sehingga A berordo 4x8. Menggabungkan beberapa matriks Penggabungan matriks dilakukan dengan menempatkan matriks kedua di sebelah matriks pertama. Misalkan A = ones (4) yang berordo 4x4. >> A = ones (4) A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> [A magic(4)] ans = 1 1 1 1 16 2 3 13 1 1 1 1 5 11 10 8 1 1 1 1 9 7 6 12 1 1 1 1 4 14 15 1 .180 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 9 7 12 4 14 1 e.

>> A = ones (4) A = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> [A . magic(4)] akan menyebabkan kesalahan karena elemen A(5.8) tidak ada. . magic(4)] ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 Penambahan matriks dalam kolom dan baris sekaligus harus menghasilkan matriks yang ordonya benar. Jadi perintah [A magic(4) . magic(4)].MATRIKS DAN MANIPULASINYA 181 Untuk menambahkan magic (4) di bawah matriks A. gunakan perintah [A .5) hingga A(8.

B= 1 2 .3) dan eye (3. Inv 3. Diketahui matriks A. C = 2 2 1 4 1 4 1 0 Hitunglah menggunakan Matlab dan telitilah hasilnya. Apakah AB = BA ? c. a.182 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab SOAL-SOAL LATIHAN 1.4). A-1 A 2. Apakah hasilnya berupa matriks identitas ? 5. dan C sebagai berikut : 2 1 2 3 1 4 0 1 A= 0 1 1 . AC’ b. Apakah (AB) C = A (BC) ? d. Apakah arti operasi ^ pada matriks ? pada vektor ? 4. Trace b. Telitilah bagaimana efek perintah berikut ini pada A dan B yang bukan matriks bujur sangkar : a. Buatlah matriks ukuran 3x3 yang semua elemennya = 5 . Cobalah untuk eye (4.n) dengan m n. 6. Buatlah matriks A berordo 3x4 dan B berordo 4x2. Apakah arti perintah eye (m. Buatlah matriks seperti soal #5 beberapa kali untuk melihat apakah A-1 A selalu sama dengan I 7. Buatlah matriks A berordo 3x3 dengan elemen acak bulat berdistribusi seragam antara [10. 50]. B.

Bagaimana cara menguji (dengan Matlab) apakah sebuah matriks simetris ? Gunakan cara tersebut untuk menguji matriks 2 0 4 A= 0 1 2 4 2 1 . Apakah perkalian 2 buah vektor dapat menghasilkan semuah vektor ? x 9. Diketahui x = [ 5 4 2 -3 ]. Hitunglah . Cobalah beberapa x kali untuk vektor baris maupun kolom x dengan ordo berbeda- beda ? Apakah hasilnya selalu sama ? 10.MATRIKS DAN MANIPULASINYA 183 8.

Struktur Program M-File mirip dengan bahasa C yang membagi program dalam blok program berupa fungsi-fungsi. Program-program yang membutuhkan fungsi yang lebih kompleks dapat dilihat pada jendela launch pad atau help. Bagian tengah dipakai untuk mengetikkan program. Sebaliknya M-file dapat dipakai untuk berbagai aplikasi sesuai keinginan pemakai. perulangan dan lain-lain. . Bagian-bagiannya mirip dengan editor teks biasa.1 Membentuk M-File Pemrograman dengan M-File memberikan kontrol lebih banyak dibandingkan dengan command line seperti yang dibicarakan dalam bab 11. Bab 12 PEMROGRAMAN MATLAB 12. Dalam bab ini dibahas tentang dasar-dasar pembuatan program dalam M-file. Script dalam jendela perintah berguna untuk menyelesaikan permasalahan yang pendek. Jendela M-file tampak pada gambar 12. Tiap fungsi dapat memanggil fungsi yang lain. Dengan M-File kita bisa melakukan percabangan. Jendela M-file dapat dibuka melalui menu File – New – M file atau dengan menekan Ctrl-N.1. Di bagian atas adalah menu yang dapat dipakai untuk mengedit dan menjalankan (running) program.

186 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gambar 12.1 Fungsi dalam Matlab terdiri dari 2 bagian yaitu definisi fungsi dan tubuh fungsi a. Definisi fungsi Bentuk definisi fungsi adalah sebagai berikut : function <argumen keluaran> = <nama fungsi> (<argumen masukan>) Sebagai contoh : Function y = average (x) argumen masukan nama fungsi argumen keluaran kata kunci .

phi. maka program harus disimpan dahulu ke dalam file yang namanya sama (berekstensi *.z] = sphere(theta. masukan/keluaran. function [x. maka argumen tersebut dipisahkan dengan tanda koma dan diletakkan diantara kurung siku. Statemen dalam tubuh fungsi bisa berupa pemberian nilai pada suatu variabel. Statemen setelah tanda % tidak akan diproses oleh Matlab. vektor maupun matriks. iterasi. Masing-masing dipisahkan dengan tanda koma.rho) b. Argumen masukan boleh lebih dari satu. Matlab memberi fasilitas membuat komentar. Contoh fungsi dalam Matlab adalah sebagai berikut. Demikian juga apabila argumen keluaran lebih dari satu elemen. ataupun pemanggilan kepada fungsi lain. Penjelasan tentang bagian-bagian fungsi dapat dibaca pada sub bab berikutnya. Function y = average (x) %fungsi untuk menghitung rata-rata elemen dalam vektor x y = sum(x)/length(x).PEMROGRAMAN MATLAB 187 Baik argumen masukan maupun keluaran bisa berupa variabel berupa skalar.m) dengan nama fungsi . Perhatikan bahwa agar dapat dijalankan dengan benar. Tubuh fungsi Tubuh fungsi berisi semua perintah Matlab untuk membuat komputasi dan memberikan harga kepada argumen keluaran. Komentar didahului dengan tanda %.y. Untuk membantu menjelaskan perintah. atau tanpa argumen sama sekali. fungsi kontrol.

dan menunggu input data dari user yang diakhiri dengan penekanan enter. maka perintah disp harus dituliskan beberapa kali. Apabila argumen disp berupa string (teks diantara 2 tanda petik).2. Jika kita ingin mencetak nilai beberapa variabel (atau teks dan variabel). Perintah disp. untuk memasukkan data vektor dari keyboard ke dalam variabel x. Apabila langsung ditekan enter. Formatnya adalah : disp (nama_variabel) Perintah disp (X) akan menampilkan isi X di layar jendela perintah. maka x akan berisi matriks kosong.2 Masukan dan Keluaran 12. gunakan perintah Input. digunakan perintah : x = input ('data = ') Apabila di-run. maka akan ditampilkan teks tersebut.1 Perintah Masukan-Keluaran dari Keyboard Untuk membaca data dari keyboard... Selanjutnya user harus memasukkan nilai variabel di jendela perintah (command window) Sintaksnya adalah : nama_variabel = input('teks') Sebagai contoh.) .188 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 12. Untuk menampilkan isi suatu variabel. Perhatikan disini bahwa argumen perintah disp adalah tunggal. Formatnya adalah : fprintf (format. A. ada 2 perintah yang dipakai yaitu : a. b. . Perintah fprintf. maka di monitor akan tampak teks data = .

(optional) Konversi karakter yang umum dipakai tampak pada tabel 12..1 Tabel 12. .2 . tab.5 e konversi karakter (harus ada) jumlah digit desimal (optional) lebar penulisan (optional) tanda +/. dll.1 Konversi Keterangan ‘%c’ Karakter tunggal ‘%d’ Notasi desimal dengan tanda +/- ‘%e’ Notasi eksponensial ‘%f’ Notasi titik tetap (fixed point) ‘%i’ Notasi desimal dengan tanda +/- Selain konversi karakter.. tersedia pula karakter pengontrol penulisan (escape character) yang diawali dengan backslash ( \ ).PEMROGRAMAN MATLAB 189 Format adalah bentuk penulisan yang akan ditampilkan di layar seperti jumlah angka desimal. penulisan di baris baru. lebar karakter. Beberapa karakter pengontrol yang sering dipakai tampak pada tabel 12. adalah nama variabel yang isinya dicetak di layar. A. Format penulisan bilangan riil adalah sebagai berikut : % -12.

Untuk membersihkannya. Permission adalah kondisi file yang dibaca/ditulis.3 Permission Keterangan ‘r’ Buka file hanya untuk dibaca (default) ‘w’ Buka file. gunakan perintah clc atau dari menu view – clear command window 12. atau buat file baru untuk ditulisi (rewrite) .3 Tabel 12. Defaultnya adalah file hanya dibuka untuk dibaca. berkas terlebih dahulu harus dibuka dengan perintah fopen.2.190 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tabel 12.permission) fid adalah variabel identitas file yang nantinya dipakai ketika akan membaca atau menulis. kadangkala jendela perintah terasa penuh.2 Karakter Keterangan \b backspace \f formfeed (penulisan diteruskan dalam baris yang sama) \n penulisan dilakukan pada baris baru Setelah beberapa kali penggunaan.2 Perintah Masukan-Keluaran Dari Berkas Masukan dan keluaran juga bisa diakses dari/ke berkas. Format perintahnya adalah sebagai berikut : fid = fopen(filename. Filename adalah string berisi nama file (dan direktorinya) yang dibaca/ditulis. Sebelum mengakses. Kondisi yang umum dipakai tampak pada tabel 12.

Precision menyatakan format teks yang dibaca (integer dengan tanda.1 Buatlah program untuk menghitung rata-rata dan standar deviasi sejumlah data yang dimasukkan dalam sebuah vektor. Jika tidak dituliskan. maka berkas akan dibaca hingga akhir. format. digunakan perintah fread yang formatnya adalah sebagai berikut : A = fread(fid. Untuk membaca berkas teks.. untuk baca maupun tulis ‘a+’ Untuk menulis isi variabel ke berkas.PEMROGRAMAN MATLAB 191 ‘a’ Buka file.precision) fid adalah variabel nama file yang digunakan dalam fopen.2).1 dan 12.. Agar berkas yang dibuka dapat ditulisi dengan baik. . maka berkas harus ditutup kembali dengan perintah fclose (fid). ‘a’.. gunakan perintah fprintf yang formatnya mirip dengan format fprintf bukan berkas. A. Hanya disini file dapat dipakai ‘w+’. dll) Contoh 12. sama seperti ‘r’. . Bedanya adalah adanya tambahan nama variabel identitas file fprintf (fid.. adalah nama variabel yang isinya dituliskan pada berkas. fid adalah variabel nama berkas yang digunakan dalam perintah fopen. A. .) fid adalah nama variabel identitas file yang dipakai pada perintah fopen. ‘w’. size adalah jumlah data yang dibaca dan ditempatkan di variabel A.size. Format adalah format penulisan (lengkapnya lihat tabel 12. atau buat file baru untuk ditulisi (append di akhir file yang telah ada) ‘r+’.

xn ) n ∑x i Maka rata-rata x = x = i =1 n n ∑x 2 i Standar deviasi = σ = − (x) i =1 2 n Untuk membuat program dibutuhkan fungsi untuk menghitung n ∑ (banyaknya data). Jadi untuk menghitung jumlah kuadrat data digunakan fungsi dot (x. Perhatikan pula bahwa jika x adalah vektor baris.x’. sd = sqrt (dot(x. jumlah data ( x ) dan jumlah kuadrat data ( ∑x 2 ).. Perhatikan bahwa dot (x.x) akan sama dengan jumlah kuadrat. Maka dot (x.x) akan sama dengan x.x)/numel(x)-rata^2). maka dot (x. program untuk menghitung rata-rata dan standar deviasi adalah sebagai berikut : function rata2 clc x = input ('masukkan data vektor x = ') rata = sum(x)/numel(x). Fungsi untuk menghitung jumlah data adalah sum (x). .y) digunakan untuk menghitung hasil kali titik antara vektor x dengan vektor y.x). Fungsi untuk menghitung banyaknya data adalah numel (x).192 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Penyelesaian Misalkan x = ( x1 x2 ..

2f . std dev = %5. Jika salah maka program akan melompat ke perintah setelah end.sd) end Jika dijalankan untuk data x = (2 -3 4 6 4 1).rata. std dev = 2. 12.33 .PEMROGRAMAN MATLAB 193 fprintf ('rata-rata = %5.) di akhir baris perintah (seperti pada baris menghitung rata dan sd) menyebabkan tidak tercetaknya nilai variabel tersebut. Jika kondisi ini benar. maka statements akan dilakukan. Format perintahnya adalah sebagai berikut : if expression statements end expression adalah kondisi yang menentukan arah percabangan.2f'. Struktur tersebut digambarkan dalam bagan alir gambar 12.87 Penggunaan semicolon (.3 Statemen Kendali Statemen kondisi memungkinkan kita untuk mengontrol alur program.1 . maka akan menghasilkan keluaran : masukkan data vektor x = [2 -3 4 6 4 1] x = 2 -3 4 6 4 1 rata-rata = 2.

maka statements2 yang dilakukan.1 expression Statements 2 tidak ya Statements 1 benar ? Perintah setelah end Gambar 12. Untuk itu ditambahkan perintah else. if expression statements1 else statements2 end . Akan tetapi jika salah.2 Bentuk yang lebih umum adalah menentukan statemen apa yang dilakukan jika kondisi expression bernilai salah.194 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab expression ya Statements benar ? tidak Perintah setelah end Gambar 12. maka statemens1 yang akan dilakukan. Jika expression bernilai benar.

Operator logika yang dapat dipakai tampak pada tabel 12. Penyelesaian Untuk menentukan apakah 2 buah matriks sama (semua elemennya sama). Programnya adalah sebagai berikut : .2 Buatlah program untuk menentukan apakah 2 buah matriks A dan B yang dimasukkan sama. digunakan perintah isequal.4 Operator Arti < Lebih kecil dari <= Lebih kecil atau sama dengan > Lebih besar dari >= Lebih besar atau sama dengan == Sama dengan ~= Tidak sama dengan Contoh 12.4 Tabel 12.PEMROGRAMAN MATLAB 195 Gambar 12.2 menunjukkan bagan alir proses dengan perintah if-then- else Expression dalam kedua bentuk if tersebut berisi variabel-variabel yang dihubungkan dengan operator logika (atau fungsi yang memiliki return boolean true atau false). Perintah isequal merupakan perintah logika yang bernilai 1 (true) jika kedua matriks sama dan bernilai false jika keduanya tidak sama.

196 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab function cekmatriks clc a = input ('masukkan matriks A = ') b = input ('masukkan matriks B = ') if isequal (a. diperoleh hasil sebagai berikut : ⎝ ⎠ masukkan matriks A = [2 5 -3 . 1 2 8] b = 2 5 -3 1 2 8 kedua matriks sama . 1 2 8] a = 2 5 -3 1 2 8 masukkan matriks B = [2 5 -3 .b) disp ('kedua matriks sama') else disp ('kedua matriks tidak sama') end ⎛ 2 5 −3 ⎞ Jika dijalankan dengan menginputkan A = ⎜ ⎟ dan B = ⎝1 2 8 ⎠ ⎛ 2 5 −3 ⎞ ⎜ 1 2 8 ⎟ .

Matriks A merupakan matriks bujur sangkar jika m = n. Buatlah program untuk menghitung Ak dengan k = bilangan bulat positip yang diinputkan.n] = size (A) akan menghasilkan m = jumlah baris dan n = jumlah kolom matriks A. Penyelesaian Untuk menentukan apakah matriks yang diinputkan adalah matriks bujur sangkar atau bukan. digunakan perintah size.PEMROGRAMAN MATLAB 197 Contoh 12. disp ('ak = ') disp (ak) else disp ('matriks bukan bujur sangkar') end 3 ⎛ 2 -1 ⎞ Bila dijalankan untuk A = ⎜ ⎟ . 3 2] . gunakan operator ^. Program selengkapnya adalah sebagai berikut : function pangkatmatriks clc a = input ('masukkan matriks A = ') k = input ('masukkan pangkat matriks = ') [m. if m == n ak = a^k.n] = size (a). Untuk mempangkatkan matriks. Statemen [m.3 Misal A adalah matriks bujur sangkar. diperoleh keluaran : ⎝3 2 ⎠ masukkan matriks A = [2 -1 .

jumlah perulangan yang akan dilakukan ditentukan oleh pemakai. Jadi sebelum statemen dalam perulangan dieksekusi. Perulangan bisa dilakukan beberapa kali.198 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab a = 2 -1 3 2 masukkan pangkat matriks = 3 k = 3 ak = -10 -9 27 -10 12. banyaknya perulangan ditentukan dari kondisi syarat yang ditetapkan. Selama kondisi tersebut bernilai benar. Struktur For Dalam struktur ini. maka perulangan terus dilakukan. tidak pernah dilakukan sama sekali. Ada 2 bentuk perulangan yang umumnya dipakai : a. kita sudah tahu berapa kali nantinya statemen tersebut dieksekusi b.4 Statemen Perulangan Statemen perulangan digunakan untuk mengulang-ulang suatu blok perintah . atau . Struktur While Dalam struktur while.

Sebagai contoh.n) % Matriks awal for i = 1:n for j = 1:n a(i. Pembuat program harus memastikan bahwa suatu saat nantinya. Pada kasus ini. end end Program tersebut akan secara iteratif mengisi elemen matriks baris-i 1 kolom j dengan i + j −1 . perhatikan program n = 4 a = zeros(n. baru kemudian ke loop For sebelah luarnya.4. kondisi syarat bernilai salah (sehingga perulangan berhenti) 12..PEMROGRAMAN MATLAB 199 bahkan dilakukan terus menerus tanpa pernah berhenti..j) = 1/(i+j -1). statement end Struktur for dapat dibuat bersarang (nested loop).1 Struktur For Bentuk struktur For adalah sebagai berikut : for variable = skalar : skalar statement . loop For yang paling dalam akan dieksekusi dahulu hingga selesai.

A2. fprintf ('a^%d = \n'. [m. .n] = size (a). Hanya saja disini akan ditampilkan semua matriks Ai (i = 1.. k). Untuk itu digunakan struktur For.3. 2.. diperoleh keluaran : ⎝3 2 ⎠ . . function pangkatmatriks2 clc a = input ('masukkan matriks A = '). if m == n for i = 1:k ak = a^i. Ak Penyelesaian Program ini mirip dengan contoh 12.200 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Contoh 12.i) disp (ak) end else disp ('matriks bukan bujur sangkar') end ⎛ 2 -1 ⎞ Bila dijalankan untuk A = ⎜ ⎟ dan k = 3.. .4 Misal A adalah matriks bujur sangkar dan k adalah bilangan bulat positip yang diinputkan. k = input ('masukkan pangkat matriks = ').. Buatlah program untuk mencetak matriks A.

5 Misal A adalah matriks bujur sangkar. Penyelesaian Untuk memproses diagonal utama (elemen dari kiri atas hingga kanan bawah matriks) dapat dipakai perintah diag. Akan tetapi tidak ada perintah untuk memproses diagonal sekunder. haruslah dilakukan iterasi dengan struktur For Untuk matriks A berordo nxn.PEMROGRAMAN MATLAB 201 masukkan matriks A = [2 -1 . Untuk mengubah nilai diagonal sekunder. n-i+1 Program selengkapnya adalah sebagai berikut : . Buatlah program untuk mengganti setiap elemen pada diagonal sekunder (elemen-elemen sepanjang kanan atas hingga kiri bawah matriks) dengan negatifnya. diagonal sekunder baris ke-i adalah elemen ai. 3 2] masukkan pangkat matriks = 3 a^1 = 2 -1 3 2 a^2 = 1 -4 12 1 a^3 = -10 -9 27 -10 Contoh 12.

end fprintf ('matriks A baru = \n') disp (a) else disp ('matriks bukan bujur sangkar') end ⎛ 2 -1 ⎞ Bila dijalankan untuk matriks A = ⎜ ⎟ .n-i+1). 3 2] a = 2 -1 3 2 matriks A baru = 2 1 -3 2 . diperoleh hasil : ⎝3 2 ⎠ masukkan matriks A = [2 -1 .n-i+1) = -1 * a(i.202 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab function diagsekunder clc a = input ('masukkan matriks A = ') [m. if m == n for i = 1:n a(i.n] = size (a).

. n2. A disebut matriks ajaib (magic square) apabila elemen dalam A adalah bilangan 1. ⎛8 1 6⎞ ⎜ ⎟ Sebagai contoh matriks A = 3 5 7 merupakan matriks ajaib ⎜ ⎟ ⎜4 9 2⎟ ⎝ ⎠ karena jumlah tiap baris = jumlah tiap kolom = jumlah tiap diagonal = 15. Contoh 12. Misalkan pengecekan dimulai dari elemen kiri atas.. Segera setelah ditemukan elemen 0. . atau ~=. dan jumlahan semua elemen dalam satu baris.4. Pengecekan tidak perlu kita lakukan pada semua elemen matriks. .2 Struktur While Bentuk umum struktur While adalah sebagai berikut : while expression op_rel expression statements end dimana op_rel adalah ==. maka pengecekan dihentikan dan kita bisa mengambil kesimpulan tentang matriks tersebut. >=. Statemen akan dieksekusi terus menerus selama ekspresi setelah kata kunci while bernilai benar. >. Sebagai contoh. <=. satu kolom dan diagonalnya sama. misalkan kita ingin mengecek apakah dalam matriks yang diinputkan ada elemen 0.PEMROGRAMAN MATLAB 203 12. Struktur while dipakai jika kita akan menghentikan iterasi segera setelah dicapai kesimpulan. <. 2. .6 Misalkan A adalah matriks bujur sangkar ordo nxn.

204 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Buatlah program untuk mendeteksi apakah matriks yang diinputkan
merupakan matriks ajaib. Jangan menggunakan perintah magic
(meskipun perintah tersebut akan menghasilkan matriks ajaib)

Penyelesaian
Mula-mula dihitung ordo matriks A yang diinputkan dengan
menggunakan perintah size, dan diuji apakah matriksnya
merupakan matriks bujur sangkar.

Jika matriksnya bujur sangkar (ordo nxn), hitung jumlah baris-1 (atau
kolom-1) dalam matriks. Untuk memudahkan, gunakan perintah
sum(A(1,1:n)). Misal jumlahnya adalah jum.

Berikutnya untuk setiap baris lain, diuji apakah jumlahnya sama
dengan jum. Jika ditemukan salah satu baris yang jumlahnya tidak
sama dengan jum, maka program dihentikan dan ditampilkan pesan
bahwa matriks yang dimasukkan bukan matriks ajaib. Ulangi proses
pengecekan untuk tiap kolom, diagonal utama dan diagonal sekunder.

Program selengkapnya adalah sebagai berikut :
function matriksajaib
clc
a = input ('masukkan matriks A = ')
[m,n] = size (a);
if m == n
jum = sum (a(1,1:n));
% hitung jumlah baris-1
fprintf ('jum baris 1 = %d\n', jum)
ajaib = 1;

i = 2;
while ((ajaib) & (i <= n))

PEMROGRAMAN MATLAB 205

% cek jumlah per baris
fprintf ('jum baris %d = %d\n',
i, sum(a(i,1:n)))
if (sum (a(i,1:n)) ~= jum)
ajaib = 0;
end
i = i+1;
end

j = 1;
while ((ajaib) & (j <= n))
% cek jumlah per kolom
fprintf ('jum kolom %d = %d\n',
j, sum (a(1:n,j)))
if (sum (a(1:n,j)) ~= jum)
ajaib = 0
end
j = j+1;
end

fprintf ('jum diag utama = %d\n',
sum (diag(a)))
if (sum (diag (a)) ~= jum)
% cek jumlah diagonal utama
ajaib = 0
end

206 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

% hitung jumlah diagonal sekunder
js = 0;
for i = 1:n
js = js + a(i,n-i+1);
end
fprintf ('jum diag sekunder = %d\n', js)
if js ~= jum
% cek jumlah diag sekunder
ajaib = 0
end

if (ajaib)
fprintf ('matriks A = ajaib\n')
else
fprintf ('matriks A = bukan ajaib\n')
end

else
disp ('matriks bukan bujur sangkar sehingga
bukan matriks ajaib')
end

⎛8 1 6⎞
⎜ ⎟
Contoh keluaran untuk matriks 3 5 7 adalah sebagai berikut :
⎜ ⎟
⎜4 9 2⎟
⎝ ⎠
masukkan matriks A = [8 1 6 ; 3 5 7 ; 4 9 2]
a =

PEMROGRAMAN MATLAB 207

8 1 6
3 5 7
4 9 2

jum baris 1 = 15
jum baris 2 = 15
jum baris 3 = 15
jum kolom 1 = 15
jum kolom 2 = 15
jum kolom 3 = 15
jum diag utama = 15
jum diag sekunder = 15
matriks A = ajaib

12.5 Pembuatan Grafik
Matlab menyediakan fasilitas untuk membuat berbagai macam grafik
(grafik garis, histogram, dll) baik 2 maupun 3 dimensi. Pada bab ini
hanya akan dibahas tentang bagaimana cara membuat grafik garis 2
dimensi. Pembaca yang ingin mengetahui cara pembuatan jenis grafik
yang lain dapat mempelajarinya dari jendela help.

Langkah-langkah yang harus dilakukan untuk membuat grafik garis
fungsi y = f(x) adalah sebagai berikut :

a. Tentukan interval sumbu x dimana grafik dibuat.

Statemen x = a:b:c merupakan perintah untuk membuat titik-
titik grafik pada sumbu x mulai dari x = a hingga x = c dengan

208 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

penambahan (increment) sebesar b. Semakin kecil nilai b, grafik
yang tertampil akan semakin halus.

x = 1 : 0.2 : 5 berarti grafik yang dibuat adalah fungsi pada
x = 1, 1.2, 1.4, 1.6, ... , 4.8, 5

b. Tuliskan fungsi yang akan dibuat grafiknya

Misalkan akan dibuat grafik polinomial f(x) = an xn + an-1 xn-1 + ... +
a2 x2 + a1 x + a0. Koefisien polinomial (menurun) disimpan dalam
suatu vektor p = [an an-1 ... a2 a1 a0 ]. Perintah polyval
(p,x) akan menghitung nilai polinomial (yang koefisiennya
disimpan dalam vektor p) pada titik x.

Untuk menggambar grafik fungsi y = x2 + 2x – 5 pada [-5, 5],
digunakan perintah :
x = -5:0.1:5;
p = [1 2 -5]
y = polyval (p,x);
c. Pilih jendela dan posisi dimana grafik digambarkan

Untuk membentuk grafik, digunakan perintah figure.

subplot (2,3,1) subplot (2,3,2) subplot (2,3,3)

subplot (2,3,4) subplot (2,3,5) subplot (2,3,6)

Gambar 12.3

Perintah subplot (m,n,p) akan membagi jendela gambar
dalam m baris dan n kolom dan meletakkan grafik pada sel ke-p.
Perintah subplot bermanfaat apabila kita hendak

PEMROGRAMAN MATLAB 209

menggambarkan beberapa grafik berbeda (biasanya sebagai bahan
perbandingan) dalam satu bidang gambar

Perintah subplot (2,3,4) akan membagi jendela gambar
menjadi 6 bagian (terdiri dari 2 baris dan 3 kolom), serta
meletakkan gambar pada bagian ke-4 (baris ke-2 kolom-1).
Ilustrasinya dapat dilihat pada gambar 12.3. Perintah subplot
(2,3,7) tidak akan menghasilkan grafik karena hanya ada 6
bidang gambar sehingga tidak dapat digambarkan pada bagian
ke-7.

Untuk membuat gambar yang lebih besar, gunakan subplot
(1,1,1) (berarti jendela gambar hanya digunakan untuk sebuah
grafik saja). Sebaliknya untuk menggambarkan p buah grafik
sekaligus, gunakan subplot (m,n,p) dengan m*n ≥ p agar
semua grafik dapat ditampilkan.

Agar grafik yang dibuat menimpa grafik yang sudah ada
sebelumnya, gunakan perintah subplot(m,n,p,'replace').

d. Panggil fungsi penggambar grafik

Untuk menggambar grafik, digunakan perintah plot. Plot
(x1, y1, x2, y2, ... , xn, yn) akan menggambar n
buah grafik fungsi masing-masing y1 = f(x1), y2 = f(x2), ... , yn =
f(xn) dalam bidang gambar yang sama.

Untuk menggambarkan n buah grafik tersebut dalam bidang
gambar yang berbeda-beda, gunakan perintah subplot
(m,n,p) untuk harga p yang berbeda-beda.

Sebagai contoh, program untuk menggambarkan 2 buah grafik y = x2
+ 2x – 5 dan y = x2 pada [-5, 5] dalam satu bidang gambar adalah
sebagai berikut :

function grafik

210 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab x = -5:0. Jika program dijalankan. maka akan muncul jendela grafik seperti gambar 12.4 Jendela grafik dalam matlab berfungsi seperti grafik editor pada perangkat lunak Excell/SPSS.y2).1) plot(x.1. Caranya adalah dengan mengklik button edit (panah ke kiri atas).y1. y2 = polyval (p2.x). figure(1) subplot(1.02:5. dimana kita dapat mengedit grafik langsung dari grafik (tidak perlu mengubah souce code program). lalu klik ganda ke bagian grafik. x. apabila diklik ganda pada sumbu y (atau sumbu x).4 Gambar 12.x). p1 = [1 2 -5] p2 = [1 0 0] y1 = polyval (p1. Sebagai contoh. akan muncul jendela editor properti seperti gambar 12.5 .

.5 SOAL-SOAL LATIHAN 1. label sumbu. dll) dengan memilih combo box di sebelah atas. Buatlah program (tanpa menggunakan perintah Pascal) untuk membentuk matriks segitiga pascal. Gambar 12. Buatlah program untuk menguji apakah matriks bujur sangkar yang diinputkan merupakan matriks yang simetris. Masukan adalah ordo matriks bujur sangkar dan bentuk keluaran sama dengan perintah Pascal dalam Matlab. Kita juga bisa mengedit kurva (misal menambah legenda. skala tick mark. warna.PEMROGRAMAN MATLAB 211 Dari jendela editor properti ini kita bisa menambah judul grafik. dll. Pembaca bisa mencoba-coba mengedit grafik dengan menggunakan editor properti dan melihat efeknya pada grafik yang ada. 2.

tapi semua elemen ⎛ 0. 1]. Matriks probabilitas adalah matriks bujur sangkar dengan elemen riil tak negatif pada selang [0. dan jumlah tiap barisnya = 1. Misalkan x dan y adalah 2 vektor yang merupakan data berpasangan (berarti jumlah data dalam x sama dengan jumlah data dalam y).2 0.84 ⎠ Buatlah program untuk menguji apakah matriks yang diinputkan merupakan matriks probabilitas. Berilah komentar bila kedua matriks tidak dapat dikalikan.16 0. matriks P = ⎜ ⎟ merupakan matriks ⎝ 0.8 ⎠ reguler karena meskipun P memuat elemen 0. Buatlah program untuk mengalikan 2 buah matriks yang diinputkan. Tingkat korelasi antara x dan y diukur dengan koefisien korelasi Pearson yang rumusnya adalah sebagai berikut : r = ∑x yi i −nx y (∑ x 2 − n x 2 ) (∑ y2 − n y 2 ) Buatlah program untuk menghitung koefisien korelasi dari vektor x dan y.212 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 3. 5. Gunakan perintah all (atau all (all) untuk menguji ada/tidaknya elemen 0 dalam matriks . 4. Program harus dibuat menurut proses perkalian matriks biasa (perkalian elemen dalam baris matriks pertama dengan elemen kolom matriks kedua). Matriks probabilitas P disebut reguler apabila terdapat bilangan bulat positip n sehingga semua elemen dalam Pn ≠ 0 ⎛ 0 1 ⎞ Sebagai contoh.8 ⎞ dalam P2 = ⎜ ⎟ tidak memuat 0 ⎝ 0.2 0.

• Threshold yang dipakai adalah 0 • Fungsi aktivasi (dalam Matlab disebut hardlim) memiliki output biner (bukan 3 kemungkinan seperti perceptron dalam bab 5) ⎧1 jika net ≥ 0 f ( net ) = ⎨ ⎩0 jika net < 0 . Model perceptron dalam Matlab sedikit berbeda dengan perceptron yang dibahas dalam teori bab 5. Dalam Matlab. Sebenarnya penyelesaian berbagai model dalam JST tidak jauh berbeda. lalu dilatih untuk mendapatkan bobot yang diinginkan. default sistem yang dipakai adalah sebagai berikut : • masukan dan target yang dipakai berbentuk bebas (tidak harus biner/bipolar). Diawali dengan pembentukan vekor masukan dan target.1 Spesifikasi Perceptron Dalam Matlab Perceptron adalah model paling sederhana yang dapat diselesaikan dengan Matlab. Bab 13 PEMROGRAMAN PERCEPTRON DENGAN MATLAB Matlab menyediakan toolbox yang sangat bagus untuk menyelesaikan model jaringan syaraf tiruan. 13.

Perubahan bobot yang dilakukan adalah ⎧p jika (t − a ) > 0 ⎪ Δw = ⎨ − p jika (t − a ) < 0 dan wbaru = wlama + Δw ⎪0 jika (t − a ) = 0 ⎩ Perubahan bobot hanya dilakukan jika target ≠ keluaran jaringan. Format fungsi newp adalah sebagai berikut : net = newp (PR. Perintah newp akan membentuk sebuah perceptron dengan spesifikasi tertentu (jumlah unit input. 13..2 Pembentukan Jaringan Pertama-tama.TF. jumlah neuron.. Perubahan bobot bukan merupakan hasil kali antara target dengan masukan Misalkan p = (x1 x2 . dll). Defaultnya adalah fungsi threshold (dalam matlab disebut ‘hardlim’ ) LF = fungsi pelatihan. perceptron harus dibentuk dengan menggunakan perintah newp.LF) dengan PR = matriks ordo Rx2 yang menyatakan nilai minimum dan maksimum tiap unit masukan (ada R buah unit masukan) S = jumlah neuron target TF = fungsi aktivasi biner. xn)t adalah masukan yang diberikan ke jaringan dengan target = t.214 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab • Tidak menggunakan laju pemahaman. fungsi aktivasi.S. Defaultnya adalah ‘learnp’ . dan a = f(net). Bobot diubah berdasarkan error yang terbentuk dari selisih antara target yang diinginkan dengan keluaran jaringan (= f(net) ).

Misalkan ada 3 buah unit masukan dan 2 buah neuron target seperti gambar 13.IW{i. TF diubah ke ‘hardlims’.4).j} dan net.1. Maka digunakan statemen net.IW {1. Untuk membuat fungsi aktivasi threshold bipolar. gunakan penugasan terhadap net. sehingga net.IW menunjukkan bobot awal dari layar –j ke layar –i. 0 1 0] net.b {i} (perhatikan bahwa yang dipakai adalah kurung kurawal).PEMROGRAMAN PERCEPTRON DENGAN MATLAB 215 Fungsi learnp dalam default pembuatan perceptron dipakai untuk mengubah bobot sehingga diperoleh bobot yang lebih mendekati target (penjelasan lebih detil dapat dilihat pada bab 13. Perintah newp juga akan menset bobot dan bias awal ke 0.1 Misal inisialisasi bobot ke target y1 = [-1 0 2].b {1} = [1 .1 1 b1 x1 w11 b2 w12 y1 x2 w21 w13 y2 w22 w23 x3 Gambar 13. ke target y2 = [0 1 0] dan bobot bias b = [1 2]. 2] .IW menunjukkan bobot awal dari layar masukan ke neuron targetnya. Indeks i dan j dalam net. Untuk mengubahnya.1} = [-1 0 2 . Dalam perceptron hanya dikenal layar masukan dan keluaran.

target disebut neuron) Jaringan yang terbentuk memiliki bobot awal. Maka perintah yang dibuat adalah net = newp ([0 1 .3 Pembentukan Vektor Masukan dan Target Setelah membentuk perceptron.216 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Contoh 13. 13.2 . s = 1 menunjukkan bahwa jaringan hanya memiliki sebuah target (dalam Matlab. sedangkan baris kedua matriks menunjukkan range x2. dll yang mengikuti defaultnya.1]. bias. Contoh 13.1) Baris pertama matriks ( [0 1] ) menunjukkan range nilai x1. berikutnya didefinisikan pola masukan dan target yang akan dikenali. 0 1].1 Bentuklah perceptron untuk mengenali pola fungsi logika “dan” 2 variabel x1 dan x2 Penyelesaian Fungsi logika “dan’ dengan 2 variabel masing-masing memiliki range nilai masukan [0. perubahan bobot. Masing-masing masukan dan keluaran berupa vektor kolom. Perhatikan bahwa jumlah unit tiap pola masukan serta range nilainya harus sesuai dengan spesifikasi perceptron yang dibuat. dan sebuah target.

IW {1. Penyelesaian Fungsi logika “dan” memiliki 4 pola masukan (masing-masing masukan terdiri dari 2 unit) seperti tampak pada tabel 13.1} = [-1 1] net. 1] [0 . 0] ] t = [1 0 0 0] . 1] [1 .1 Pola Masukan Masukan Target p1 ⎛1⎞ 1 ⎜1⎟ ⎝ ⎠ p2 ⎛1⎞ 0 ⎜0⎟ ⎝ ⎠ p3 ⎛0⎞ 0 ⎜1⎟ ⎝ ⎠ p4 ⎛0⎞ 0 ⎜0⎟ ⎝ ⎠ Perintah Matlab adalah sebagai berikut : net = newp ([0 1 .1) net.b {1} = [1] p = [ [1 . 0] [0 . 0 1].1 Tabel 13. dengan bobot awal w = [-1 1] dan bias b = [1].PEMROGRAMAN PERCEPTRON DENGAN MATLAB 217 Bentuklah perceptron dengan masukan dan targetnya untuk mengenali pola fungsi logika “dan”.

Y : Keluaran jaringan. Untuk sekedar menghitung keluaran jaringan. Af hanya dipakai bagi jaringan yang memiliki delay masukan dan layar. kita tidak perlu mengetahui targetnya. Perintah sim dalam Matlab dipakai untuk menghitung keluaran Perceptron. P : Vektor masukan jaringan Pi : Kondisi delay awal masukan.Pf.4 Menghitung Keluaran Perceptron Setelah pola masukan diberikan.Pi. E : Error jaringan = T – Y. Ai. dapat dipakai statemen sederhana y = sim (net. Default = zeros.E. Default = zeros. Formatnya adalah sebagai berikut : [Y. Ai : Kondisi delay layar. Perhatikan bahwa untuk menghitung keluaran jaringan. Default = zeros.Af.P.T) dengan parameter masukan net : nama jaringan dalam perintah Newp. . T : Vektor target jaringan. kita dapat menghitung keluaran jaringannya. Pi. Pf.perf] = sim(net. dan parameter hasil. maka harus diketahui targetnya.Ai.218 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 13. Af : Kondisi akhir delay layar. perf: Unjuk kerja jaringan.p). Pf : Kondisi akhir delay masukan. Akan tetapi jika ingin dihitung kesalahan yang terjadi (selisih antara target dengan keluaran jaringan).

1 menggunakan bobot awal seperti contoh 13.2.2 Pola Masukan 2 f (net) net = ∑pw i =1 i ji +b ⎛ 1⎞ 1 (-1) + 1 (1) + 1 = 1 1 p1 = ⎜ ⎟ ⎝ 1⎠ ⎛1⎞ 1 (-1) + 0 (1) + 1 = 0 1 p2 = ⎜ ⎟ ⎝0⎠ ⎛0⎞ 0 (-1) + 1 (1) + 1 = 2 1 p3 = ⎜ ⎟ ⎝1⎠ .2.PEMROGRAMAN PERCEPTRON DENGAN MATLAB 219 Contoh 13.p) Diperoleh hasil >> a = sim (net. Penyelesaian Setelah perintah seperti pada contoh 13.2. Perhitungan manualnya tampak pada tabel 13. ditambahkan perintah : a = sim (net.p) a = 1 1 1 1 Vektor a merupakan keluaran jaringan untuk p1 hingga p4 dengan menggunakan bobot dan bias masing-masing = [-1 1] dan [1]. Hasil f(net) ditampilkan oleh Matlab dalam variabel a di atas Tabel 13.3 Hitunglah keluaran jaringan contoh 13.

e. Jika perintah tersebut dijalankan.perf] = sim(net.t) Perhatikan bahwa dalam kasus ini tidak dibutuhkan delay.Af. akan diperoleh hasil sebagai berikut : a = 1 1 1 1 Pf = [] Af = [] e = 0 -1 -1 -1 . sehingga parameter Pi dan Ai pada perintah sim dikosongkan. maka parameter perintah sim ditambah sebagai berikut : [a.p. Jika ingin menampilkan besarnya error dan tingkat unjuk kerja yang terjadi.[]. error = t – a (disimpan dalam variabel e) serta tingkat kesalahan (disimpan dalam variabel perf).[].220 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab ⎛0⎞ 0 (-1) + 0 (1) + 1 = 1 1 p4 = ⎜ ⎟ ⎝0⎠ Perintah sim (net. Akan tetapi dibutuhkan target keluaran (variabel t) untuk menghitung error.p) di atas hanya menampilkan hasil keluaran jaringan (f(net) dalam tabel 13.2). Keluaran yang dihasilkan adalah keluaran jaringan (disimpan dalam variabel a).Pf.

gW.LS) dengan W : matriks bobot P : vektor masukan Z : vektor masukan dengan bobot N : vektor masukan net A : vektor keluaran T : vektor layar target E : vektor layar error gW : gradien bobot terhadap unjuk kerja gA : gradien keluaran terhadap unjuk kerja D : jarak neuron LP : parameter pemahaman LS : state pemahaman . digunakan perintah learnp yang formatnya adalah sebagai berikut : dW = learnp(W. Berarti 3 pola lain belum dikenali.75.LP. Pf dan Af = [ ] karena memang delay awal = Pi = Ai = [] 13. Dengan demikian performanya = ¾ = 0.PEMROGRAMAN PERCEPTRON DENGAN MATLAB 221 perf = 0. hanya pola pertama saja yang dikenali dengan benar (ditunjukkan dengan a[1] = 0).A.gA. langkah berikutnya adalah mengubah bobot berdasarkan selisih antara keluaran jaringan dengan target yang diinginkan.5 Modifikasi bobot dan Bias Setelah menghitung keluaran jaringan. Untuk mengubah bobot.Z.7500 Dari 4 pola yang diberikan.T.E.N.P.D.

[]. t = [t1 t2 t3 t4]. 0. ⎜ ⎟ . p2.e1.p1.1} = bobot . dan p4 (dengan target masing-masing = 1.[].1).p) – t) Contoh 13. net.3 ⎛1⎞ ⎛ 1 ⎞ ⎛ 0 ⎞ ⎛ 0 ⎞ dijalankan berturut-turut pada pola ⎜ ⎟ .[]. net = newp ([0 1 . ⎜ ⎟ . net.[]. bias = [1].[]. 0) seperti pada contoh 13. 0. bobot = [-1 1].p1) e1 = t1-a1 dW = learnp(bobot.[].IW {1. p3.2 Untuk pola p1 : p = [p1 p2 p3 p4]. parameter yang perlu diberikan hanyalah W. ⎜ ⎟ ⎝1⎠ ⎝ 0 ⎠ ⎝ 1 ⎠ ⎝ 0 ⎠ Penyelesaian Misalkan pola-pola tersebut adalah p1.[]. 0 1]. disp ('pola p1 :') a1 = sim (net.[]) bobot = bobot + dW .222 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Untuk perceptron sederhana.4 Hitunglah perubahan bobot setelah perintah sim pada contoh 13. P dan E (yang didapat dari sim (net.[].b {1} = bias.

p2) e2 = t2-a2 dW = learnp(bobot.[]. p3 dan p4 dilakukan dengan program sebagai berikut : disp ('pola p2 :') a2 = sim (net.[]) bobot = bobot + dW .[].p2.[].[]. Bobot yang baru diperoleh dengan menambahkan dW ke vektor bobot.[]. Perubahan bobot untuk pola p2.[]. maka tidak dilakukan perubahan bobot sehingga bobot baru = bobot lama. Karena keluaran jaringan = target.e2.[].[].PEMROGRAMAN PERCEPTRON DENGAN MATLAB 223 Jika program dijalankan akan diperoleh hasil : >> pola p1 : a1 = 1 e1 = 0 dW = 0 0 bobot = -1 1 Perintah learnp akan menyimpan besarnya perubahan bobot pada variabel dW.

[].[].[].p4) e4 = t4-a4 dW = learnp(bobot.[]) bobot = bobot + dW disp ('pola p4 :') a4 = sim (net.e4.p4.[].[].p3.[]) bobot = bobot + dW Keluaran program adalah sebagai berikut : pola p2 : a2 = 1 e2 = -1 dW = -1 0 bobot = .[].[].[].p3) e3 = t3-a3 dW = learnp(bobot.[].[].e3.[].[].224 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab disp ('pola p3 :') a3 = sim (net.[].[].[].[].

PEMROGRAMAN PERCEPTRON DENGAN MATLAB 225 -2 1 pola p3 : a3 = 1 e3 = -1 dW = 0 -1 bobot = -2 0 pola p4 : a4 = 1 e4 = -1 dW = 0 0 bobot = -2 0 .

>> a = sim (net. Akan tetapi bobot tersebut belum mampu mengenali semua pola dengan benar.226 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Pada pola 2 dan pola 3. Perubahan ini ditambahkan pada vektor bobot. Bobot terakhir yang diperoleh setelah epoch yang pertama adalah [-2 0] dan bias = [-1]. Pelatihan terus diulang-ulang hingga e = 0.4.a = -1 sehingga dW = -p. e = t . Pada pola 4. Perhatikan kembali contoh 13. sedangkan target yang diinginkan adalah [1 0 0 0].6 Pelatihan Perceptron Perceptron akan melakukan perubahan bobot terus menerus untuk setiap pola yang diberikan hingga diperoleh bobot yang dapat dipakai untuk mengenali semua pola secara benar. 13.p) a = 1 1 1 1 >> e = t-a e = 0 -1 -1 -1 Hasil keluaran pola 1 hingga pola 4 adalah [1 1 1 1]. e = 0 sehingga tidak dilakukan perubahan bobot. Terdapat kesalahan e = [0 -1 -1 -1]. Perubahan bobot untuk seluruh pola yang diberikan disebut epoch. Hal ini bisa dicek dengan perintah sim. Hal ini tentu . Ini menunjukkan perlunya dilakukan pelatihan lagi untuk epoch kedua (keempat pola diberikan lagi pada jaringan dengan bobot awal = bobot hasil pelatihan epoch pertama).

PEMROGRAMAN PERCEPTRON DENGAN MATLAB 227 saja membutuhkan program yang panjang.T. Untuk menyingkat keseluruhan proses pelatihan (mulai dari perhitungan keluaran jaringan hingga modifikasi bobot). Ai : Kondisi delay awal layar.2 .Ai.tr. TV : Struktur vektor uji. Perintah train akan menghasilkan net : jaringan yang baru tr : record pelatihan (epoch dan performa) Y : Keluaran jaringan E : error jaringan Pf : Kondisi akhir delay masukan Af : Kondisi akhir delay layar Contoh 13. Default = [].VV. apalagi kalau pola masukannya banyak.P.Pi.TV) dengan net : jaringan yang didefinisikan dalam newp P : masukan jaringan T : target jaringan. Default = zeros.5 Carilah bobot pengenalan pola contoh 13.Pf.Af] = train(net. Default = zeros. VV : Struktur validasi vektor. Pi : Kondisi delay awal masukan.Y. Default = [].E. Default = zeros. Matlab menyediakan perintah train yang formatnya adalah sebagai berikut : [net.

1] [1 . net. Akan tetapi akan lebih mudah jika kita memakai perintah train saja. net = train (net. p = [ [1 . kita bisa menggunakan perintah sim dan learnp berulang-ulang. 0 1].2 dan keterangan tentang selesainya iterasi .IW {1. Keluarannya berupa sebuah grafik seperti gambar 13. 1] [0 . t = [1 0 0 0]. p. 0] ]. t).1} = [-1 1]. 0] [0 .228 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Penyelesaian Untuk mencari bobot optimal. net.1). net = newp ([0 1 .b {1} = [1].

2 Grafik gambar 13. Untuk mengetahui bobot (dan bias) pada keadaan optimal.trainParam.b {1}) -3 Jadi w1 = 1.1] & 1 output net. ditampilkan net.2 menunjukkan bahwa iterasi diselesaikan dalam 9 epoch.b {1} = [1].1}) 1 2 >> disp (net. % 2 unit input masing2 range [0.IW {1. % training utk fungsi "and" clc net = newp([0 1 . gunakan perintah : net. unjuk kerja = 0.IW dan net. .5 (ada 2 pola yang dikenali dengan benar) dan seterusnya hingga epoch 9 yang memiliki unjuk kerja = 0 (berarti semua pola telah dikenali).epochs = 1.1).b >> disp (net.PEMROGRAMAN PERCEPTRON DENGAN MATLAB 229 Gambar 13. Program selengkapnya adalah sebagai berikut : function perceptron.75 (berarti hanya ada 1 pola yang dikenali dengan benar).IW {1. Pada epoch kedua. unjuk kerja = 0. w2 = 2 dan b = -3 Untuk mengetahui perubahan bobot dan bias untuk setiap epoch. Pada epoch 1. 0 1]. net. Untuk itu. iterasi harus dihentikan sementara per epoch (dan ditampilkan hasilnya).1} = [-1 1].

bobot = net. Epoch 1/1 TRAINC. e = 9999. while e > 0 net. Maximum epoch reached. bobot = -2 0 bias = -1 a = 0 0 0 0 e = 1 TRAINC. 0] [0 . t).b {1} a = sim (net. 0] ].230 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab p = [ [1 .1} bias = net. Epoch 0/1 TRAINC. p.epochs = 1.IW {1. % pause training untuk tiap epoch net = train (net. t = [1 0 0 0].trainParam. 1] [1 . didapatkan keluaran program sebagai berikut : >> TRAINC.p) e = sum (t-a) end Jika dijalankan. Epoch 0/1 . 1] [0 .

bobot = -1 0 bias = -1 a = 0 0 0 0 e = 1 TRAINC. Epoch 1/1 TRAINC. Maximum epoch reached. Epoch 1/1 TRAINC.PEMROGRAMAN PERCEPTRON DENGAN MATLAB 231 TRAINC. Epoch 0/1 TRAINC. Maximum epoch reached. Maximum epoch reached. Epoch 1/1 TRAINC. bobot = . Epoch 0/1 TRAINC. bobot = -1 0 bias = -2 a = 0 0 0 0 e = 1 TRAINC.

Maximum epoch reached.232 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 0 0 bias = -2 a = 0 0 0 0 e = 1 TRAINC. Epoch 1/1 TRAINC. Epoch 1/1 TRAINC. bobot = 0 1 bias = . bobot = 0 1 bias = -2 a = 0 0 0 0 e = 1 TRAINC. Epoch 0/1 TRAINC. Maximum epoch reached. Epoch 0/1 TRAINC.

bobot = 1 2 bias = -3 a = . Epoch 1/1 TRAINC. Epoch 0/1 TRAINC. Epoch 0/1 TRAINC. Epoch 1/1 TRAINC. Maximum epoch reached. Maximum epoch reached.PEMROGRAMAN PERCEPTRON DENGAN MATLAB 233 -3 a = 0 0 0 0 e = 1 TRAINC. bobot = 1 1 bias = -3 a = 0 0 0 0 e = 1 TRAINC.

Buatah program untuk mengenali fungsi logika “atau”. tapi menggunakan masukan bipolar (masukan 1 atau –1). Apakah jumlah epoch yang dibutuhkan tetap sama ? 3.5 tapi dengan bobot awal [0 0] dan bias awal = [0]. Buatlah program untuk menguji apakah perceptron mampu mengenali fungsi logika “dan” dengan 3 variabel 5. dan bias = -3 SOAL-SOAL LATIHAN 1. Berapa bobot dan bias optimalnya ? 4. target biner (0 atau 1). Ulangi contoh 13. Apakah perceptron mampu mengenalinya ? . Apakah bobot akhir yang diperoleh tetap sama ? 2.234 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 1 0 0 0 e = 0 Tampak bahwa bobot jaringan untuk mengenali semua pola adalah w1 = 1. Ulangi contoh 13. w2 = 2.5. Buatlah program untuk mengenali fungsi logika “XOR”.

Jadi f(net) = net. bias. Karena fungsi aktivasinya identitas. Spesifikasi jaringan ADALINE yang dipakai dalam Matlab adalah sebagai berikut : masukan dan target yang dipakai berbentuk bebas (tidak harus biner/bipolar). batas toleransi. kriteria penghentian. antara lain : menghitung keluaran jaringan. Matlab menyediakan beberapa fasilitas untuk melakukan perhitungan dengan model ADALINE. Bab 14 PEMROGRAMAN ADALINE DENGAN MATLAB 14. dan melakukan pelatihan. dll) bisa diatur (cara pengaturannya dapat dilihat pada subbab pelatihan) Perubahan bobot dilakukan sedemikian hingga errornya minimum (menggunakan kriteria least mean square error = LMS). Pertama-tama dilakukan inisialisasi jaringan. maka tidak ada batas ambang (threshold) Parameter pelatihan (bobot. . menghitung perubahan bobot. Fungsi aktivasi yang dipakai adalah fungsi identitas.1 Pemrograman ADALINE Pemrograman ADALINE (dalam Matlab disebut Linear Filter) mirip dengan pemrograman Perceptron.

Seperti pada Perceptron.S. Jika dijalankan. maka Matlab akan menampilkan struktur jaringan default yang terbentuk. jaringan ADALINE harus dibentuk dengan menggunakan perintah newlin (singkatan dari new linear filter) Perintah newlin akan membentuk ADALINE dengan spesifikasi tertentu (jumlah unit input.b {i}.01).236 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 14. dan menghasilkan sebuah ADALINE (dalam Matlab disebut layar linier) baru Laju pemahaman dapat diatur dari perintah newlin (dengan cara memberi nilai pada parameter LR) atau dari parameter train (caranya dapat dilihat dari subbab 14. Indeks i dan j dalam net. sehingga net. Dalam ADALINE hanya ada sebuah layar masukan dan keluaran.6). dll).LR) dengan PR : matriks R x 2 yang berisi nilai minimum dan maksimum elemen masukan R. Bentuk fungsi newlin adalah sebagai berikut : net = newlin (PR. Perintah newlin juga akan menset bobot dan bias awal ke 0.j} dan net. ID : Vektor delay masukan (default = [0]).IW{i. fungsi aktivasi. S : jumlah elemen vektor keluaran.j} menunjukkan bobot awal dari layar –j ke layar –i.IW {1.ID.2 Pembentukan Jaringan Pertama-tama. untuk mengubahnya dapat digunakan penugasan terhadap net.1} menunjukkan bobot awal dari layar masukan ke neuron targetnya. jumlah neuron. LR : laju pemahaman (default = 0.IW {I. .

Maka perintah yang sesuai adalah : 1 -4 x1 2 y 3 x2 Gambar 14. 0 10]. -1 1] menunjukkan bahwa kedua unit masukan x1.1} = [2 3] net.b {1} = [-4] Contoh 14. Misalkan pula kedua masukannya memiliki range [0. Penyelesaian Fungsi logika “dan’ dengan 2 variabel bipolar memiliki range nilai masukan [-1.1 Bentuklah perceptron untuk mengenali pola fungsi logika “dan” 2 variabel x1 dan x2 dengan masukan dan target bipolar.1. perubahan bobot. Maka perintah yang dibuat adalah net = newlin ([-1 1 . dan sebuah target.1 net = newlin ([0 10 . 10]. target disebut neuron) Jaringan yang terbentuk memiliki bobot awal.1) net. bias. 1]. Parameter s = 1 menunjukkan bahwa jaringan hanya memiliki sebuah target (dalam Matlab.1) Parameter [-1 1 .PEMROGRAMAN ADALINE DENGAN MATLAB 237 Misalkan ada 2 buah unit masukan dan 1 buah neuron target dengan bobot seperti gambar 14. -1 1].IW {1. 1]. . dan x2 memiliki range [-1. dll yang mengikuti defaultnya.

1 Penyelesaian Fungsi logika “dan” memiliki 4 pola masukan (masing-masing masukan terdiri dari 2 unit) sebagai berikut : Tabel 14. Perhatikan bahwa jumlah unit tiap pola masukan serta range nilainya harus sesuai dengan spesifikasi ADALINE yang dibuat. Masing-masing masukan dan keluaran berupa vektor kolom.238 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 14.3 Pembentukan Vektor Masukan dan Target Setelah membentuk ADALINE. Contoh 14. berikutnya harus ditentukan pola masukan dan target yang akan dikenali.2 Buatlah vektor masukan-keluaran ADALINE contoh 14.1 Pola Masukan Masukan Target p1 1 1 1 p2 1 -1 1 p3 1 -1 1 p4 1 -1 1 Perintah Matlab adalah sebagai berikut : .

T : Vektor target jaringan.Pf. Default = zeros. . -1] [-1 . perf: Unjuk kerja jaringan.Ai. Af : Kondisi akhir delay layar. -1] ] t = [1 -1 -1 -1] 14. P : Vektor masukan jaringan Pi : Kondisi delay awal masukan. -1 1]. Default = zeros.p). Untuk sekedar menghitung keluaran jaringan. dapat dipakai statemen sederhana y = sim (net. 1] [1 .perf] = sim(net.P.Pi.T) dengan parameter masukan net : nama jaringan dalam perintah Newlin. Ai. dan parameter hasil. Pf : Kondisi akhir delay masukan. Af hanya dipakai bagi jaringan yang memiliki delay masukan dan layar.E.Af. kita dapat menghitung keluaran ADALINE.PEMROGRAMAN ADALINE DENGAN MATLAB 239 net = newlin ([-1 1 .1) p = [ [1 . 1] [-1 . Pf. Default = zeros. E : Error jaringan = T – Y. Ai : Kondisi delay layar. Pi.4 Menghitung Keluaran ADALINE Setelah pola masukan diberikan. Perintah Matlab yang dipakai sama seperti model Perceptron : [Y. Y : Keluaran jaringan.

Akan tetapi jika ingin dihitung error yang terjadi (selisih antara target dengan keluaran jaringan).2. t = [1 -1 -1 -1]. 1] [1 . menggunakan bobot awal w1 = 2.p) Diperoleh hasil a = 1 -5 -3 -9 Perhatikan bahwa untuk menghitung keluaran jaringan tidak dibutuhkan vektor target.1} = [2 3].2. 1] [-1 .3 Hitunglah keluaran jaringan contoh 14. a = sim (net. maka harus diketahui targetnya. net.IW {1. w2 = 3 dan bias = -4 Penyelesaian net = newlin ([-1 1 . f(net) = net. Hasil f(net) ditampilkan oleh Matlab dalam variabel a di atas . p = [ [1 . kita tidak perlu mengetahui targetnya. -1 1]. Perhitungan manualnya tampak pada tabel 14. -1] ]. Contoh 14.1 dengan pola masukan seperti pada contoh 14.240 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Perhatikan bahwa untuk menghitung keluaran jaringan.b {1} = [-4]. Vektor a merupakan keluaran jaringan untuk p1 hingga p4 dengan menggunakan bobot dan bias masing-masing = [2 3] dan [-4].1). Fungsi aktivasi yang dipakai dalam ADALINE adalah fungsi identitas. -1] [-1 . net.

sehingga parameter Pi dan Ai pada perintah sim dikosongkan.Pf.Af. akan diperoleh hasil sebagai berikut : >> [a.[].4 = -9 -9 p4 = 1 Perintah sim (net. error = t – a (disimpan dalam variabel e) serta tingkat kesalahan (disimpan dalam variabel perf).2).t) Perhatikan bahwa dalam kasus ini tidak dibutuhkan delay.Pf.4 = -3 -3 p3 = 1 1 -1 (2) + -1 (3) .p.PEMROGRAMAN ADALINE DENGAN MATLAB 241 Tabel 14.e. Keluaran yang dihasilkan adalah keluaran jaringan (disimpan dalam variabel a). Jika ingin menampilkan besarnya error dan tingkat unjuk kerja yang terjadi. Akan tetapi dibutuhkan target keluaran (variabel t) untuk menghitung error. maka parameter perintah sim ditambah sebagai berikut : [a.perf] = sim(net. Jika perintah tersebut dijalankan.Af.perf] = sim(net.[].t) .p) di atas hanya menampilkan hasil keluaran jaringan (f(net) pada tabel 14.2 Pola Masukan 2 f (net) = net = pi w ji b net i 1 1 1 (2) + 1 (3) – 4 = 1 1 p1 = 1 1 1 (2) + -1 (3) – 4 = -5 -5 p2 = 1 1 -1 (2) + 1 (3) .[].p.e.[].

gW.LS] = learnwh(W.5 Modifikasi Bobot dan Bias Setelah menghitung keluaran jariangan. langkah berikutnya adalah mengubah bobot berdasarkan selisih antara keluaran jaringan dengan target yang diinginkan. digunakan perintah learnwh (singkatan dari learn Widrow-Hoff) yang formatnya adalah sebagai berikut : [dW. 14. Untuk mengubah bobot dan bias.N.Z.LP. hanya pola pertama saja yang dikenali dengan benar (ditunjukkan dengan a[1] = 0).A.LS) .T.gA.D.P.E.242 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab a = 1 -5 -3 -9 Pf = [] Af = [] e = 0 4 2 8 perf = 21 Dari 4 pola yang diberikan.

6 Pelatihan ADALINE Matlab menyediakan fasilitas pelatihan untuk memodifikasi bobot dalam ADALINE hingga memenuhi kriteria tertentu (misal jumlah epoch. dll).A.Q).T.LS) dengan W : matriks bobot (atau matriks bias) P : vektor masukan Z : vektor masukan dengan bobot N : vektor masukan net A : vektor keluaran T : vektor layar target E : vektor layar error gW : gradien bobot terhadap unjuk kerja gA : gradien keluaran terhadap unjuk kerja D : jarak neuron LP : parameter pemahaman LS : state pemahaman Untuk ADALINE sederhana. Formatnya mirip dengan Perceptron.p) – t) 14. parameter yang perlu diberikan hanyalah W.E. P dan E (yang didapat dari sim (net.PEMROGRAMAN ADALINE DENGAN MATLAB 243 [db. hanya saja error dihitung berdasarkan rata-rata kuadrat kesalahan terkecil (least mean square error = LMS) yang diperkenalkan oleh Widrow dan Hoff. error.LS] = learnwh(b.gW.gA. Oleh karenanya.N.Z.D. model ADALINE sering juga disebut model Widrow- Hoff atau model LMS Rata-rata kuadrat kesalahan (MSE) dihitung dengan rumus .LP.ones(1.

.3 Penyelesaian Pada contoh 14.4 Hitunglah MSE untuk fungsi logika “dan” pada contoh 14.p). Epoch 0/100.5 Hitunglah bobot untuk mengenali fungsi logika “dan” menggunakan bobot dan bias awal seperti contoh 14. MSE 29/0.3.p) TRAINB. t = [1 -1 –1 -1] dan keluaran jaringan = a = [1 -5 -3 -9] sehingga error = [0 4 2 8] 1 2 Maka MSE = 0 42 22 82 = 21 4 Contoh 14. diperoleh hasil : >> train (net.ak Contoh 14.3 ditambahkan perintah train (net.3 Penyelesaian Jika dalam contoh 14.244 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Q Q 1 1 2 MSE = ek2 tk ak dengan Q k 1 Q k 1 Q = jumlah pola yang dihitung tk = vektor target ak = vektor keluaran jaringan ek = tk .

Orang akan puas jika errornya cukup kecil dan dapat diabaikan. Epoch 25/100. Epoch 100/100. jumlah epoch yang tercapai lebih dahulu. Epoch 0/100. Epoch 50/100. TRAINB.255906/0. TRAINB.489239/0. Maximum epoch reached.2 Bobot hasil iterasi bisa ditampilkan dengan perintah disp . Untuk menyimpan perubahan bobot. MSE 2.p. TRAINB.00825362/0. MSE 0.PEMROGRAMAN ADALINE DENGAN MATLAB 245 TRAINB. MSE 3. dan error = 0. error = 0 tidak pernah tercapai. Maximum epoch reached. Epoch 25/100.600059/0.76669/0. TRAINB. maka digunakan statemen : >> net = train (net. Matlab akan menampilkan MSE pada epoch kelipatan 25. MSE 0. Grafik perubahan nilai MSE tampak pada gambar 14. Umumnya. Epoch 75/100.0635452/0.94513/0. MSE 0. TRAINB. MSE 21/0. Default perintah train pada ADALINE adalah jumlah epoch = 100.295468/0. MSE 0. MSE 0. Dalam kasus ini. TRAINB. TRAINB. MSE 0. TRAINB. Iterasi akan dihentikan apabila salah satunya tercapai. TRAINB. Epoch 100/100. Akan tetapi bobot setelah iterasi tidak dapat diperoleh. Epoch 50/100. Epoch 75/100.t) Hasilnya runningnya adalah sebagai berikut : TRAINB.

p) ans = 0.4 Keluaran jaringan setelah iterasi dilakukan dapat diketahui dengan perintah sim >> sim (net. MSE yang dihasilkan sama dengan MSE hasil perhitungan contoh 14.5084 -0.t).1}) 0.5759 -0.p.6265 . Pada epoch 0.5253 0.iw{1. bobot baru disimpan sebagai dasar iterasi berikutnya. Perbedaan disebabkan karena dalam perintah net = train (net.b{1}) -0.5422 >> disp (net.5590 Gambar 14.246 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> disp (net.2 Perhatikan perubahan nilai MSE yang terjadi.5422 -1.

Buatlah program untuk menguji apakah ADALINE mampu mengenali fungsi logika “dan” dengan 3 variabel 4.4241)2 ( 0.4578)2 0.62652 = 4 0. target biner (0 atau 1). Buatah program untuk mengenali fungsi logika “atau” dengan ADALINE.5 ? 2. Buatlah program untuk mengenali fungsi logika “XOR”.49162 ( 0. Ulangi contoh 14. Apakah ADALINE mampu mengenalinya ? .p) adalah : >> t .4578 0.2559 seperti yang ditampilkan pada MSE epoch 100 SOAL-SOAL LATIHAN 1.6265 1 Maka MSE = 0.PEMROGRAMAN ADALINE DENGAN MATLAB 247 Error yang terjadi = t – sim (net.p) ans = 0.4241 -0. tapi menggunakan masukan biner (masukan 1 atau 0).sim (net. Apakah jaringan mampu mengenali polanya ? Apakah bobot akhir yang diperoleh sama dengan contoh 14. Berapa bobot dan bias optimalnya ? 3.4916 -0.5.

1 Membentuk Jaringan 15.1. Hasil percobaan menunjukkan bahwa Backpropagation yang sudah dilatih dengan baik akan memberikan keluaran yang masuk akal jika diberi masukan yang serupa (tidak harus sama) dengan pola yang dipakai dalam pelatihan.1 Inisialisasi Jaringan Langkah pertama yang harus dilakukan untuk memprogram Backpropagation dengan Matlab adalah membuat inisialisasi jaringan. . Variasi terhadap model standar backpropagation dilakukan dengan mengganti algoritma penurunan gradien dengan metode optimisasi yang lain. Bab 15 PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB Backpropagation dibentuk dengan membuat generalisasi aturan pelatihan dalam model Widrow-Hoff dengan cara menambahkan layar tersembunyi. 15. Sifat generalisasi ini membuat pelatihan lebih efisien karena tidak perlu dilakukan pada semua data. Kata Backpropagation merujuk pada cara bagaimana gradien perubahan bobot dihitung. Standar Backpropagation menggunakan algoritma penurunan gradien (gradient descent).

TFN}. Defaultnya = traingdx BLF = fungsi perubahan bobot/bias.. f ( net ) = − 1 ... Perintah yang dipakai untuk membentuk jaringan adalah newff yang formatnya adalah sebagai berikut : net = newff(PR.SN].2.. Default = mse Beberapa fungsi aktivasi yang dipakai Matlab dalam pelatihan backpropagation adalah : 2 • tansig (sigmoid bipolar)..n).. default = learngdm PF = fungsi perhitungan error. BTF. . 1]. Fungsi sigmoid bipolar memiliki range [-1..2.2.PF) dengan net = jaringan Backpropagation yang terdiri dari n layar PR = matriks ordo Rx2 yang berisi nilai minimum dan maksimum R buah elemen masukannya Si (i=1..{TF1 TF2.n) = jumlah unit pada layar ke-i (i = 1.. Fungsi ini adalah 1 + e − net default yang dipakai.n) TFi (i=1...[S1 S2....n) = Fungsi aktivasi yang dipakai pada layar ke-i (i = 1. Default = tansig (sigmoid bipolar) BTF = fungsi pelatihan jaringan..2.. .250 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Parameter inisialisasi ini agak berbeda dengan Perceptron ataupun ADALINE. ..BLF..

Perubahan dilakukan dengan memperhatikan perubahan bobot pada iterasi sebelumnya. dalam Backpropagation. seperti pada ADALINE.1 : .1 Buatlah inisialisasi Backpropagation untuk melatih jaringan yang terdiri dari 2 masukan. perhitungan unjuk kerja dilakukan berdasarkan kuadrat rata-rata kesalahan (mse) Umumnya. Disamping itu laju pemahaman (learning rate = α ) bukan merupakan konstanta yang tetap. 1] • purelin (fungsi identitas) f ( net ) = net Pelatihan yang dilakukan dalam Matlab dapat menggunakan berbagai fungsi (penjelasan selengkapnya dapat dibaca pada bab 15. baru kemudian bobot diubah. tetapi dapat berubah-ubah selama iterasi. Dalam fungsi ini.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 251 1 • logsig (sigmoid biner) f ( net ) = . pelatihan Backpropagation dalam matlab dilakukan secara berkelompok (batch training). Hal ini sedikit berbeda dengan Perceptron atau ADALINE yang pelatihannya dapat menggunakan pelatihan berkelompok ataupun pelatihan per pola. Fungsi default yang dipakai oleh Matlab adalah traingdx. Semua pola dimasukkan dulu. Tujuannya adalah mempercepat pelatihan. hanya rangenya adalah [0. dan sebuah keluaran (sering dituliskan sebagai 2-3-1). Contoh 15. semua data masukan harus diletakkan dalam sebuah matriks. Dalam pelatihan berkelompok. sebuah layar tersembunyi yang terdiri dari 3 unit. Fungsi sigmoid biner 1 + e − net memiliki bentuk serupa dengan sigmoid bipolar.3). perubahan bobot dilakukan dengan menambahkan momentum. Data yang dipakai pelatihan tampak dalam tabel 15.

1 x1 x2 t -1 0 -1 -1 5 -1 2 0 1 2 5 1 Fungsi aktivasi dari unit masukan ke layar tersembunyi adalah sigmoid bipolar dan dari layar tersembunyi ke keluaran adalah identitas.IW.0 5].252 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Tabel 15. Penyelesaian Untuk pelatihan berkelompok.1. maka perintah Matlab yang dipakai adalah : >> p = [-1 -1 2 2 .LW dan net. 'purelin'}).2 Inisialisasi Bobot Setiap kali membentuk jaringan Backpropagation. [3. Akan tetapi jika diinginkan memberi bobot tertentu. net.1]. {'tansig'. 0 5 0 5] >> t = [-1 -1 1 1] >> net = newff ([-1 2. Bobot dan bias ini akan berubah setiap kali kita membentuk jaringan. Matlab akan memberi nilai bobot dan bias awal dengan bilangan acak kecil. kita bisa melakukannya dengan memberi nilai pada net. 15.b .

2 – 15.3 -0. net.4 -0. maka bobotnya disimpan dalam net.IW {1.3 z2 0.i} digunakan sebagai variabel untuk menyimpan bobot dari unit masukan layar i ke unit tersembunyi (atau unit keluaran) layar j.IW{j.IW dan net.1 1.9 z4 -0.2 0. Beri bobot dan bias tampak dalam tabel 15.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 253 Perhatikan perbedaan antara net.3 0.j} dipakai untuk menyimpan bobot dari unit di layar tersembunyi ke–j ke unit di layar tersembunyi ke-k.1 z3 1.2 Dari Unit Masukan Layar x1 x2 bias Tersembunyi 1 z1 -1. net. Sebagai contoh.5 0 -0. unit masukan hanya terhubung dengan layar tersembunyi paling bawah. net.2 Buatlah jaringan Backpropagation 2 – 4 – 3 – 1 (semua masukan adalah bilangan antara -1 dan 2) dengan semua fungsi aktivasi sigmoid bipolar.LW{k.7 0.5 .1}.4 Tabel 15.LW{2. Sebaliknya. Karena dalam Backpropagation.1} adalah penyimpan bobot dari layar tersembunyi paling bawah (layar tersembunyi ke-1) ke layar tersembunyi di atasnya (layar tersembunyi ke-2) Contoh 15.LW.

254 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Tabel 15.3

Dari Layar Tersembunyi 1

LT-2 z1 z2 z3 z4 bias

v1 0.4 0.3 -1 -0.3 0.5

v2 0.6 0 -0.6 -1.2 -1.3

v3 0.4 -0.3 0.2 0.9 -0.3

Tabel 15.4

Dari Layar Tersembunyi - 2

Keluaran z1 z2 z3 bias

y1 0.4 0.9 -0.1 -1

Penyelesaian
Arsitektur jaringan yang diinginkan tampak seperti gambar 15.1.

Pembentukan jaringan dalam Matlab adalah :
>> net = newff ([-1 2;-1 2], [4,3,1]);
Dengan perintah terebut maka akan terbentuk jaringan 2 – 4 - 3 – 1.
Fungsi aktivasi yang tidak ditulis menunjukkan bahwa semua fungsi
adalah sigmoid bipolar. Semua bobot diberi bilangan acak kecil. Untuk
mengetahui bobot tersebut, bisa ditampilkan net.IW dan net.LW nya
(perhatikan bahwa jika anda mencobanya, nilai bobot yang keluar
mungkin berbeda karena bobotnya berupa bilangan acak)
>> net.IW{1,1}
ans =

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 255

1.4088 1.2247
-1.3366 1.3030
1.7287 -0.7043
-0.0543 -1.8659

>> net.b{1}
ans =
-4.1167
0.9501
0.4212
-1.8399

>> net.LW{2,1}
ans =
0.8664 0.7870 -0.8727 1.1239
-0.2290 1.7469 -0.3905 -0.3716
0.3303 0.6816 1.2460 1.1263

>> net.b{2}
ans =
-1.8425
0
1.8425

>> net.LW{3,2}
ans =
-1.1025 -0.3669 0.7809

256 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

>> net.b{3}
ans =
0

y

0.4 0.9 -0.1 -1

1 v1 v2 v3

0.5 -1.3 0.6 0 -0.6 -1.2 0.9
0.4 0.3 -0.3 -1 0.2
-0.3 0.4 -0.3
1 z1 z2 z3 z4
0.5
0.7 -0.1 0 -0.9 1.3 -0.4
0.3 -1.3 0.5 -0.1 1.2

1 x1 x2

Gambar 15.1

Perhatikan bahwa perintah net.IW {2,1}, net.LW{3,1},
net.LW{1,2} akan menghasilkan matriks kosong (mengapa ?).
Sebaliknya perintah net.IW {2,2} akan menghasilkan kesalahan
karena masukan hanya pada satu layar saja.

Untuk merubah bobot, variabel net.IW dan net.LW diubah menjadi
seperti tabel 15.2 – 15.4.

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 257

>> net.IW{1,1} = [-1.3 0.7 ; 0.5 0 ; 1.3 -0.4 ;
-0.1 1.2];
>> net.b{1} = [0.3 ; -0.1 ; -0.9 ; 0.5];
>> net.LW{2,1} = [0.4 0.3 -1 -0.3 ; 0.6 0 -0.6
-1.2 ; 0.4 -0.3 0.2 0.9];
>> net.b{2} = [0.5 ; -1.3 ; -0.3];
>> net.LW{3,2} = [0.4 0.9 -0.1];
>> net.b{3} = [-1];

15.2 Simulasi Jaringan
Seperti pada Perceptron dan ADALINE, perintah sim digunakan di
Backpropagation untuk menghitung keluaran jaringan berdasarkan
arsitektur, pola masukan dan fungsi aktivasi yang dipakai.

Format perintahnya sama dengan perintah sim di ADALINE maupun
Perceptron (lihat bab 14.4)

Contoh 15.3
Hitunglah keluaran jaringan contoh 15.2 jika diberikan masukan x1 =
0.5 dan x2 = 1.3

Penyelesaian
Sebelum menghitung keluaran, lebih dahulu ditentukan pola
masukannya. Dengan menggunakan bobot dan bias awal seperti
contoh 15.2, diperoleh hasil keluaran y = -0.9188.
>> p = [0.5 ; 1.3];
>> net = newff ([-1 2;-1 2], [4,3,1]);

258 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

>> net.IW{1,1} = [-1.3 0.7 ; 0.5 0 ; 1.3 -0.4 ;
-0.1 1.2];
>> net.b{1} = [0.3 ; -0.1 ; -0.9 ; 0.5];
>> net.LW{2,1} = [0.4 0.3 -1 -0.3 ; 0.6 0 -0.6
-1.2 ; 0.4 -0.3 0.2 0.9];
>> net.b{2} = [0.5 ; -1.3 ; -0.3];
>> net.LW{3,2} = [0.4 0.9 -0.1];
>> net.b{3} = [-1];
>> y = sim (net,p)
y =
-0.9188

Untuk sekedar mengetahui hasil keluaran, hanya dibutuhkan pola
masukan saja. Untuk mengetahui besarnya error (dan unjuk kerjanya),
parameter masukan harus ditambah dengan target yang ingin dicapai.
Parameter keluaran ditambah dengan variabel untuk menyimpan
error (e) dan unjuk kerja (perf).

Misalkan target = t = 1, maka diperoleh keluaran dan error :
>> t = [1];
>> [y,Pf,Af,e,perf] = sim (net,p,[],[],t)
y =
-0.9188

Pf =
[]

Af =
[]

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 259

e =
1.9188

perf =
3.6818

15.3 Pelatihan Backpropagation
Matlab menyediakan berbagai variasi pelatihan Backpropagation.
Dalam sub bab ini akan dibahas pelatihan standar yang digunakan
untuk melatih jaringan. Dalam bab 15.4 dibahas beberapa modifikasi
pelatihan untuk mempercepat waktu pelatihan.

15.3.1 Pelatihan Kelompok
Pelatihan Backpropagation menggunakan metode pencarian titik
minimum untuk mencari bobot dengan error minimum. Dalam proses
pencarian ini dikenal 2 macam mode yaitu mode incremental dan
metode kelompok (batch).

Dalam mode incremental, bobot diubah setiap kali pola masukan
diberikan ke jaringan. Sebaliknya, dalam mode kelompok, bobot
diubah setelah semua pola masukan diberikan ke jaringan. Error (dan
suku perubahan bobot) yang terjadi dalam setiap pola masukan
dijumlahkan untuk menghasilkan bobot baru. Matlab menggunakan
mode pelatihan kelompok dalam iterasinya. Perubahan bobot
dilakukan per epoch.

Jika wk adalah vektor bobot pada iterasi ke-k. gk adalah gradien dan α k adalah laju pemahaman.5.5 x1 x2 t -1 0 -1 -1 5 -1 . yaitu dalam arah negatif gradiennya. Buatlah jaringan Backpropagation 2 – 3 – 1.4 Diketahui pasangan vektor masukan dan target seperti yang tampak pada tabel 15.260 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 15. maka metode penurunan gradien memodifikasi bobot dan bias menurut persamaan wk+1 = wk .α k gk Matlab menyediakan beberapa metode pencarian titik minimumnya. Bobot dan bias diubah pada arah dimana unjuk kerja fungsi menurun paling cepat. Gunakan fungsi aktivasi sigmoid bipolar pada layar tersembunyi dan fungsi identitas pada layar keluarannya. dan latihlah dengan metode penurunan tercepat.2 Pelatihan Backpropagation Untuk melatih jaringan digunakan perintah train yang formatnya sama seperti pada model Perceptron dan ADALINE.3. Tabel 15. Pencarian titik minimum dengan metode penurunan gradien dilakukan dengan memberikan parameter ‘traingd’ dalam parameter setelah fungsi aktivasi pada perintah newff Contoh 15. Pelatihan dilakukan untuk meminimumkan kuadrat kesalahan rata-rata (mse = mean square error) Metode paling sederhana untuk merubah bobot adalah metode penurunan gradien (gradient descent).

mungkin kita perlu melihat bobot dan bias yang dipakai sebagai inisialisasi (jika anda mencobanya.1} ans = 1. >> net = newff (minmax (p).0150 >> net. 0 5 0 5].6164 0. 'traingd').3257 -1.1]. >> t = [-1 -1 1 1].IW {1.5512 1.3721 . nilai minimum dan maksimum vektor masukan tidak perlu dituliskan satu persatu. >> net. Sebelum melatih. anda mungkin mendapatkan hasil yang berbeda karena bobot dan biasnya ditentukan secara acak).5227 -0. tapi cukup dengan menggunakan perintah minmax (p).3301 0. 'purelin'}.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 261 2 0 1 2 5 1 Penyelesaian >> p = [-1 -1 2 2 .b{1} ans = -2. Agar lebih efisien. Perhatikan bahwa parameter ‘traingd’ harus ditentukan untuk melatih dengan metode penurunan tercepat. {'tansig'. [3.

2442 . besarnya error mula-mula dapat ditentukan >> [y.b{2} ans = -0.6235 2.5791 >> net.2442 Pf = [] Af = [] e = 0.1028 -1.3908 >> net.[].262 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab -0.LW{2.6235 -1.perf] = sim (net.Af.1} ans = 0.Pf.p.6207 Dengan menggunakan perintah sim.4189 -0.1963 -0.1028 0.t) y = -1.[].1963 1.1422 -0.e.7131 1.

200376/1e-010 TRAINGD. MSE 0.34591/1e-010 TRAINGD. Gradient 0. Pada epoch ke 100 ini.0390335/0.9303 Berikutnya.0118106/0. performance goal was not met. Epoch 25/100.230021/0. Training dihentikan pada epoch ke 100 (default) meskipun unjuk kerja yang diinginkan (mse = 0) belum tercapai. Gradient 1.0065 Selain keterangan tentang perubahan error untuk tiap 25 epoch (defaultnya).53636/1e-010 TRAINGD. Matlab juga menampilkan grafik perubahan error seperti yang tampak pada gambar 15. MSE 1. Gradient 3. Gradient 0. Epoch 100/100.482155/1e-010 TRAINGD. MSE 0.00653981/0. Epoch 0/100.0981172/1e-010 TRAINGD.t) TRAINGD. MSE 0. mse = 0. MSE 0. Epoch 75/100. .p. Maximum epoch reached. untuk melatihnya digunakan perintah train >> net = train (net. Epoch 50/100.93032/0.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 263 perf = 1. Gradient 0.2.

1} ans = 1.7387 1.0066 >> net. maupun errornya dapat ditampilkan >> net.0323 -1.2 Bobot dan bias hasil pelatihan.4012 1.b{1} ans = -2.IW {1.2595 -0.264 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gambar 15.5762 .3938 0.6192 0.7478 0.

0831 >> net.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 265 >> net.Af.perf] = sim (net.LW{2.t) y = -0.0681 0.9319 -1.5655 -0.Pf.0821 >> [y.4887 0.9454 Pf = [] Af = [] e = -0.e.0065 Perhatikan besarnya penurunan error (dan unjuk kerja) yang terjadi sebelum dan sesudah pelatihan.0546 perf = 0. Tentu saja kita tidak harus mencari bobot awal maupun errornya.[].0337 0.p.1319 0.b{2} ans = -0.9663 0.[].1} ans = 0. Setelah jaringan terbentuk melalui .1319 0.

time Perhatikan kembali contoh 15.trainParam.trainParam.trainParam. Defaultnya = 0. • net. Iterasi akan berhenti jika mse < batas yang ditentukan dalam net.trainParam. Akan tetapi jika α terlalu besar. • net.goal : dipakai untuk menentukan batas nilai mse agar iterasi dihentikan.4.01.266 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab perintah newff.epochs : dipakai untuk menentukan jumlah epoch maksimum pelatihan (default : 100 epochs). didapat : .trainParam. pelatihan akan dihentikan jika lamanya melebihi nilai yang ditentukan dari net.trainParam. kita bisa langsung menggunakan perintah train untuk melatih dan melihat bobot akhirnya.lr : dipakai untuk menentukan laju pemahaman ( α = learning rate).0001.1 dan merubah mse = 0. Jika kita memperbesar laju pemahaman menjadi 0.0001). semakin cepat pula proses pelatihan. Semakin besar nilai α .time : dipakai untuk membatasi lama pelatihan (dalam detik).epochs • net. Untuk itu orang cukup puas jika msenya cukup kecil (misal 0. Umumnya pelatihan dengan Backpropagation tidak akan menghasilkan mse = 0 (apalagi jika data pelatihannya banyak). Dengan memberi nilai yang kita inginkan pada parameter- parameter tersebut kita dapat memperoleh hasil yang lebih optimal.show : dipakai untuk menampilkan frekuensi perubahan mse (default : setiap 25 epoch) • net. Ada beberapa parameter pelatihan dapat kita atur sebelum pelatihan dilakukan. maka algoritma menjadi tidak stabil dan mencapai titik minimum lokal.goal atau jumlah epoch mencapai batas yang ditentukan dalam net.trainParam. • net.trainParam.

Gradient 0.27134/1e-010 TRAINGD. MSE 2. terlebih dahulu gunakan perintah init (net) untuk menginisialisasi semua bobot dan bias dengan bilangan acak baru.0001 dicapai pada epoch 47.40703e-005/0.trainParam.0001.t) TRAINGD. MSE 0.0001.4 dengan menggunakan α = 0. MSE 9. pelatihan menjadi semakin cepat. Jika ingin mencoba dengan parameter lain. {'tansig'. Penyelesaian Setelah menuliskan perintah seperti pada contoh 15.goal = 0. Performance goal met. Epoch 47/200. 0 5 0 5]. tapi justru akan meningkat. Gradient 3. MSE = 0. >> t = [-1 -1 1 1].9. Epoch 25/200.0001. >> net. maka algoritma menjadi tidak stabil.27506/0.00286797/0.0001. >> net = train (net.068118/1e-010 TRAINGD.1]. 'purelin'}. 'traingd'). MSE tidak menurun.5 Ulangi contoh 15. Akan tetapi jika laju pemahaman terlalu besar. Gradient 0.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 267 >> p = [-1 -1 2 2 . >> net.trainParam. Epoch 0/200. Tampak bahwa dengan menambah laju pemahaman.4.p. [3. berikutnya jaringan perlu diinisialisasi untuk memperoleh bobot baru (acak) . >> net = newff (minmax (p). Contoh 15.1.lr = 0.011495/1e-010 TRAINGD.

Epoch 100/200. Gradient 1. >> net = train (net.0001. Gradient 8.56407e+021/1e-010 TRAINGD.29621e+017/0.9. MSE 2. Epoch 200/200. Gradient 1. MSE 2. Gradient 1. Epoch 150/200. Hasil menunjukkan bahwa α = 0. Epoch 25/200. Epoch 125/200.9 tidak akan membuat iterasi konvergen. Epoch 50/200.0001. MSE 1.0001.268 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> net = init (net). Gradient 1.0001. Pembaca dapat mencoba-coba dengan laju pemahaman (dan parameter) lain untuk melihat bagaimana perubahannya terhadap lama pelatihan .9955e+047/1e-010 TRAINGD. mse tidak menurun tapi justru meningkat.0001.lr = 0.96454e+199/0.44312e+087/1e-010 TRAINGD. MSE 0.0001.05306e+061/1e-010 TRAINGD. MSE 1. Epoch 75/200.7024/1e-010 TRAINGD.0001.trainParam. Ini berarti jaringan tidak mengenali pola. Gradient 6.47555e+042/0. Maximum epoch reached.16324e+173/0.68421e+034/1e-010 TRAINGD.40523e+094/0. Gradient 1.t) TRAINGD. Gradient 7.35535e+009/1e-010 TRAINGD. performance goal was not met. MSE 4.0001.0001. MSE 8.13335e+068/0.57853e+147/0.15187e+121/0. Epoch 175/200. Gradient 1. >> net. MSE 6.68939e+100/1e-010 TRAINGD. MSE 2. Epoch 0/200.p.711565/0.23276e+074/1e-010 TRAINGD.

Beberapa modifikasi dilakukan terhadap standar backpropagation dengan cara mengganti fungsi pelatihannya.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 269 15.4.1 Metode Penurunan Gradien dengan Momentum (traingdm) Meskipun metodenya paling sederhana. . modifikasi dapat dikelompokkan dalam 2 kategori. dll. Secara umum. Berikutnya barulah dibahas tentang beberapa metode yang masuk dalam kategori kedua. Dengan demikian kemungkinan terperangkap ke titik minimum lokal dapat dihindari. quasi Newton. Dengan momentum.4 Mempercepat Pelatihan Backpropagation Metode standar Backpropagation seringkali terlalu lambat untuk keperluan praktis. Perubahan bobot saat ini dilakukan dengan memperhitungkan juga perubahan bobot pada epoch sebelumnya. Dalam subbab berikut ini dibicarakan dahulu tentang beberapa modifikasi yang masuk dalam kategori pertama (Backpropagation dengan momentum. Beberapa metode yang dipakai sebagai modifikasi adalah metode gradien conjugate. Kategori kedua adalah menggunakan metode optimisasi numerik selain penurunan tercepat. 15. Ini terjadi karena kadang-kadang arah penurunan tercepat bukanlah arah yang tepat untuk mencapai titik minimumnya globalnya. dan Backpropagation resilient). tapi metode penurunan gradien sangat lambat dalam kecepatan proses iterasinya. Kategori pertama adalah metode yang menggunakan teknik heuristik yang dikembangkan dari metode penurunan tercepat yang dipakai dalam standar backpropagation. Modifikasi metode penurunan tercepat dilakukan dengan menambahkan momentum. perubahan bobot tidak hanya didasarkan atas error yang terjadi pada epoch pada waktu itu. variabel laju pemahaman.

MSE 0.p). hanya fungsi pelatihannya diganti dengan traingdm. >> p = [-1 -1 2 2 . 0 5 0 5].1].9).84339/1e-010 TRAINGDM.4 jika pelatihan dilakukan dengan menggunakan metode penurunan tercepat dengan momentum. Epoch 25/100.2) Contoh 15. pelatihan backpropagation dengan menggunakan metode penurunan gradien dengan momentum dilakukan dengan mendefinisikan fungsi pelatihan ‘traingdm’ dalam pembentukan jaringannya. Epoch 0/100.trainParam. Dalam matlab.0841663/0. Faktor momentum = 0 berarti perubahan bobot hanya dilakukan berdasarkan error saat ini (penurunan gradien murni).4.1 pada net. MSE 0.270 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Besarnya efek perubahan bobot terdahulu (disebut faktor momentum) bisa diatur dengan suatu bilangan antara 0 dan 1.484221/0. Besarnya faktor momentum dilakukan dengan memberi nilai antara 0 . [3.6 Ulangi contoh 15. >> t = [-1 -1 1 1]. Penyelesaian Perintah-perintahnya sama seperti contoh 15. Gradient 2.694831/1e-010 .3. 'traingdm'). 'purelin'}. Jika sebelumnya semua perintah contoh 15. Parameter lain yang dapat diatur dalam traingdm sama dengan traingd (lihat bab 15. anda tinggal menginisialisasi bobot (perintah init) dan mengganti fungsi pelatihan perintah newff. TRAINGDM. {'tansig'. >> net = train (net.mc (default = 0. Gradient 0. >> net = newff (minmax (p).4 sudah dijalankan.

Maximum epoch reached. Epoch 0/100. performance goal was not met. Jika faktor momentum diubah menjadi 0. Gradient 0. Epoch 100/100. MSE 0.00519345/0. TRAINGDM.5.0820685/1e-010 TRAINGDM. Epoch 25/100. >> net = train (net. Gradient 0. Gradient 3.trainParam.150641/1e-010 TRAINGDM. Gradient 0.00331673/0. MSE 0. tapi masih belum mencapai target yang diinginkan.235314/0. Epoch 50/100.283103/1e-010 TRAINGDM. Maximum epoch reached. performance goal was not met. Gradient 0.0507367/0. MSE 0.22603/1e-010 TRAINGDM. diperoleh hasil : >> net = init (net). Gradient 1.4 yang pada epoch ke 100 memiliki mse = 0. Epoch 50/100. Gradient 0. Epoch 75/100. . MSE 0.37713/1e-010 TRAINGDM. Gradient 0.251568/1e-010 TRAINGDM.0033 (bandingkan dengan contoh 15.48738/0.mc = 0. >> net.5. Epoch 75/100.140007/1e-010 TRAINGDM.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 271 TRAINGDM. mse masih = 0. Meskipun lebih cepat dibandingkan tanpa momentum.022174/0. MSE 0.00750853/0. MSE 0.0146894/0. MSE 1. MSE 0. Pada epoch ke 100.515795/1e-010 TRAINGDM.0065).p). Epoch 100/100.

Laju pemahaman yang terlalu besar maupun terlalu kecil akan menyebabkan pelatihan menjadi lambat. Pelatihan akan lebih cepat apabila laju pemahaman dapat diubah-ubah besarnya selama proses pelatihan. Dalam Matlab. Penggunaan laju pemahaman juga bisa dikombinasikan dengan menambahkan faktor momentum seperti bab 15.4 (toleransi 10-5) jika pelatihan dilakukan dengan menggunakan metode penurunan tercepat dengan variabel laju pemahaman. metode penurunan tercepat dengan variabel laju pemahaman yang ditambah dengan momentum .7 Ulangi contoh 15. Jika sebaliknya.1. laju pemahaman berupa suatu konstanta yang nilainya tetap selama iterasi. unjuk kerja algoritma sangat dipengaruhi oleh besarnya laju pemahaman yang dipakai. Jika error sekarang lebih besar dibandingkan error sebelumnya. sulit untuk menentukan besarnya laju pemahanan yang paling optimal sebelum pelatihan dilakukan. Contoh 15. Dengan demikian laju pemahaman dapat dibuat sebesar-besarnya dengan tetap mempertahankan kestabilan proses. Fungsi pelatihan yang dipakai di Matlab adalah ‘traingdx’. maka laju pemahaman diturunkan. maka laju pemahaman diperbesar. Akibatnya.272 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab 15.4.4.2 Variabel Laju Pemahaman (traingda. Secara praktis. penggunaan variabel laju pemahaman dilakukan dengan menggunakan ‘traingda’ pada parameter fungsi pelatihan newff. traingdx) Dalam standar Backpropagation. Fungsi pelatihan ini memiliki kecepatan pelatihan yang tinggi sehingga dipakai sebagai default dalam pelatihan Backpropagation di Matlab.

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 273

Penyelesaian
a. >> p = [-1 -1 2 2 ; 0 5 0 5];
>> t = [-1 -1 1 1];
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'traingda');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINGDA, Epoch 0/100, MSE 1.43535/1e-005,
Gradient 3.17068/1e-006
TRAINGDA, Epoch 25/100, MSE 0.0656913/1e-005,
Gradient 0.559132/1e-006
TRAINGDA, Epoch 50/100, MSE 0.00570113/1e-005,
Gradient 0.0709822/1e-006
TRAINGDA, Epoch 75/100, MSE 3.52108e-005/1e-005,
Gradient 0.00555578/1e-006
TRAINGDA, Epoch 79/100, MSE 6.9582e-006/1e-005,
Gradient 0.00246968/1e-006
TRAINGDA, Performance goal met.

Tampak bahwa iterasi dihentikan pada epoch ke 79 karena mse = 6.9
10-6 yang lebih kecil dari batas toleransi yang ditetapkan (10-5).
Grafiknya tampak pada gambar 15.3. MSE yang diperoleh ini jauh
lebih kecil dibandingkan dengan mse pelatihan contoh 15.4 dan 15.5.
Perhatikan bahwa jika dicoba lagi dengan bobot awal berbeda
(gunakan perintah init), maka hasil akan berbeda. Bahkan mungkin
hingga pada epoch ke 100, mse masih belum memenuhi kriteria yang
ditetapkan.

Bobot dan bias optimal dapat ditampilkan dengan menampilkan isi
net.IW, net.b dan net.LW

274 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Gambar 15.3

b. >> net = init (net);
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'traingdx');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINGDX, Epoch 0/100, MSE 0.431235/1e-005,
Gradient 1.66194/1e-006
TRAINGDX, Epoch 25/100, MSE 0.0499756/1e-005,
Gradient 0.388182/1e-006
TRAINGDX, Epoch 50/100, MSE 0.00301073/1e-005,
Gradient 0.0546024/1e-006
TRAINGDX, Epoch 75/100, MSE 8.68089e-005/1e-005,
Gradient 0.0160309/1e-006
TRAINGDX, Epoch 79/100, MSE 5.78179e-006/1e-005,
Gradient 0.00396851/1e-006
TRAINGDX, Performance goal met.

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 275

Tampak bahwa pada epoch ke 79 iterasi sudah dihentikan karena mse
sudah lebih kecil dari batas toleransi yang ditentukan. Grafik tampak
pada gambar 15.4. Pelatihan dengan ‘traingdx’ juga jauh lebih cepat
dibandingkan standar Backpropagation (‘traingd’)

Gambar 15.4

15.4.3 Resilient Backpropagation (trainrp)
Jaringan backpropagation umumnya menggunakan fungsi aktivasi
sigmoid. Fungsi sigmoid akan menerima masukan dari range tak
berhingga menjadi keluaran pada range [0,1]. Semakin jauh titik dari x
= 0, semakin kecil gradiennya. Pada titik yang cukup jauh dari x = 0,
gradiennya mendekati 0. Hal ini menimbulkan masalah pada waktu
menggunakan metode penurunan tercepat (yang iterasinya
didasarkan atas gradien). Gradien yang kecil menyebabkan perubahan
bobot juga kecil, meskipun masih jauh dari titik optimal.

Masalah ini diatasi dalam resilient Backpropagation dengan cara
membagi arah dan perubahan bobot menjadi 2 bagian yang berbeda.
Ketika menggunakan penurunan tercepat, yang diambil hanya
arahnya saja. Besarnya perubahan bobot dilakukan dengan cara lain.

276 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

Dalam Matlab, resilinet Backpropagation dilakukan dengan
menuliskan ‘trainrp’ pada fungsi pelatihannya.

Contoh 15.8
Ulangi contoh 15.4 jika pelatihan dilakukan dengan menggunakan
resilient Backpropagation dengan batas toleransi 10-5

Penyelesaian
>> net = init (net);
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'trainrp');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINRP, Epoch 0/100, MSE 0.208973/1e-005,
Gradient 0.925565/1e-006
TRAINRP, Epoch 17/100, MSE 5.20266e-006/1e-005,
Gradient 0.0048596/1e-006
TRAINRP, Performance goal met.

Gambar 15.5

PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 277

15.4.4 Algoritma Gradien Conjugate (traincgf,
traincgp, traincgb)
Dalam standar Backpropagation, bobot dimodifikasi pada arah
penurunan tercepat. Meskipun penurunan fungsi berjalan cepat, tapi
tidak menjamin akan konvergen dengan cepat. Dalam algoritma
gradien Conjugate, pencarian dilakukan sepanjang arah conjugate.
Dalam banyak kasus, pencarian ini lebih cepat. Ada berbagai metode
pencarian yang dilakukan berdasarkan prinsip gradien conjugate,
antara lain Fletcher-Reeves (‘traincgf’), Polak-Ribiere
(‘traincgp’), Powel Beale (‘traincgb’). Pembaca dapat membaca
rincian masing-masing metode dalam buku tentang optimisasi atau
riset operasi.

Contoh 15.9
Ulangi contoh 15.4 jika pelatihan dilakukan dengan menggunakan
gradien conjugate dengan batas toleransi 10-5

a. Metode Fletcher-Reeves

b. Metode Polak-Ribiere

c. Metode Powel Beale

Penyelesaian
a. >> net = init (net);
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'traincgf');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINCGF-srchcha, Epoch 0/100, MSE 0.372691/1e-
005, Gradient 1.88631/1e-006

278 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab

TRAINCGF-srchcha, Epoch 10/100, MSE 2.15502e-
006/1e-005, Gradient 0.00204469/1e-006
TRAINCGF, Performance goal met.

b. >> net = init (net);
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'traincgp');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINCGP-srchcha, Epoch 0/100, MSE 0.0229402/1e-
005, Gradient 0.345338/1e-006
TRAINCGP-srchcha, Epoch 18/100, MSE 3.16834e-
006/1e-005, Gradient 0.00186073/1e-006
TRAINCGP, Performance goal met.

c. >> net = init (net);
>> net = newff (minmax (p), [3,1], {'tansig',
'purelin'}, 'traincgb');
>> net.trainParam.goal = 1e-5;
>> net = train (net,p);
TRAINCGB-srchcha, Epoch 0/100, MSE 0.450901/1e-
005, Gradient 1.51573/1e-006
TRAINCGB-srchcha, Epoch 5/100, MSE 3.34351e-
006/1e-005, Gradient 0.00163859/1e-006
TRAINCGB, Performance goal met.

Hasil iterasi contoh 15.1-15.9 menunjukkan bahwa metode pelatihan
memegang peranan penting dalam kecepatan pelatihan. Modifikasi
metode standar Backpropagation terbukti mempercepat iterasi hingga

Demikian juga fungsi pelatihannya. Data yang dimasukkan adalah hasil transformasi data asli ke [0. >> net.256899/1e-006 TRAINGDX.epochs = 500. Epoch 0/500. >> net = train (net. Berdasarkan data bulanan selama 2 tahun tersebut dibentuk jaringan dengan 12 masukan dan 1 target..3 tentang peramalan penjualan produk makanan kaleng.trainParam. 'traingdx').817797/1e-005. Contoh 15. 0. Fungsi aktivasi yang dipakai bisa berupa sigmoid biner (logsig) karena semua data berada dalam range [0.trainParam.10 Selesaikanlah masalah peramalan contoh 7. >> net.show = 500. >> net. [2. {'logsig'.9].1].688449/1e-005.goal = 1e-5. Jumlah layar tersembunyi (dan jumlah unitnya) harus dicoba-coba. dimulai dari yang kecil (misal 2 unit). Misalkan dicoba dari default Matlab (traingdx). 'logsig'}. Epoch 50/500.1. TRAINGDX.p). Gradient 0.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 279 puluhan kali lebih cepat. Gradient 0. Akan tetapi perlu dicatat bahwa metode yang cepat dalam suatu kasus belumlah cepat untuk kasus/pola data yang lain. Pembaca dapat mencoba-coba metode-metode tersebut untuk berbagai kasus.3 (lihat bab 7 tentang teori Backpropagation) hingga toleransi 10-5 Penyelesaian Perhatikan kembali data contoh 7. MSE 0.trainParam.33988/1e-006 . 1]. Diperoleh hasil : >> net = newff (minmax (p). MSE 0.

Performance goal met. MSE 3.000299949/1e-005.6 Hasil percobaan dengan meningkatkan jumlah unit di layar tersembunyi (dengan fungsi traingdx) tampak pada tabel 15. Gambar 15.00866506/1e-006 TRAINGDX. Gradient 9. Gradient 2.00282492/1e-005.280 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab TRAINGDX. MSE 0. Gradient 0.13025e-005/1e-006 TRAINGDX.000942884/1e-006 TRAINGDX. MSE 9. Epoch 100/500. MSE 0. Epoch 150/500. Epoch 200/500.12551e-005/1e- 005.67183e-005/1e-006 TRAINGDX. Gradient 0. Epoch 226/500.68164e-006/1e- 005.6 Jaringan Jumlah epoch untuk mencapai toleransi 10-5 12 – 2 – 1 226 12 – 3 – 1 216 .6 Tabel 15.

000 epoch.000.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 281 12 – 4 – 1 223 12 – 5 – 1 214 12 – 6 – 1 210 Tampak bahwa penambahan jumlah unit di layar tersembunyi tidak akan mempercepat pelatihan secara signifikan. Tabel 15.7 menunjukkan perbandingan beberapa fungsi pelatihan penyelesaian contoh 15.0004 traingdm tidak selesai selama 30. mse = 0. Pada epoch ke 30. Pada epoch ke 30.000 epoch. Maka lebih baik dipakai jaringan kecil (12 – 2 – 1).0003 traingda 232 traingdx 226 trainrp 10 traincgf 2 traincgp 3 traincgb 3 .000. Tabel 15.7 Fungsi Jumlah epoch untuk mencapai Pelatihan toleransi 10-5 traingd tidak selesai selama 30.10 dengan jaringan 12 – 2 – 1. mse = 0. Terlihat besarnya perbedaan kecepatan diantara fungsi pelatihan yang berbeda.

637 8. Diketahui data nilai tukar US$ selama 14 hari terakhir (dari H-14 hingga H-1). b.672 (ribuan) Prediksilah nilai tukar US$ pada hari ini menggunakan Backpropagation dengan spesifikasi : a.475 8.610 8. .637 8.508 8. Hari H-14 H-13 H-12 H-11 H-10 H-9 H-8 Nilai Tukar 8.282 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab SOAL-SOAL LATIHAN 1. 1 unit keluaran dan sebuah layar tersembunyi yang terdiri dari 2 unit.491 8.620 8.624 8.521 8.625 8. Toleransi kesalahan = 10-5 d.512 8.590 (ribuan) Hari H-7 H-6 H-5 H-4 H-3 H-2 H-1 Nilai Tukar 8. Fungsi aktivasi yang dipakai pada layar keluaran adalah fungsi identitas (ini berarti data asli tidak perlu ditransformasikan lagi) c. Apa keuntungan dan kerugian penggunaan fungsi aktivasi identitas dibandingkan dengan fungsi aktivasi sigmoid ? 2. Epoch maksimum = 5000 Ulangilah percobaan anda beberapa kali untuk memperoleh iterasi dengan jumlah epoch terkecil.650 8. Jaringan terdiri dari 7 buah unit masukan.

traingda.PEMROGRAMAN BACKPROPAGATION DENGAN MATLAB 283 Ulangi soal #2 dengan perubahan : 3. catatlah jumlah epoch yang diperlukan. Fungsi mana yang menghasilkan jumlah epoch terbanyak (paling lama) ? jumlah epoch paling sedikit (paling cepat) ? 6. Penambahan jumlah unit di layar tersembunyi hingga 6 unit. traingdm. traincgp. Penggunaan fungsi pelatihan traingd. Apakah pelatihan bertambah cepat ? . Ulangi soal #2 tapi jaringan terdiri dari 4 unit masukan (layar tersembunyi dan unit keluaran tetap sama seperti soal #2). Untuk setiap penambahan unit. Penambahan layar tersembunyi (terdiri dari 2 unit tersembunyi). traincgb. traincgf. Apakah penambahan layar tersembunyi akan menurunkan jumlah epoch secara signifikan ? 5. trainrp. Apakah penambahan unit tersembunyi akan menurunkan jumlah epoch secara signifikan ? 4.

xn Gambar 16.1.. Keduanya merupakan jaringan tanpa supervisi. 16. Pengaturan mandiri (self organizing map) merupakan generalisasi dari jaringan kompetitif. y1 yk b1 w wk1 w1 n wkn 11 b2 1 x1 . Neuron akan berkompetisi untuk menjadi pemenang terhadap vektor masukan yang diberikan.1 Jaringan Kompetitif Arsitektur jaringan kompetitif tampak pada gambar 16. Arsitektur tersebut mirip dengan jaringan ADALINE. Terdapat bias yang terhubung ke setiap neuron keluaran. Bab 16 PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB Jaringan kompetitif (Competitive Network) dalam Matlab digunakan untuk mengelompokkan data sedemikian hingga data yang berdekatan satu sama lain akan berada pada kelompok yang sama. Bobot ke neuron pemenang akan diperbaiki pada iterasi berikutnya..1 .

S. Untuk lebih memudahkan dapat pula dipakai perintah vec2ind setelah perintah . B(i.01) CLR : Laju pemahaman Conscience (default = 0.IW {1. Dengan bertambahnya vektor masukan yang diberikan.CLR) dengan PR : Matriks ukuran Rx2 yang berisi nilai minimum dan maksimum masing-masing nilai vektor masukan S : Jumlah neuron target KLR : Laju pemahaman Kohonen (default = 0. perintah sim dipakai untuk menghitung keluaran jaringan yang berupa matriks B berordo sxn (s = jumlah neuron target dan n = jumlah vektor masukan). Pelatihan jaringan juga dilakukan dengan perintah train.286 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Dalam iterasinya.b {1}.001) Bobot awal yang dibentuk adalah titik tengah matriks PR Sama seperti model-model sebelumnya. Vektor- vektor masukan yang saling berdekatan akan membentuk sebuah kelompok Dalam Matlab. Ini berarti bahwa lama kelamaan vektor masukan akan terbagi menjadi beberapa kelompok. maka setiap neuron yang terdekat ke suatu kelompok neuron akan mengubah bobotnya kearah vektor masukan tersebut. jaringan kompetitif dibentuk dengan perintah newc yang formatnya adalah sebagai berikut : net = newc(PR.1} dan net. Setelah pelatihan selesai. Neuron yang bobotnya paling mendekati vektor masukan akan diperbaiki dan dibuat lebih dekat lagi.KLR. bobot dan bias masing- masing disimpan dalam net.j) = 1 menyatakan bahwa vektor masukan ke-j masuk dalam kelompok ke-i. Matlab menggunakan aturan Kohonen dalam mengubah bobot-bobotnya.

Untuk lebih jelasnya.6 0. perhatikan contoh 16.2 1 0.0196 0.5252 0.1987 0.4186 0.8462 0.0153 0.4 0.466 0.8 0.2026 0.4451 0.6721 0. x2) sebagai berikut : p= 0.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 287 sim untuk mengetahui secara langsung pengelompokan vektor.4289 0.1 Contoh 16.6822 0.8 1 x1 Gambar 16.6038 0.7095 0.1988 0.1897 0.2 .7468 0.1934 0.8381 0.2722 0.9318 0.2 0.3028 0.3795 0.5417 Titik-titik vektor tersebut dapat digambarkan seperti tampak pada gambar 16.6 x2 0.8318 0.1 Diketahui 14 buah vektor masukan (masing-masing terdiri dari 2 komponen x1.6813 0.4 0.2 0 0 0.3046 0.5028 0.

5000 0. 0 1].8318 0.5000 0.7468 0.0196 0.5000 0. x2) yang hendak dikelompokkan.5000 0.2722 0.4186 0.5000 0.6721 0.5252 0.7095 0. 0.5000 0.5914 .1} ans = 0.5000 0.466 0.4289 0.6813 0.1897 0. Untuk melihat bobot dan bias awalnya dapat digunakan perintah net.8381 0. Semua elemennya berada dalam range [0.9318 0.6822 0.5028 0.1988 0.4451 0.1934 0.5). Penyelesaian Mula-mula dimasukkan data vektor (x1.IW dan net.5000 >> net.2026 0.b >> net.3795 0.288 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gunakan jaringan kompetitif dengan Matlab untuk membagi 14 vektor tersebut menjadi maksimum 5 kelompok.3046 0.b {1} ans = 13.6038 0.5417 ] >> net = newc ([0 1 .5000 0.5914 13.5000 0.3028 .0153 0.8462 0.IW {1.1987 0. 1]. >> p = [ 0.

Maximum epoch reached. Epoch 75/100 TRAINR. yaitu interval [0.3) 1 (5. Perintah sim dipakai untuk mencari pengelompokan vektor >> b = sim (net. Epoch 100/100 TRAINR.5914 13.8) 1 (2.4) 1 (3.9) 1 . Epoch 50/100 TRAINR. 1]. Epoch 0/100 TRAINR.5914 Tampak bahwa semua bobot awalnya terletak pada titik tengah nilai minimum dan maksimum vektor masukan. Epoch 25/100 TRAINR. Berikutnya untuk melatih jaringan digunakan perintah train >> net = train (net.p) b = (5. TRAINR.5914 13.1) 1 (3.5) 1 (4.2) 1 (5.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 289 13.7) 1 (2.p).6) 1 (5.

Tampak bahwa semua vektor dapat dikelompokkan hanya dalam 4 kelompok.14) 1 Perhatikan cara pembacaan keluaran perintah sim. kita harus menggunakan perintah init (net) terlebih dahulu.2 adalah pengelompokkan vektor-vektor yang terdapat dalam gambar 16.13) 1 (5. Tanpa perintah .trainParam. Jika dilakukan hingga 500 epochs. Pelatihan dapat diperpanjang hingga jumlah epoch yang kita inginkan dengan mensetting nilai net.10) 1 (2. Untuk mempermudah pembacaan dapat pula digunakan perintah vec2ind.2) yang berarti bahwa vektor masukan ke-2 = (0.2722 . 0. >> ac = vec2ind(b) ac = Columns 1 through 10 5 3 5 5 3 4 5 2 2 4 Columns 11 through 14 2 3 5 5 Gambar 16. Sebagai contoh. diperoleh hasil pengelompokkan sebagai berikut (perhatikan bahwa untuk memulai lagi dari bobot awal.6038) masuk dalam kelompok ke-5. b(i.1) yang berarti bahwa vektor masukan pertama = (0.j) berarti vektor masukan ke-j masuk dalam kelompok ke-i.1988) masuk dalam kelompok ke-3.epochs. Demikian seterusnya hingga vektor masukan ke-14 yang masuk dalam kelompok ke-5. keluaran pada baris pertama adalah b (5. 0.1. Keluarannya berupa kelompok vektornya.11) 1 (3.290 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab (4. Keluaran baris kedua adalah b(3.12) 1 (5.1987 .

TRAINR. >> net. Epoch 50/500 TRAINR. Epoch 450/500 TRAINR. Epoch 350/500 TRAINR. Epoch 250/500 TRAINR. Epoch 275/500 TRAINR. Epoch 225/500 TRAINR. Epoch 375/500 TRAINR.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 291 init. Epoch 300/500 TRAINR. >> net = train (net.p). Epoch 75/500 TRAINR. Epoch 0/500 TRAINR. berarti bobot yang kita pakai adalah bobot terakhir yang kita dapatkan) >> net = init (net). Epoch 200/500 TRAINR.trainParam. Epoch 25/500 TRAINR. Epoch 475/500 . Epoch 425/500 TRAINR.epochs = 500. Epoch 125/500 TRAINR. Epoch 100/500 TRAINR. Epoch 175/500 TRAINR. Epoch 325/500 TRAINR. Epoch 150/500 TRAINR. Epoch 400/500 TRAINR.

14) 1 >> ac = vec2ind(b) ac = Columns 1 through 10 3 2 3 5 2 4 3 1 1 4 Columns 11 through 14 4 2 3 5 .13) 1 (5.p) b = (3.3) 1 (5.8) 1 (1.4) 1 (2.10) 1 (4.6) 1 (3.1) 1 (2. >> b = sim (net. Maximum epoch reached.11) 1 (2.292 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab TRAINR.9) 1 (4.12) 1 (3.7) 1 (1.5) 1 (4.2) 1 (3. Epoch 500/500 TRAINR.

2 0.8 0.4 0.8 0.3 merupakan hasil pengelompokkan jika pelatihan dilanjutkan hingga 500 epoch.6 0.4 0.2 0 0 0. Tampak bahwa vektor masukan terbagi dalam 5 kelompok (iterasi 100 epoch hanya menghasilkan 4 kelompok).2 1 0.4 0.2 0. 1 0.6 x2 0.6 0.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 293 Gambar 16.6 x2 0.8 1 x1 Gambar 16.8 1 x1 .4 0.2 0 0 0. Vektor-vektor yang masuk dalam kelompok 5 pada iterasi 100 epoch terpecah menjadi 2 bagian.

Matlab menyediakan fasilitas untuk mendefinisikan topologi jaringan yang berbeda-beda. neuron-neuron target disusun dalam array 2 dimensi. Topologi yang berbeda akan menghasilkan neuron sekitar neuron pemenang yang berbeda pula. bobot neuron yang diubah tidak hanya bobot garis yang terhubung ke neuron pemenang saja (seperi yang terjadi pada jaringan kompetitif). Pada jaringan kompetitif. hextop dan randtop. tapi juga bobot ke neuron-neuron di sekitarnya. neuron disusun dalam 2 dimensi secara acak. Dalam topologi randtop. 16. Ada 3 macam topologi yang dapat dibentuk yaitu gridtop. Dalam iterasinya. Neuron target diletakkan dalam 2 dimensi yang bentuk/topologinya dapat diatur.n) dengan pos = matriks ordo 2 x (mxn) yang menyatakan koordinat neuron . Ini berarti bobot yang diubah juga berbeda. Perintah untuk menentukan topologi jaringan adalah sebagai berikut pos = gridtop (m. neuron target tidak diletakkan dalam sebuah baris (seperti layaknya jaringan yang kita kenal terdahulu). neuron disusun dalam array 1 dimensi.1 Topologi Jaringan Dalam jaringan Kohonen.2 Pengaturan Mandiri Penaturan Mandiri (Self Organizing Feature Maps) merupakan perluasan dari jaringan kompetitif. Dalam topologi hextop. Jaringan ini sering juga disebut jaringan Kohonen.294 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Gambar 16. Dalam topologi gridtop. Jumlah neuron target sama dengan maksimum jumlah kelompok yang hendak kita buat.3 16. neuron disusun dalam bentuk heksagonal.2.

. neuron-2 pada posisi (1.5)..6) pos = Columns 1 through 7 0 1 2 3 4 0 1 0 0 0 0 0 1 1 Columns 8 through 14 2 3 4 0 1 2 3 1 1 1 2 2 2 2 Columns 15 through 21 4 0 1 2 3 4 0 2 3 3 3 3 3 4 Columns 22 through 28 1 2 3 4 0 1 2 4 4 4 4 5 5 5 Columns 29 through 30 3 4 5 5 Keluaran Matlab diatas menunjukkan koordinat 30 neuron yang dibentuk.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 295 Perintah gridtop dapat diganti dengan hextop atau randtop untuk menyatakan topologi heksagonal atau random Contoh 16. Untuk menggambarkannya dipakai perintah plotsom .2 Gambarkan 30 neuron topologi jaringan Kohonen (2 dimensi) dalam 5 baris dan 6 kolom Penyelesaian >> pos = gridtop (5.0).0) dan seterusnya . Neuron-1 berada pada posisi (0. hingga neuron 30 yang berada pada posisi (4.

8660 1.6) pos = Columns 1 through 6 0 1.8660 0.4 >> pos = hextop (5.296 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> plotsom (pos) Gambar 16.7321 1.0000 3.0000 0.5000 0 0 0 0 0 0.5000 4. Untuk membuat topologi heksagonal dan random.8660 Columns 7 through 12 1.4 adalah grafik yang dihasilkan. perintah gridtop diganti masing-masing dengan hextop dan randtop.0000 4.0000 2.5 dan 16.7321 .8660 0.8660 0.5000 0 1.5000 2. Topologinya tampak pada gambar 16.6 Gambar 16.5000 3.0000 0.

3301 4.4641 3.5000 3.7321 1.4641 4.6) pos = .PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 297 Columns 13 through 18 2.5981 3.7321 1.4641 3.5981 2.7321 2.3301 4.5000 0 1.0000 2.5981 Columns 19 through 24 3.5000 2.5000 4.5000 2.5000 4.5981 2.3301 4.0000 4.0000 3.5000 1.0000 3.3301 >> plotsom (pos) Gambar 16.5000 3.5000 1.5981 2.4641 Columns 25 through 30 4.5000 1.3301 4.0000 2.0000 0.5 >> pos = randtop (5.4641 3.0000 0.

2949 Columns 13 through 18 1.4445 0.0208 Columns 7 through 12 1.5986 2.6426 0.3869 2.3569 0 0.3176 3.5389 2.5800 1.2244 0.3665 0.2046 1.4401 1.4413 3.0492 1.0462 3.6802 3.3856 2.7570 2.1917 2.3545 1.4987 3.8354 1.5397 1.7713 2.0696 1.1021 0.298 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Columns 1 through 6 0.7788 3.5441 0 1.9950 0.6515 3.1125 0.9196 2.0808 1.1184 0.8715 2.9318 3.3745 1.3109 2.2981 2.8305 2.1029 0.1406 Columns 19 through 24 3.5628 2.2425 1.0034 3.4595 1.5662 3.2623 2.5737 3.0709 1.4283 1.3875 1.5236 >> plotsom (pos) .0135 1.7951 Columns 25 through 30 3.9000 2.

. tapi juga pada bobot garis neuron-neuron sekitarnya. boxdist.. xn) dan vektor y n = (y1. Jarak Euclidis (dist) adalah jarak yang antara 2 titik dalam posisi berbeda yang kita kenal sehari-hari. y2) menyatakan koordinat neuron yang dibentuk melalui topologi tertentu. y1) dan (x2. Misal (x1.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 299 Gambar 16.2. Ada 4 macam definisi jarak antara 2 neuron. . Apabila topologi neuron adalah gridtop. 16 buah neuron dengan boxdist = 2 (lihat gambar 16. Neuron sekitar neuron pemenang ditentukan berdasarkan jaraknya dari neuron pemenang (default jarak = 1). maka jarak Manhattan antara neuron x dan y adalah D = x1 y1 x2 y2 .. . . berarti hanya neuron-neuron yang berhubungan langsung dengan neuron pemenang saja yang diubah bobotnya Jarak Manhattan (mandist) antara vektor x (x1. perubahan bobot tidak hanya dilakukan pada bobot garis yang terhubung ke neuron pemenang saja.. Jarak kedua neuron didefinisikan sebagai 2 2 d x2 x1 y2 y1 Jarak persegi (boxdist) sebuah neuron adalah neuron-neuron di sekitarnya secara langsung.8). y2) adalah koordinat 2 buah neuron.7). x2) dan y = (y1. maka paling banyak terdapat 8 buah neuron dengan boxdist = 1. Jika dalam jaringan Kohonen menggunakan topologi gridtop dengan linkdist = 1 (lihat gambar 16.7). maka hanya ada 5 neuron di sekitarnya. linkdist dan mandist. y2.2 Jarak Antar Neuron Dalam jaringan Kohonen. yn) didefinisikan sebagai : sum (abs (x-y)) = xi yi i 1 Jika x = (x1.. x2. yaitu jarak Euclidis (dist). Jarak link (linkdist) dari sebuah neuron adalah jumlah langkah yang dibutuhkan untuk menuju neuron tersebut.6 16. Jika neuron pemenang berada di pinggir (seperti titik q pada gambar 16.

300 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab neuron sekitar p dengan jarak = 1 p neuron sekitar p dengan jarak = 2 q Gambar 16.7 neuron sekitar p dengan jarak = 1 p neuron sekitar p dengan jarak = 2 neuron sekitar q dengan jarak = 1 q Gambar 16. Hitunglah jarak antar neuron menggunakan  Jarak Euclidis (dist)  Boxdist  Linkdist .8 Contoh 16.3).3 Misalkan terdapat 6 buah neuron dalam topologi gridtop (2.

neuron-5 neuron-6 neuron-3 neuron-4 neuron-1 neuron-2 >> plotsom (pos) Gambar 16.0).3) pos = 0 1 0 1 0 1 0 0 1 1 2 2 Enam neuron yang terbentuk masing-masing memiliki koordinat : Neuron-1 = (0.. . dst hingga neuron 6 = (1. neuron-2 = (1.9 adalah topologi jaringan yang terbentuk dengan perintah plotsom.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 301  Jarak Manhattan (Mandist) Penyelesaian >> pos = gridtop (2.9 Jarak Euclidis .0).. .2) Gambar 16.

0000 0 Tampak bahwa jarak Euclidis antara neuron-1 dengan neuron 2 = 1.0000 2.302 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Jarak Euclidis antara 2 neuron dihitung dengan perintah dist. dst.4142 1.0000 2.2361 1.0000 1.2361 1. Neuron bersebelahan yang terletak pada sumbu horisontal/vertikal yang sama akan memiliki jarak = 1 >> dist (pos) ans = 0 1.4142 2.2)) = 2 2 0 1 0 2 = 2. Hasilnya berupa matriks jarak yang menunjukkan jarak antara 2 buah neuron.0000 1.0000 1.4142 0 1.0000 2.4142 1. Jarak persegi (boxdist) Jarak persegi diperoleh dengan perintah boxdist >> boxdist (pos) ans = 0 1 1 1 2 2 1 0 1 1 2 2 1 1 0 1 1 1 1 1 1 0 1 1 .0000 2.0000 1.4142 1.0000 0 1.2361.4142 0 1. Jarak suatu neuron dengan dirinya sendiri (terletak sepanjang diagonal utama) = 0.0000 0 1.0000 1.0000 1.0000 1.4142 1.2361 2.0000 1.0)) dengan neuron-6 (koordinat (1.0000 1. neuron-1 (koordinat (0.0000 1.2361 2.4142 1.0000 2.

Secara analog. Ini berarti jarak persegi antara neuron 3 dan semua titik lainnya = 1.0)) dengan neuron-4 (koordinat (1.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 303 2 2 1 1 0 1 2 2 1 1 1 0 Jarak persegi setiap neuron dengan dirinya sendiri = 0.1)) = 2 karena dibutuhkan 2 langkah dari neuron-1 untuk berpindah ke neuron-4. Jarak persegi neuron-1 (koordinat (0. Hal ini tampak pada jarak sepanjang diagonal utamanya. Neuron- neuron sekitar neuron-3 adalah semua neuron lainnya (lihat gambar 16. Dengan linkdist.0)) dengan neuron sekitarnya yaitu neuron-2. jarak link dari neuron-1 ke neuron-6 = 3 karena dibutuhkan 3 langkah dari neuron-1 untuk menuju neuron-6. Jarak link (linkdist) Jarak link diperoleh dengan perintah linkdist >> linkdist (pos) ans = 0 1 1 2 2 3 1 0 2 1 3 2 1 2 0 1 1 2 2 1 1 0 2 1 2 3 1 2 0 1 3 2 2 1 1 0 Hasilnya sedikit berbeda dengan boxdist.9) = 1. neuron-3 dan neuron-4 (lihat topologinya pada gambar 16.9). jarak neuron-1 dengan neuron-4 = 1 karena neuron-4 merupakan salah satu neuron yang berada di sekitar neuron-1 . Sebaliknya dengan boxdist. jarak neuron-1 (koordinat (0.

3 Pengelompokan Pola Jaringan Kohonen Langkah pertama implementasi jaringan Kohonen dengan Matlab adalah pendefinisian jaringan dengan perintah newsom yang formatnya adalah sebagai berikut : .0)) diperoleh dari rumus 0 1 0 0 = 1. 16.304 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Jarak Manhattan (mandist) Jarak Manhattan diperoleh dengan perintah mandist.0)) dengan neuron-6 (koordinat (1. namun semua matriks jarak tersebut merupakan matriks yang simetris.0)) dengan neuron-2 (koordinat (1. Jarak neuron-2 (koordinat (1. Jarak Manhattan antara neuron-1 (koordinat (0.2.2)) = 1 1 0 2 = 2 dan seterusnya >> mandist (pos) ans = 0 1 1 2 2 3 1 0 2 1 3 2 1 2 0 1 1 2 2 1 1 0 2 1 2 3 1 2 0 1 3 2 2 1 1 0 Perhatikan bahwa meskipun definisi jarak yang berbeda menghasilkan matriks jarak yang berbeda. Jarak neuron-i ke neuron-k = jarak neuron-k ke neuron-i.

D2.02 TND : Jarak sekitar neuron pemenang pada fase penyempurnaan. pengelompokan neuron dilakukan dengan perintah train seperti dalam model jaringan terdahulu Dalam pelatihan. Default = 1000 TLR : Laju pemahaman fase penyempurnaan (tuning)..TND) dengan PR : matriks Rx2 yang berisi nilai minimum dan maksimum R buah elemen masukan Di : Ukuran topologi layar (default = [5 8]) TFCN : Fungsi topologi (default = ‘hextop’) DFCN : Fungsi jarak (default = ‘linkdist’) OLR : Laju pemahaman fase pengaturan (ordering). Kemudian bobot neuron pemenang (dan neuron di sekitarnya) akan dimodifikasi sehingga semakin mendekati vektor masukan. Default = 0.DFCN.TLR. Default = 0.TFCN.9 OSTEPS : Jumlah iterasi langkah pengaturan. laju pemahaman akan diturunkan perlahan-lahan.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 305 net = newsom (PR. sedangkan fungsi jarak dapat diganti dengan ‘dist’ atau ‘mandist’. Default = 1 Fungsi topologi dapat diganti dengan ‘gridtop’ atau ‘randtop’.]. jarak antara vektor masukan dan bobot vektor neuron dihitung untuk menentukan neuron pemenang. . OSTEPS. Bobot neuron pemenang diubah sebanding dengan laju pemahaman. Selanjutnya.. sedangkan bobot neuron di sekitarnya diubah sebanding dengan setengah laju pemahamannya. Pada setiap iterasi.OLR.[D1..

jarak neuron sekitar tidak lagi mengalami penurunan. Akan tetapi laju pemahaman (TLR) tetap mengalami penurunan yang kecil.blue’ dan besarnya . Jarak neuron sekitar juga mengalami penurunan selama fase pengaturan. Dalam fase pengaturan. neuron- neuron akan mengatur dirinya sendiri dalam topologi yang sama seperti yang didefinisikan.9). 3]. Untuk melihat grafiknya dapat digunakan perintah plot yang hasilnya tampak pada gambar 16. Dalam fase penyempurnaan. Akibatnya. jumlah iterasi yang dilakukan selama fase penyempurnaan seharusnya jauh lebih besar dibandingkan dengan fase pengaturan. yaitu fase pengaturan (ordering phase) dan kemudian diikuti dengan fase penyempurnaan (tuning phase).4 Gunakan jaringan Kohonen untuk mengelompokkan 20 buah vektor masukan dalam dimensi 2 yang diberikan secara acak pada range [0. Fase pengaturan dilakukan maksimum sebanyak OSTEPS (default = 1000) danmenggunakan laju pemahaman awal seperti yang didefinisikan dalam OLR (default = 0. 1] dengan topologi hextop [2. Ini berarti perubahan bobot neuron berlangsung sangat lambat.306 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Ada 2 fase dalam pelatihan jaringan Kohonen.02).10 (jika anda mencobanya mungkin akan memperoleh grafik berbeda karena vektor tersebut dibentuk secara acak). Laju pemahaman ini akan menurun terus secara cepat hingga mencapai laju pemahaman fase penyempurnaan (TLR. Warna titik diatur lewat parameter ‘.20). Penyelesaian Mula-mula dibentuk 20 vektor 2 dimensi secara acak dalam matriks 2x20 >> p = rand (2. yang memiliki default = 0. Contoh 16.

5). 0 1].layers{1}.1}.11. Neuron awal jaringan ini memiliki bobot terkumpul di tengah-tengah vektor masukan. p(2. Hal ini dapat dilihat pada gambar 16. Agar grafik vektor masukan dan grafik bobot jaringan berada dalam satu bidang gambar.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 307 titik diatur lewat parameter 15 (semakin besar nilainya. Titik berukuran agak besar di tengah merupakan bobot awal jaringan. 0. 'markersize'. yaitu pada koordinat (0.distances) . net.:).iw{1. Untuk menggambarkannya digunakan perintah plotsom.blue'. 15) Gambar 16. [2 3]). digunakan perintah hold on dan hold off. >> hold on >> plotsom(net.5 . ukuran titiknya juga semakin besar) >> plot (p(1.10 Berikutnya didefinisikan jaringan Kohonen >> net = newsom ([0 1 .'.:).

Maximum epoch reached. >> ac = vec2ind(b) . Epoch 0/100 TRAINR. Epoch 75/100 TRAINR. Epoch 100/100 TRAINR. Epoch 50/100 TRAINR.308 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab >> hold off Berikutnya.p).p). jaringan dilatih dengan perintah train >> net = train (net. TRAINR. Gambar 16.11 Hasil pengelompokan neuron dapat dilihat dengan perintah >> b = sim (net. Epoch 25/100 TRAINR.

:).blue'.distances) >> hold off Gambar 16.PEMROGRAMAN JARINGAN KOHONEN DENGAN MATLAB 309 ac = Columns 1 through 10 5 1 4 5 2 1 6 3 4 2 Columns 11 through 20 1 3 1 1 4 1 5 6 5 4 Gambar 16.12 .layers{1}. p(2.iw{1.15) >> hold on >> plotsom(net.12 merupakan posisi neuron setelah pelatihan >> plot(p(1.:).1}. net. 'markersize'.'.

5 . Berapa bobot dan bias di akhir iterasi ? d. topologinya grid 4. Laju pemahaman awal = 0.310 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Pembaca dapat mencoba-coba hasil pelatihan dengan mengubah parameter-parameternya SOAL-SOAL LATIHAN 1.11 b. Topologinya heksagonal 3. Apakah terjadi perubahan pengelompokan ? Ulangi soal #1 dengan perubahan : 2. Berapa bobot dan bias awal ? c. Lanjutkan hingga 1000 iterasi.3)) dengan metode Kohonen 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 3 3 3 3 3 4 4 4 4 4 0 1 2 3 4 0 1 2 3 4 a. Tandailah pengelompokan yang terjadi. Buatlah jaringan dengan masukan 25 titik berikut ini ke dalam maksimum 9 kelompok (topologi rand (3. Buatlah grafik titik-titik awal seperti gambar 16. Iterasilah dengan Kohonen hingga 100 iterasi.

..G. 1988 Rumelhart. 1986 . The MIT Press. 1994 Jong. dan Applications. Master Thesis in Asian Institute of Technology. 1992 Kosko. J. Neural Networks for Water Demand Time Series Forecasting. Beale. Parallel Distributed Processing : Explorations in the Microstructure of Cognition. 1991 Demuth.. Neural Networks and Fuzzy Systems : A Dynamical Systems Approach to Machine Intelligence.E.L.. Fundamentals of Neural Networks. McCleland. D.. Daftar Pustaka Cubero.S. R. Explorations in Parallel Distributed Processing. Application of Back Propagation Method in Forecasting Problems. Prentice Hall. For Use with MATLAB.. 1992 McCleland.460. Prentice Hall. Granada.. a Comprehensive Foundation.E. Algorithms.L. The MathWorks. D. Neural Network Toolbox.. Hinton. Vol I.. Neural Networks.E. Architecture. S. H. The MIT Press.. J. Rumelhart. Prentice Hall. B. 2001 Fausett. Proceeding of International Workshop of Artificial Neural Network pp 453 . M. L. J. 1994 Haykin. G. Spain..

serta cara pembuatan programnya dengan Matlab. Berdasarkan masukan-target yang diberikan. JST mampu mengadaptasi dirinya sehingga memberikan keluaran yang tepat apabila nantinya diberikan masukan lain yang serupa. komponen-komponen JST. Kemampuan adaptasinya yang luar biasa ini menyebabkan JST dapat diterapkan ke berbagai bidang dalam dunia nyata seperti peramalan. Back Propagation. konsep dasar JST. Apa saja isi buku ini ? Buku ini membahas tentang JST dari dasar.Siang SINOPSIS Mengapa Jaringan Syaraf Tiruan ? Neural Network (Jaringan Syaraf Tiruan = JST) merupakan topik yang hangat dibicarakan dan mengundang banyak kekaguman dalam dasa warsa terakhir. pemodelan.5 J. dll Model-model JST : model sederhana seperti McCulloch-Pitts. Hal ini disebabkan karena kemampuan JST untuk meniru sifat sistem yang diinputkan. hingga model-model yang umum dipakai seperti Perceptron. Kohonen . Dasar-dasar JST : Dasar-dasar matematika yang dibutuhkan. Jaringan Hamming.J. Hebb. pengenalan pola dan lain-lain. ADALINE.JARINGAN SYARAF TIRUAN DAN PEMROGRAMANNYA DENGAN MATLAB 6. MADALINE.

. sederhana. Dilengkapi dengan penjelasan tentang dasar-dasar pemrograman dengan Matlab sehingga orang awam yang belum pernah menggunakan Matlab pun dapat dengan mudah mempelajarinya.2 Jaringan Syaraf Tiruan dan Pemrogramannya Dengan Matlab Pemrograman JST : pengenalan dan konsep dasar Matlab. Dilengkapi dengan pemrograman JST dengan Matlab. Juga disertai dengan contoh program. Soal dan contoh-contoh disertai dengan langkah-langkah penyelesaiannya secara rinci. Setiap perintah Matlab disertai dengan penjelasan secara rinci tentang format. Penjelasannya padat. buku ini juga cocok dipakai oleh dosen yang mengajar JST sebagai buku acuan karena selain materinya disusun berdasarkan silabus mata kuliah JST. Siapa yang harus membaca buku ini ? Buku ini cocok dibaca oleh mahasiswa yang hendak mempelajari JST dari dasar. mencari keluaran jaringan. sintaks dan fungsinya. juga berisi pemrogramannya sehingga dapat dipakai sebagai buku pegangan praktikum. Disamping itu. terstruktur dan dituliskan dalam bahasa yang mudah dipahami. pembahasan keluaran dan interpretasinya. dimulai dari konsep dasar JST hingga model-model yang sering dipakai. serta melatihnya. pemrograman model-model JST dengan Matlab Mengapa harus membaca buku ini ? Buku ini disusun secara sistematis dan terstruktur. Penggunaan Matlab untuk pemrograman JSTsangat cocok karena Matlab menyediakan toolbox yang dapat dengan mudah digunakan untuk membentuk arsitektur JST.

Related Interests