Translate

Neural Network Dengan MATLAB 2010

Neural Network Dengan MATLAB 2010

           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. 
                                                                         Gambar 1

              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.














No comments:

Post a Comment