Pada pembahasan kali ini akan dijelaskan bagaimana membuat sistem dengan menggunakan neural network dan software MATLAB 2010,entah kenapa jika menggunakan pada MATLAB 2012 atau yang lainnya, hasilnya akan berbeda. sistem yang akan dibuat yaitu suatu sistem pengenalan angka yang mana terdapat angka kombinasi matrik kemudian dimasukkan ke dalam sistem neural net, hasilnya yaitu berupa angka biner dari kombinasi matrik yang diinputkan.
Prinsip
dan Sistem Kerja
Neural
network pada sistem kali ini untuk mendefinisikan suatu pola dari konfigurasi
yang telah ditentukan, jadi terdapat 10 pola untuk dijadikan training set
seperti Gambar 1, kemudian di rubah menjadi matriks sehingga akan membentuk
pola dengan nilai maksimal 1 dan minimal 0. Data input dimasukkan ke variabel F dan data
training dimasukkan ke variabel P, kemudian data training akan dimasukkan ke
rumus (Wp + b) sehingga akan menghasilkan data output, data output dimasukkan
beserta data input kemudian dilihat perbedaan atau errornya (MSE) jika MSE = 0
berarti sistem sudah bisa mendefinisikan input yang diolah bersama data training.
Berikut Gambar 1 adalah data training.
Kemudian
untuk data testing ada sedikit perbedaannya dari data training sehingga bisa
dilihat apakah sistem bisa mendefinisikan input dari data training ataukah
tidak, berikut adalah data untuk testing atau input seperti Gambar 2.
Gambar 2
Data untuk testing dan training adalah
kombinasi angka 1 dan 0 sehingga pada Gambar 1 dan 2 terdapat angka 1 dan kotak
kosong, mksud dari kotak kosong adalah nilai 0, namun tidak dituliskan di kotak
untuk mempermudah penglihatan dan pendefinisian.
Sistem kerja yang akan dilakukan
oleh neural network yaitu terdapat nilai input yang dimasukkan ke variabel F,
kemudian data training dimasukkan ke variabel P, sistem neural network akan
memproses kedua data tersebut sehingga akan dihasilkan nilai target, berikut
adalah nilai targetnya berupa nilai biner dan nilai desimal.
Target ke
|
Nilai Biner
|
Nilai Desimal
|
1
|
0001
|
1
|
2
|
0010
|
2
|
3
|
0011
|
3
|
4
|
0100
|
4
|
5
|
0101
|
5
|
6
|
0110
|
6
|
7
|
0111
|
7
|
8
|
1000
|
8
|
9
|
1001
|
9
|
0
|
0000
|
0
|
Pembahasan Program
MATLAB
%Contoh satu dari data input yaitu
matrik dari nilai 0
F = [...
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
];
T = [
0 0 0 0 0 0 0 1 1 0
0 0 0 1 1 1 1 0 0 0
0 1 1 0 0 1 1 0 0 0
1 0 1 0 1 0 1 0 1 0
];
%data training
P = [
0 0 1 0 1 0 1 0 0 0
0 1 1 0 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 1 0 0 0
0 1 0 0 1 1 0 1 1 1
0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 1 1 0 0 1 1 1 1 1
0 0 0 0 1 1 0 1 1 1
0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 1 1 1 0 0 0 1 1 1
0 0 0 0 1 1 0 0 0 1
0 0 1 1 1 1 0 1 1 0
1 0 1 0 1 1 1 1 1 0
0 1 1 0 1 1 0 1 1 0
0 0 0 1 0 0 0 0 1 1
0 0 0 0 0 1 0 1 0 1
0 0 0 1 0 0 0 0 0 0
1 1 0 1 0 0 1 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 1 1 1 1 0 1 1 1
0 0 0 1 0 1 0 1 1 1
0 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 0 1 1 1
0 1 1 0 1 0 0 0 0 0
0 1 1 0 1 1 1 1 1 1
1 1 1 0 1 1 0 1 1 1
0 1 1 1 1 1 0 1 1 1
0 1 0 0 0 0 0 0 0 0 ];
% jaringan perceptron 1
neuron
%net = newp(minmax(P),1);
net = newp(minmax(P),4);
%inisialisasi bobot
net = init(net)
%set perulangan sebanyak
net.adaptParam.passes = 21;
%b=randi(T,10,4);
%de=bi2de(b);
%melakukan adaptasi
[net,Y,E] = adapt(net,P ,T);
%mencari MSE
EmEsE = mse(E);
% tampilkan hasil
jumlahinput = net.inputs{1}.size
jumlahoutput =
net.outputs{1}.size
bobotinputakhir = net.IW{1,1}
bobotbias = net.b(1)
MSE = EmEsE
%konversi dari 4x1 menjadi
1x4
a = sim(net,F)'
%mengubah dari biner ke
desimal
a(1,1)*8+a(1,2)*4+a(1,3)*2+a(1,4)*1
Konversi untuk input data :
Jadi untuk input data dan data training haruslah diambil nilainya dari
matrik 7 x 5 kemudian diubah menjadi 35 x 1 sehingga pada contoh program matlab
terdapat input nilai 0 yang telah
dijadikan matriks 35 x 1
%input data
F = [...
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
];
Maka hasilnya
pada MATLAB saat di RUN / di proses akan seperti berikut ini.
jumlahinput =
35
jumlahoutput =
4
bobotinputakhir
=
Columns 1 through 11
-4
-1 -2 -2
-2 2 0
-2 -1 0
3
4
0 -2 3
6 -1 0
1 3 -3
1
1
3 1 2
-6 -6 0
-3 -1 11
-10
10
1 3 -1
6 -5 0
0 -2 -3
0
Columns 12 through 22
0
-2 -1
2 -5 2
1 2 1
0 -1
0
1 3 -7
5 4 2
-1 -1 0
3
0
-3 2 -5
2 -1 0
4 -9 3
-1
0
0 2 -2
-3 4 10
1 4 -12
-2
Columns 23 through 33
-4
-1 0 3
-2 -1 0
0 -4 -1
-1
2
3 2 1
1 -2 0
2 -1 0
-5
3
-1 -4 -3
6 -2 0
-4 3 3
-1
-3
-2 2 -6
-3 2
0 2 3
1 1
Columns 34 through 35
-1
-1
0
-2
0
4
-3
-5
bobotbias =
[4x1 double]
MSE =
0
a =
0
0 0 0
ans =
0
1.
input angka matrik = 1
F = [...
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
];
Hasil :
jumlahinput
=
35
jumlahoutput
=
4
bobotinputakhir
=
Columns 1 through 11
-4
-1 -2 -2
-2 2 0
-2 -1 0
3
4
0 -2 3
6 -1 0
1 3 -3
1
1
3 1 2
-6 -6 0
-3 -1 11
-10
10
1 3 -1
6 -5 0
0 -2 -3
0
Columns 12 through 22
0
-2 -1 2
-5 2 1
2 1 0
-1
0
1 3 -7
5 4 2
-1 -1 0
3
0
-3 2 -5
2 -1 0
4 -9 3
-1
0
0 2 -2
-3 4 10
1 4 -12
-2
Columns 23 through 33
-4
-1 0 3
-2 -1 0
0 -4 -1
-1
2
3 2 1
1 -2 0
2 -1 0
-5
3
-1 -4 -3
6 -2 0
-4 3 3
-1
-3
-2 2 -6
-3 2 0
2 3 1
1
Columns 34 through 35
-1
-1
0
-2
0
4
-3
-5
bobotbias
=
[4x1 double]
MSE
=
0
a
=
0
0 0 1
ans
=
1
2.
Input angka matrik = 2
F = [...
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1 ];
Hasil :
jumlahinput
=
35
jumlahoutput
=
4
bobotinputakhir
=
Columns 1 through 11
-4
-1 -2 -2
-2 2 0
-2 -1 0
3
4
0 -2 3
6 -1 0
1 3 -3
1
1
3 1 2
-6 -6 0
-3 -1 11
-10
10
1 3 -1
6 -5 0
0 -2 -3
0
Columns 12 through 22
0
-2 -1 2
-5 2 1
2 1 0
-1
0
1 3 -7
5 4 2
-1 -1 0
3
0
-3 2 -5
2 -1 0
4 -9 3
-1
0
0 2 -2
-3 4 10
1 4 -12
-2
Columns 23 through 33
-4
-1 0 3
-2 -1 0
0 -4 -1
-1
2
3 2 1
1 -2 0
2 -1 0
-5
3
-1 -4 -3
6 -2 0
-4 3 3
-1
-3
-2 2 -6
-3 2 0
2 3 1
1
Columns 34 through 35
-1
-1
0
-2
0
4
-3
-5
bobotbias
=
[4x1 double]
MSE
=
0
a
=
0
0 1 0
ans
=
2
Kesimpulan :
Bahwa dari simulasi untuk input angka matrik 0 sampai 9 terdapat 3 kesalahan dan 7 lainnya benar, ini dikarenakan data untuk training set kurang banyak dan kurang bervariasi sehingga jika kemiripan data input terjadi maka sistem neural net kurang bisa mengenalinya dan menghasilkan output yang salah, berikut hasilnya.
Bahwa dari simulasi untuk input angka matrik 0 sampai 9 terdapat 3 kesalahan dan 7 lainnya benar, ini dikarenakan data untuk training set kurang banyak dan kurang bervariasi sehingga jika kemiripan data input terjadi maka sistem neural net kurang bisa mengenalinya dan menghasilkan output yang salah, berikut hasilnya.
No comments:
Post a Comment