aplikasi neural network backpropagation

7
WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICE June 13, 2015 1 Penerapan Neural Network Backpropagation Oleh : www.softscients.web.id Berkembangnya masalah nonlinear dalam dunia real dapat dipecahkan menggunakan teknik black box yaitu memandang suatu permasalahan hanya dengan melibatkan 2 buah komponen diketahui sebuah input dan outputnya sehingga tugas dari black box tersebut yaitu ‘menghubungkan’ antara keduanya menggunakan sebuah persamaan pendekataan – generalisasi yang disimpan dalam sebuah bobot. Biasanya para periset menggunakan neural network bisa disebut JST atau jaringan syaraf buatan. JST sendiri ada banyak jenisnya yaitu percepton, learning vector quantization, probabilistic neural network, feed forward backpropogation. Bagi pemula yang ingin menggunakan teknik JST bisa mempejari percepton dengan kasus linear atau bisa menggunakan kasus nonlinear dengan teknik hyperplane dalam kasus lain bisa menggunakan JST backpropagation untuk menangani kasus-kasus non linear. Penulis tidak menggunakan matlab untuk mengimplementasikan JST-Backpropagation tapi langsung menulis code menggunakan python (pustaka numpy dan matplotlib) untuk perhitungan matrix dan pembuatan grafik nya.

Upload: wwwsoftscientswebid

Post on 05-Jul-2015

398 views

Category:

Engineering


1 download

DESCRIPTION

aplikasi neural network backpropagation dengan java

TRANSCRIPT

Page 1: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

1

Penerapan Neural NetworkBackpropagation

Oleh : www.softscients.web.id

Berkembangnya masalah nonlinear dalam dunia real dapat dipecahkan menggunakan teknik black boxyaitu memandang suatu permasalahan hanya dengan melibatkan 2 buah komponen diketahui sebuahinput dan outputnya sehingga tugas dari black box tersebut yaitu ‘menghubungkan’ antara keduanyamenggunakan sebuah persamaan pendekataan – generalisasi yang disimpan dalam sebuah bobot.Biasanya para periset menggunakan neural network bisa disebut JST atau jaringan syaraf buatan. JSTsendiri ada banyak jenisnya yaitu percepton, learning vector quantization, probabilistic neural network,feed forward backpropogation.

Bagi pemula yang ingin menggunakan teknik JST bisa mempejari percepton dengan kasus linear ataubisa menggunakan kasus nonlinear dengan teknik hyperplane dalam kasus lain bisa menggunakan JSTbackpropagation untuk menangani kasus-kasus non linear.

Penulis tidak menggunakan matlab untuk mengimplementasikan JST-Backpropagation tapi langsungmenulis code menggunakan python (pustaka numpy dan matplotlib) untuk perhitungan matrix danpembuatan grafik nya.

Page 2: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

2

Penulis hanya menggunakan 1 layer hidden dengan jenis fungsi pembelajaran berupa sigmoid yaituinput dan output harus mempunyai kondisi nilai rentang 0 sampai 1 dengan konsep pengisian nilaibobot secara random. Kasus yang cocok berupa logika boolean seperti AND, OR (linear) dan XOR (nonlinear), untuk menguji kehandalan sebuah algoritma JST, maka kita akan menguji dengan kasus XOR(non linear ) seperti berikut

matrix input yaitu1 11 00 10 0

matrix target yaitu1001

jst = PustakaBackpro() #buat kelas JST

m_input = np.array([ [1,1], #bikin matrix input[1,0],[0,1],[0,0]

])m_target = np.array([ [1], #bikin matrix target

[0],[0],[1]

])node = 8 #jumlah nodealfa = 0.2 #nilai konstanta pembelajaranmax_iterasi = 10000 #jumlah maksimal epochmse = 0.01 #error yang ingin dicapaijst.setAturan(m_input,m_target,node,alfa,max_iterasi,mse) #terapkan aturanjst.pembelajaran() #lakukan proses trainingjst.simulasi() #lakukan proses simulasi

plt.figure('Hasil Perhitungan error untuk tiap epoch') #tampilkan nilai error tiap epochplt.plot(jst.error_epoch)plt.ylim(-1,1)plt.xlabel('epoch ke ')plt.ylabel('nilai error')plt.title('Error terkecil '+str(jst.error))plt.show()

Page 3: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

3

Penulis men set epoch maksimal 10ribu menghasilkan error tiap epoch berikut

Page 4: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

4

Hasilnya seperti diatas!

Dimana bila di round kan menghasilkan nilai

1001Sama dengan matrix target yaitu1001Sehingga JST dengan single layer hidden sudah cukup untuk menangani kasus non linear seperti XOR

Kasus KlasifikasiSelain kasus diatas, penulis juga menerapkan pada kasus klasifikasi berikut

Terlihat ada 3 kelas! Maka untuk menjembatani dengan konsep JST maka target klasifikasi 1,2,3 diubahmenjadi matrix biner yaitu0 0 0 untuk 11 0 0 untuk 2

Page 5: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

5

1 1 0 untuk 3Juga untuk input harus dinormalkan dulu menjadi rentang 0 sampai 1

jst = PustakaBackpro() #buat kelas JST

m_input = np.array([[0.5,0.571428571],[0.285714286,0.928571429],[0.571428571,0.5],[0.571428571,0.642857143],[0.214285714,0.857142857],[0.214285714,0.071428571],[0.357142857,0.214285714],[0.214285714,0.928571429],[0.642857143,0.571428571],[0.214285714,0.357142857],[0.571428571,0.571428571],[0.142857143,0.928571429],[0.071428571,0.214285714],[0.214285714,1]

])m_target = np.array([

[0,0,0],[1,0,0],[0,0,0],[0,0,0],[1,0,0],[1,1,0],[1,1,0],[1,0,0],[0,0,0],[1,1,0],[0,0,0],[1,0,0],[1,1,0],[1,0,0]

])node = 8 #jumlah nodealfa = 0.2 #nilai konstanta pembelajaranmax_iterasi = 10000 #jumlah maksimal epochmse = 0.01 #error yang ingin dicapaijst.setAturan(m_input,m_target,node,alfa,max_iterasi,mse) #terapkan aturanjst.pembelajaran() #lakukan proses trainingjst.simulasi() #lakukan proses simulasi

Page 6: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

6

Bila di run menghasilkan berikut

Page 7: aplikasi neural network backpropagation

WWW.SOFTSCIENTS.WEB.ID – IT OUTSOURCING SERVICEJune 13,

2015

7

Penulis sengaja melakukan sum(round()) terhadap matrix output hasi JST diatas! Agar lebih ringkas!01001221020121

Kamu bisa bandingkan hasilnya!Ternyata hasilnya sudah OK

Bagi pemula sangat disarankan untuk memahami konsep matrix, loop karena JST merupakan algoritmayang cukup kompleks, kamu bisa menggunakan matlab ataupun python seperti penulis gunakan agarproses penulisan code menjadi singkat daripada menggunakan bahasa imperativ seperti C/C++, C#, java

Kunjungi kami diwww.softscients.web.id