Materi fuzzy

[menuju akhir]


BAB 6
ADAPTIVE NEURO-FUZZY 

(Referensi : Buku Belajar Fuzzy Logic Menggunakan MATLAB
 Oleh Dr. Eng. Agus Naba) 

1. Tujuan  [kembali]

  • Mempelajari cara membuat ANFIS di Matlab.
  • Mempelajari cara membuat ANFIS dengan command lines dan ANFIS dengan non-default setting.
  • Mengetahui cara mengoperasikan ANFIS di Matlab.  
2. Alat dan Bahan [kembali]

 Alat yang digunakan adalah Software Matlab.




3. Dasar Teori [kembali]

6.6 ANFIS dengan command Line

Bagian ini akan mendemonstrasikan penggunaan fuzzy logic toolbox tipe ANFIS dengan menggunakan command line.

6.6.1 Contoh Masalah

Memprediksi deret chaotic

File tersebut sudah ada tersimpan didalam MATLAB dengan nama mgdata.dat.

  

6.6.2 Membentuk Training data dan Checking data

Setelah data diambil dan divisualisasikan, langkah selanjutnya ialah memisahkan data menjadi dua bagian, yakni data untuk training dan data untuk checking. Yang dimana data training adalah data yang digunakan untuk latihan pada model, dan data checking adalah data yang digunakan untuk mengetes hasil dari model tersebut.

 

6.6.3 Membangun sistem FIS dengan Genfis1

Langkah selanjutnya adalah menginisiasikan FIS dengan menggunakan command genfis1(training data), sytax yang digunakan adalah:

engan atribut – atributnya dari model yang dibangun adalah sebagai berikut:

 

Atribut – atribut diatas memberi informasi – informasi penting mengenai model fis yang dibangun, informasi yang terdapat didalamnya seperti jenis fungsi untuk OR, AND, implikasi, agregasi, dll. Atribut tersebut juga menampilkan jumlah input dan output serta tules pada sistem FIS.

MATLAB juga menyediakan cara untuk mengakses informasi mengenai membership function pada input – outputnya


 

 

Dan luaran (output) dari syntax diatas adalah sebagai berikut:

INPUT





 


OUTPUT



 



 

Jadi dari info diatas maka dapat dihitung total parameter dari input dan outputnya

Total parameter = (mfinput x parameter input + mfoutput x parameter output)

                          = (8 x  3 + 16 x 5) = ( 24 + 80)

                          = 104 parameter

Untuk plot dari membership function sendiri adalah sebagai berikut:




6.6.4 Proses training

Proses training menggunakan perintah

 

Parameter – parameter dari sistem yang sudah dilatih dengan yang belum dilatih dapat dilihat pada gambar dibawah ini:



6.7 ANFIS dengan Non-Default Setting

Fungsi anfis hanya ditujukan untuk melatih FIS tipe Sugeno dengan satu output. Sintaks lengkap untuk menjalankan fungsi anfis adalah: 


di mana trnData adalah data untuk training, sgnfis adalah FIS awal, Params1 adalah parameter-parameter untuk training, params2 adalah parameter untuk display selama training, chkData adalah checking data, dan method adalah metode yang dipakai melakukan tuning parameter-parameter fungsi keanggotaan. 

Sebenarnya anfis tetap bisa dijalankan minimal dengan 2 argumen, yaitu :



6.7.1 FIS Awal 

FIS tipe Sugeno bisa dibuat melalui FIS Editor atau Membership Function Editor atau ANFIS Editor atau dari command lines melalui perintah genfisl dengan sintaks lengkap: 


di mana data adalah data untuk training, numberMFs adalah jumlah fungsi keanggotaan variabel input, inputMFs adalah jenis-jenis fungsi keaggotaan variabel input, dan outputMF adalah jenis fungsi keanggotaan output: 'constant' (suatu konstanta) atau 'linear' (persamaan garis tinier). 

Contoh pemakaian command lines genfisl adalah sebagai berikut: 

 


Dalam contoh ini traindata terdiri dari 3 kolom, yang berarti 2 kolom pertama dianggap sebagai data input dan kolom ketiga adalah data output. Total data adalah 10 pasang data input-output. Semua pasang data dihasilkan dari fungsi bilangan random rand. Argumen ...,[3 7]char('pimf','trimf')... berarti input pertama diset dengan 3 fungsi keanggotaan bertipe 'pimf' dan input kedua dengan 7 fungsi keanggotaan bertipe 'trimf'.

6.7.2 Training Options 

Training options adalah opsi-opsi untuk proses training yang harus diberikan dalam argumen params1, mengacu pada sintaks lengkap fungsi anfis. Argumen params1 harus berupa vektor berikut: 



Jika params1 tidak diberikan atau diisi dengan array kosong [] maka params1 akan diset dengan nilai default berikut: 


params1=[10 0 0.01 0.9 1.1], 

 

 Training akan dihentikan oleh anfis jika errorTolerance tercapai atau jumlah iterasi numEpochs tercapai. Proses pelatihan tidak lain adalah proses tuning atau pengubahan parameter-parameter fungsi keanggotaan sebesar step-size. 

Misalkan sz adalah variabel step-size. Pada awal iterasi, sz akan diset sama dengan initialStepSize. Jika pengubahan parameter dengan sz ini menyebabkan training error mendekati errorTolerance maka sz akan diset dengan: 

 


Sebaliknya jika pengubahan parameter dengan sz menyebabkan training error membesar dan menjauh dari errorTolerance, maka sz akan diset dcngan: 




6.7.3 Display Options 

Display Options adalah opsi-opsi untuk memilih apa saja yang ingin ditampilkan selama pelatihan menggunakan fungsi anfis. Opsi-opsi ini adalah argumen params2, mengacu kepada sintaks lengkap fungsi anfis. Argumen params2 harus berupa vektor berikut: 

 


Masing-masing elemen params2 berharga 0 (false) atau 1 (true). Jika elemen diset 0 maka info tidak akan ditampilkan. Secara default, semua elemen diset 1. Jika argumen params2 diset dengan [] maka akan dianggap memilih harga default. 

6.7.4 Training Method 

Ada dua metode yang bisa dipakai dalam anfis untuk update parameter-parameter fungsi keanggotaan: backpropagation method (steepest descent method) dan hybrid method. Dengan metode-metode ini training error akan mengecil sampai paling tidak mencapai local minimal selama proses training. Sehingga, sernakin banyak parameter fungsi keanggotaan yang mendekati harga optimalnya maka proses pelatihan akan semakin cepat mencapai harga minimum dari training error. Untuk memilih metode backpropagation, set argumen method dengan 0. Untuk memilih metode hybrid, set argumen method dengan 1. 


4. Percobaan [kembali]
  • Mulai Matlab
  • Masukkan coding program 
  • Simpan coding program
  • Run coding pada Matlab
5. Video [kembali]   

Video 6.6



Video 6.7




6. Download File [kembali]

    Download HTML [link]
    Download file matlab fuzzy [link]

[menuju awal]

Tidak ada komentar:

Posting Komentar

Mata kuliah Elektronika Kelas A  Semester Genap Th.2021   DISUSUN OLEH :   MUHAMMAD RIZIEQ RIZALDI   2010952031     DO...