CNN Menggunakan Matlab

Convolutional Neural Network (CNN) merupakan model awal Deep Learning. Model ini menerapkan prinsip konvolusi dengan proses filtering bertahap sebelum diperkecil dengan teknik pooling. Manfaatnya untuk mengurangi resolusi citra input agar mudah diproses sistem.

2D_Convolution_Animation

Untuk mencoba CNN dengan MATLAB bisa menggunakan MATLAB online (lihat pos yang lalu). Salah satu kendala MATLAB adalah harga lisensi yang mahal. Namun untuk pemula ada baiknya karena MATLAB menyediakan sumber yang lengkap dalam fasilitas helpnya, misal link berikut. Dan sumber tersebut gratis. Jika sudah mengerti silahkan lanjut ke Python, C++ dan lain-lain yang open source.

Berikut video materi kuliah online tentang CNN. Semoga bermanfaat.

Making Standard Journal Plots using Matlab online

Making a plot in the journal needs special attention. If the plots are made badly, it will affect the results of our review. One way to make plots is with Excel, but the results are not good enough. Therefore, this post will try to share how to make a standard plot for publishing in a journal.

The following video shows how to plot with MATLAB either online if you don’t have a license, or with MATLAB desktop. The result is much better than plotting with excel.

Menjalankan MATLAB Gratis via Mathworks.com

MATLAB merupakan bahasa pemrograman yang dibuat oleh Mathworks, inc. Keunggulannya adalah kemampuan dalam mengelola matriks dan array. Sehingga bagi pemula lebih mudah mempelajarinya dibanding bahasa Python, apalagi bahasa C dan sejenisnya.

Salah satu kelemahan terbesarnya adalah lisensi yang cukup mahal. Versi terbaru sekitar 30-an juta rupiah. Jadi untuk industri pembuatan software kurang menguntungkan. Alhasil, bahasa ini untuk akademisi banyak digunakan tetapi di industri kurang diminati, jika dibandingkan dengan bahasa open source lainnya seperti Python atau Java.

Untungnya banyak cara untuk menggunakan aplikasi MATLAB tanpa membeli lisensi, tentu saja dengan cara yang legal, antara lain trial dan online. Karena trial hanya berlaku sebulan, maka cara kedua lebih layak, yaitu via online dengan mengakses www.mathworks.com.

Video berikut ini menjelaskan penggunaan MATLAB online untuk kasus Neural Networks. Di sini sedikit dijelaskan terlebih dahulu apa yang membedakan Artificial Intelligence dengan Computational Intelligence, atau yang dulu sering disebut Soft Computing.

Online Learning Using MATLAB

Today, it is undeniable that most machine learning researchers use Python, especially in industry. However, in research, due to its ease of use, MATLAB is still often used, especially those that are not too focused on coding.

One of the main problems of MATLAB users is, the license price is very expensive. Fortunately, registration to mathworks.com is still free and you can learn machine learning for free in the help and support section.

The data is already available in MATLAB, so it can be used as a reference/benchmarking. From a research perspective, MATLAB can be used as a fair ‘measurement’ and other researchers can also test it. So that the good or bad of a method does not depend on the machine or the quality of coding which may differ from one researcher to another.

The following video shows how to run Matlab online via mathworks.com. That’s all for this post, I hope it’s useful.

Transfer Learning with Matlab

Transfer learning is a term that is often encountered by deep learning practitioners. For those who do not understand, the following explanation may be useful.

In accordance with the ‘word’, transfer learning means using past learning to use new domains or cases. The benefit is that we don’t learn from scratch again. The easiest way is to freeze the pretrained model termed pretrained, and replaces the last layer of the old number of classes with the new model class.

The following video uses Matlab 2021a to demonstrate how transfer learning works, along with techniques for freezing and augmenting data with rotation and translation. The benefit of augmentation is to increase the amount of training data by changing ‘slightly’ from the initial training data.

Calculating the Number of Parameters of the Deep Learning Model

Deep learning (DL) is a development of the Neural Network where the number of layers is much more. In the past, neural networks were not able to handle many layers, now due to the development of methods and hardware, models with a large number of layers (even hundreds) can be done.

To improve DL performance, it is sometimes necessary to analyze the design model. In addition to accuracy, sometimes models with high performance in terms of speed are needed. To find out the performance, it is sometimes necessary to analyze floating point operations, namely the computation of computational complexity in DL. Check out the following video.

Currently, FLOPs are no longer relevant for the current hardware conditions that work in parallel. The calculation of processing time can be an alternative which of course will differ from one machine to another, but for comparison it does not matter (as long as running on the same machine). Another method is to calculate the number of parameters of a model. A large number of parameters certainly affects performance, so a system with a small number of parameters with an accuracy that is not much different is a topic that is now being studied a lot, especially those that can work for small computers or mobile phones. Here’s how to find out the number of parameters in Matlab. For Python the TensorFlow library automatically calculates the number.

Membuat Grafik untuk Jurnal

Grafik merupakan salah satu alat bantu menjelaskan dalam sebuah jurnal. Ada pribahasa “satu gambar lebih baik dari 1000 kata”. Tentu saja jika gambarnya ok dan mudah dimengerti. Oiya, grafik dalam jurnal masuk dalam kategori gambar (Figure). Oleh karena itu perlu membuat grafik sejelas mungkin.

Banyak mahasiswa menggunakan Excel untuk membuat grafik, padahal hasilnya kurang ok untuk jurnal, apalagi jurnal internasional. Salah satu aplikasi yang dapat digunakan untuk membuat grafik yang cukup baik adalah Matlab. Misalnya link berikut menunjukan jurnal Elsevier yang membolehkan submission berupa Matlab viewer.

Selain itu Matlab figure bisa juga terkoneksi ke Visio untuk memberi kustomisasi lebih lanjut, seting warna, ukuran dan jenis garis, dan lain-lain. Untuk lebih jelasnya silahkan lihat video berikut ini. Selamat mencoba.

Install Bluestacks di Windows 11

Bluestacks adalah aplikasi yang menjalankan handphone di laptop/PC. Aplikasi ini sangat membantu mahasiswa yang mengerjakan tugas akhir pemrograman mobile. Selain itu, karena gratis, mahasiswa tidak perlu membayar biaya lisensi. Cara menginstall pun mudah, tinggal klik saja.

Proses Instalasi

Masuk ke situs resminya: https://www.bluestacks.com/id/index.html lalu unduh aplikasi Bluestacks versi 5 atau 10 yang tersedia. Berikut ini versi 10 atau ditulis versi X.

Setelah file exe diunduh, jalankan program tersebut untuk langsung mengunduh file installer sebesar kira-kira ratusan Mb.

Setelah mengecek dan ekstrak file instaler yang telah diunduh, Bluestacks melanjutkan proses instalasi. Tunggu sampai selesai.

Memulai Aplikasi di Handphone

Pastikan Bluestacks X telah selesai diinstal. Silahkan jalankan aplikasi android anda di Laptop. Selamat mencoba. Berikut tampilan aplikasi matlab mobile lewat Bluestacks X atau Bluestacks versi 10. Untuk mulai menggunakan aplikasi tersebut sama dengan memulai HP baru yang tentu saja kita sudah mengerti karena hampir semua orang punya HP. Dimulai dari login gmail dan seterusnya. Berikut ini contoh aplikasi Matlab yang dijalankan di Bluestacks X. Sekian, semoga bermanfaat.

Menginstal Matlab Mobile yang Gratis

Matlab merupakan aplikasi yang banyak dimanfaatkan oleh peneliti. Salah satu bidang yang dapat memanfaatkan aplikasi tersebut adalah matematika. Matlab yang kepanjangannya MATrix LABoratory merupakan software berbayar. Namun untuk aplikasi mobile, ternyata untuk matematika tidak berbayar, tinggal menginstall lewat Playstore android di HP kita.

Jalankan aplikasi yang sudah diinstal. Persiapkan email, karena nanti jika tidak punya akun Anda harus register/create account.

Kalau di web, situs resmi Matlab adalah www.mathworks.com yang berisi informasi mengenai produk Matlab.

 

Silahkan tekan Create one! Jika belum punya account. Selanjutnya jika sudah membuat account baru, Anda bisa login dan memanfaatkan fasilitas Matlab mobile.

 

Jangan khawatir jika Anda diminta Upgrade, tekan saja Continue untuk menggunakan versi mobile. Biasanya untuk fungsi-fungsi dasar matematika tidak memerlukan upgrade. Berikut contoh perhitungan integral.

Simbol @ merupakan simbol fungsi. Contoh di atas jika ingin melihat hasil eksekusi integral dari nol hingga satu. Nah, jika Anda diminta mengintegralkan sebuah persamaan bagaimana?

Contoh di atas kita ingin mengintegralkan sebuah fungsi y = exp(5*x). Oiya, untuk perkalian jangan lupa bintang (*) ya. Pertama-tama Anda harus mendefinisikan x sebagai variabel dengan fungsi syms. Dengan fungsi int diperoleh integral exp(5*x)/5 sementara dengan fungsi diff diperoleh turunannya yakni 5*exp(*5*x). Selamat mencoba.

Big Data dengan Matlab

Tahun 2014 saya masih menjadi mahasiswa doktoral Information Management. Ada satu mata kuliah: Decision Support Technologies yang berisi bagaimana sistem informasi membantu pengambil keputusan, salah satunya dengan pemanfaatan Big Data.

Waktu itu saya satu grup dengan mhs dari Thailand dan Uzbekistan. Tugasnya cukup menarik, yaitu menggunakan data dari Kagel yang berisi jutaan record penulis artikel ilmiah yang masih kasar (raw). Targetnya adalah mengumpulkan penulis yang berserakan menjadi rapih, dimana tidak ada redundansi penulis. Terkadang ada nama penulis yang terbalik susunannya, tanpa nama tengah, dan lain-lain. Selain itu perlu deteksi untuk afiliasi dan bidang ilmunya. Yang tersulit adalah terkadang nama belakang perempuan yang mengikuti nama suami.

Kendala utamanya adalah data yang berukuran besar baik dari sisi kapasitas maupun jumlah record. Ketika dibuka dengan Excel, tidak seluruhnya terambil karena ada batas record Microsoft Excel yakni sebanyak 1,048,576 record dan 16,384 kolom. Terpaksa menggunakan sistem basis data, yang termudah adalah Microsoft Access. Waktu itu fasilitas Big Data pada Matlab masih minim, terpaksa ketika menjalankan pemrosesan paralel, secara bersamaan dibuka 3 Matlab sekaligus (lihat postingan saya tahun 2014 yang lalu).

Tipe Data Tall

Sekitar tahun 2016-an Matlab memperkenalkan tipe data Tall dalam menangani data berukuran besar. Prinsipnya adalah proses upload ke memory yang tidak langsung. Sebab kalau ketika impor data dengan cara langsung maka akibatnya memory akan habis, biasanya muncul pesan ‘out of memory‘. Oleh karena itu Matlab membolehkan mengupload dengan cara ‘mencicil’. Tentu saja untuk memperoleh hasil proses yang lengkap dengan bantuan fungsi gather.

Seperti biasa, cara mudah mempelajari Matlab adalah lewat fasilitas help-nya yang lengkap, maklum software ‘berbayar’. Lisensinya saat ini sekitar 34 jutaan, kalau hanya setahun sekitar 13 juta dan kurang dari 1 juta untuk pelajar. Pertama-tama ketik saja di Command Window: help tall. Pastikan muncul, jika tidak muncul, berarti Matlab Anda belum support fungsi Big Data tersebut. Walau mahal, tetapi Anda bisa mencoba sebulan secara gratis. Ok, jalankan saja help yang muncul.

Dengan fungsi datastore, pertama-tama sampel Big Data disiapkan. Di sini masih menggunakan Comma Separated Value (CSV). Perhatikan hasil proses fungsi tall yang berupa matriks berukuran Mx4. Nah, disini istilah M muncul yang berarti ‘beberapa’, karena yang ditarik belum seluruhnya.

Tampak paralel pool sudah terbentuk, dengan 4 worker. Di sini dibatasi 30 menit, jika idle/tidak digunakan akan di-shutdown. Terakhir, fungsi gather dibutuhkan untuk merekapitulasi hasil olah.

Tampak informasi pooling yang merupakan ciri khas pemrosesan paralel telah selesai dilakukan. Sekian, semoga informasi ini bermanfaat.

Coba Bikin Buku Lagi .. “Data Mining dengan Matlab & Python”

Buku berbeda dengan artikel jurnal dari sisi konten. Jika jurnal merupakan hasil penelitian terkini, buku sedikit tertinggal beberapa tahun. Namun biasanya buku lebih stabil keilmuwannya, alias sudah “established”. Biasanya buku digunakan sebagai sumber referensi untuk kasus tertentu karena formatnya yang rapi, tidak terlepas ke sana-sini seperti artikel ilmiah. Toh, jurnal pun sesungguhnya terbit setelah penelitian yang dilakukan beberapa tahun belakangan, jadi tidak baru-baru amat. Postingan ini sedikit memberi gambaran bagaimana membuat buku dengan mudah dan cepat.

Materi Kuliah

Waktu itu diminta ngajar mata kuliah “Data Mining” di kampus besar yang terletak di Pondok Kopi. Total ada 14 pertemuan. Kebetulan perkuliahan disertai dengan praktek di laboratorium. Dalam satu kali pertemuan saya buat satu bab, jadi total setelah perkuliahan selesai, jadilah buku sekitar 14 bab. Jadi ketika mengajari, langsung saja “capture” langkah-langkahnya. Tidak perlu ditulis dulu karena menulis membutuhkan waktu. Toh, dari hasil capture kita tahu apa yang harus ditulis nanti. Lihat postingan saya 7 tahun yang lalu tentang teknik ini.

Di akhir semester ada waktu kira-kira sebulan untuk membuat kata-kata yang mengalir. Ada sisi positifnya jika kita menulis materi kuliah. Ketika mempraktekan terkadang dapat diketahui apakah modul berjalan dengan baik. Terkadang ada saja hal-hal yang dijumpai siswa yang membuat praktik tidak berjalan. Hal ini penting untuk ditulis karena pembaca buku adalah pembelajar mandiri yang harus jelas dari “a” sampai “z” tanpa ada guru/tutor. Jika tidak berjalan, tentu saja mengecewakan pembaca. Namun toh, biasanya ada saja masalah dijumpai dan pembaca mengirim pertanyaan lewat email, terutama masalah kompatibilitas dengan laptopnya. Tapi biasanya berjalan dengan baik oleh pembaca. Kalaupun hanya memanfaatkan dari “help” tetap harus dicoba oleh penulis apakah bisa berjalan dengan baik atau perlu alat bantu lain. Beberapa penulis buku tidak menganjurkan memanfaatkan “help” karena untuk apa buat buku kalau di “help”-nya sudah ada.

Hasil Penelitian

Nah, yang ini agak sulit. Beberapa penerbit menolak membukukan hasil penelitian (skripsi, tesis, atau disertasi). Hal ini saya dengar langsung oleh perwakilan penerbit (waktu itu dari Andi offset) yang diundang oleh pihak kampus saya waktu itu (STMIK Nusa Mandiri). Saya lupa tahunnya, yang jelas waktu itu masih “ST”. Oiya, mungkin dosen-dosen muda sekarang heran melihat S1 yang menjadi dosen. Pasti lebih heran lagi kalau tahu jabatan fungsional Lektor saya diperoleh waktu masih bergelar S1 (lektor 200). Waktu itu memang jamannya orang enggan jadi dosen, sehingga kebutuhan dosen masih tinggi. Nah, si penerbit bersedia membukukan hasil penelitian jika mampu mengemas laporan penelitiannya dalam bentuk sudut pandang “orang awam”. Maksudnya pembaca harus dijejali hal-hal yang perlu agar mereka bisa mengikuti. Ini yang membuat penulis harus kerja ekstra mengetik ulang hasil penelitiannya. Nah nanti di akreditasi terbaru dengan format 9 standar, tiap dosen harus memasukan hasil penelitiannya ke materi ajar. Jadi buku yang dibuat kombinasi dari materi kuliah dengan hasil penelitian. Agak repot juga ketika mengajar mata kuliah yang berbeda dengan roadmap penelitiannya, jadi tidak bisa disisipi hasil penelitian. Jadi intinya, penerbit ingin pembaca tidak membutuhkan sumber-sumber lain untuk memahami, artinya dengan satu buku itu sudah paham. Kalau memerlukan buku lainnya, biasanya pembaca kerepotan karena harus merogoh kocek lagi untuk beli buku lainnya.

Menolong Orang Lain

Siapa yang ditolong? Banyak, misalnya kampus (lewat poin akreditasi karena ada buku), dosen (karena ada materi kuliah), industri/developer (untuk membuat software/aplikasi), dan mahasiswa (untuk kuliah dan tugas akhir/skripsi). Hal ini terjadi karena buku berbeda dengan artikel ilmiah yang terkadang merahasiakan kode sumber, sementara buku selain menyertakan kode sumber, terkadang diberikan CD/DVD atau file yang dishare di internet (dari website, Github, dan lain-lain). Kebanyakan mereka seumur hidup hanya sekali merasakan skripsi/tugas akhir, jadi tidak mungkin melupakan buku yang ia baca ketika berpusing-pusing ria dalam merampungkan kuliahnya. Saya pun sampai sekarang masih ingat buku-buku yang membantu saya lulus kuliah. Terakhir, tentu saja membantu penerbit. Mereka secara jujur kesulitan mencari penulis buku, padahal jumlah penulis potensial di tanah air harusnya di atas negara lain.

Revisi Atau Baru?

Sebenarnya saya ingin merevisi buku yang dulu, tetap mengingat isi yang jauh berbeda, terpaksa membuat versi yang benar-benar baru. Salah satu hal yang membedakan adalah “web-based machine learning“. Silahkan cari di internet buku tentang machine learning atau data mining berbasis web, masih jarang. Hal ini terjadi karena antara front-end (web developer) dengan back-end (data scientis) berasal dari orang dengan fokus yang berbeda. Perlu ada jembatan yang menghubungkan keduanya. Pengguna pun lebih nyaman menggunakan apikasi data mining dengan GUI berbasis web yang mudah diakses dari manapun. Jadi dengan tambahan web-based machine learning mudah-mudahan dapat menjembatani front-end dan back-end. Penggunaan bahasa Python pun karena trend bahasa pemrograman ini yang terus naik (lihat pos yang lalu) sampai-sampai Google mengadopsi bahasa ini dalam pemrograman onlinenya (lihat pos yg lalu tentang Google Colab).

Sebagai bonus, penulis terkadang harus cuek, apalagi menulis buku. Jika novel atau cerpen, kita bisa menggunakan nama samaran jika kita tidak ingin repot dengan para kritikus. Beberapa pakar di tanah air terkadang merendahkan tulisan dari penulis-penulis lokal dan cenderung menganjurkan buku-buku internasional yang “wah”. Tidak apa-apa kalau punya pandangan seperti itu, toh niat kami membantu anak-anak yang mungkin kurang skill bahasa Inggrisnya dengan bahasa yang mudah mereka mengerti. Jika dikatakan tulisan “instan” ya tidak apa-apa, kan repot juga mahasiswa dipaksa belajar bahasa Inggris dulu baru bisa lulus. Prinsip saya dan penulis-penulis lokal lainnya sebenarnya sederhana, membantu memberikan pemahaman kepada masyarakat umum, tidak merahasiakan ilmu atau menyarankan mereka mengikuti kursus yang harganya terkadang tidak terjangkau oleh mahasiswa-mahasiswa rata-rata di tanah air yang untuk bayar kuliah saja sulit. Tentu saja kalau mampu silahkan buat buku bertaraf internasional yang “wah” dan itu bagus banget menurut saya. Semoga berminat menulis buku.

Update: 10 April 2021

Buku sudah avaiable di toko-toko buku dan online shop, semoga bermanfaat.

buku DM new

Format Hasil Training Jaringan Syaraf Tiruan Pada Matlab dan Python

Jaringan Syaraf Tiruan (JST) merupakan salah satu metode computational intelligence (CI) yang meniru sifat otak makhluk hidup. Sel neuron otak direplika dalam suatu fungsi transfer/aktivasi yang kemudian ditransfer ke neuron lainnya lewat sebuah jaringan. Sebuah bobot dan bias mengatur apakah suatu sinyal diteruskan atau tidak sehingga keluaran menghasilkan nilai sesuai dengan keinginan. Untuk mengatur bobot dan bias diperlukan sebuah proses pembelajaran yang dikenal dengan nama learning/training. Karena ketika training membutuhkan data dan target atau label, maka pembelajarannya dikenal dengan istilah pembelajaran terpandu (supervised learning). Beberapa tipa JST tidak membutuhkan target/label, seperti misalnya tipe Self Organizing Map (SOM).

Bahasa Pemrograman JST

Berbagai bahasa pemrograman dapat digunakan untuk membuat JST, seperti bahasa C++, Java, Matlab, Python dan lain-lain. Matlab memiliki toolbox yang mempermudah proses pelatihan. Dengan adanya toolbox, beberapa peneliti yang hanya fokus ke penerapan metode tidak perlu kehabisan waktu dalam pemrograman. Di sisi lain Python yang kian hari kian diminati memiliki library Scikit Learning, yang menyediakan fasilitas-fasilitas dalam pelatihan JST.

Matlab

Tersedia toolbox NNTOOL dalam pembuatan JST. Sebelumnya Matlab juga memiliki beberapa fungsi untuk pembuatan JST seperti newff, newcf, dan lain-lain tergantung tipe network yang akan dibuat. Jika ingin menghasilkan performa yang kuat, Matlab masih kalah dengan C++ yang bagi beberapa orang sangat sulit membuat programnya, terutama dalam memanipulasi array dan matriks. Namun Matlab seperti alat ukur sangat mudah digunakan sehingga sebuah artikel ilmiah yang mengusulkan metode baru dapat juga dilihat oleh orang lain (direplikasi), sehingga banyak digunakan dalam naskah artikel ilmiah. Untuk pembuatan GUI untuk penerapan, Matlab menyediakan fasilitas pembuatan GUI desktop, sementara belum ada yg versi berbasis web.

Python

Bahasa pemrograman ini saat ini banyak diminati. Masalah array dan matriks dapat diatasi lewat library-librarynya seperti NumPy dan Pandas. Ketangguhan bahas ini membuat Google menerapkannya dalam fasilitas pemrograman onlinenya di http://colab.research.google.com. Framework yang digunakan adalah Jupyter Notebook. Selain itu, Google juga menggratiskan GPU dan TPU nya yang kita kenal memiliki server yang kuat. Sehingga dengan bermodal ponsel dapat menjalankan machine learning dengan ketangguhan setara server Google. Berbeda dengan Matlab yang hanya menyediakan fasilitas GUI pada aplikasinya, Python menyediakan dua versi yaitu desktop dengan library TKinter dan web-based lewat framework Django, Flask, dan Jinja2 sebagai template web-python.

Hasil Pelatihan

Pelatihan JST menghasilkan nilai-nilai parameter antara lain arsitektur JST berupa susunan layer dan jumlah neuron di tiap-tiap layer, serta bobot dan bias di masing-masing layer. Pada Matlab, hasil tersimpan dalam format *.mat yang berisi variabel network hasil pelatihan. Untuk memakainya sebuah instruksi diperlukan yaitu fungsi “load” yang memanggil file mat tersebut.

Untuk Python, beberapa versi yang digunakan adalah *.pkl dan *.h5. Yang paling mudah adalah *.h5 yang merupakan tipe sequential, dimana network mengalir dari input ke output. Karena *.h5 berisi bobot dan bias hasil training, untuk menggunakannya diperlukan file lain yaitu file *.yaml yang berisi arsitektur JST (jumlah layer dan neuron). Hasil pelatihan penting untuk diketahui oleh pengembang software terutama ketika membuat penerapan JST hasil training. Aplikasi di web biasanya tidak memerlukan proses training yang memakan beban server, melainkan hanya menggunakan hasil training untuk penerapan, misalnya klasifikasi.

Pilihan ada di tangan Anda. Beberapa pengguna non-computer science seperti bidang elektronika, ekonomi, kesehatan, dan lain-lain banyak menggunakan kemudahan Matlab, dengan resiko membeli lisensi yang cukup mahal. Jika Anda dari computer science alangkah baiknya memilih kedua-duanya. Lho kok dua-duanya? Ya harusnya orang computer science bisa semua bahasa, minimal pernah mencoba. Sekian, semoga bermanfaat.

Membuat Grafik Deret Waktu Pada Matlab

Matlab cukup baik membuat grafik/plot standar jurnal dibanding pengolah data standar seperti Excel. Namun terkadang data yang ingin dibuat grafiknya berupa deret waktu (time series). Misalnya kita punya data seperti ini.

Misalnya data tersebut di atas adalah bulan Maret 2020. Bagaimana cara membuat Plot nya? Sebelumnya mudah saja menggunakan fungsi “plot” untuk data biasa non tipe “date”. Untuk data “date” gunakan fungsi “datetime” untuk mengkonversi tanggal tabel di atas menjadi data tanggal sesungguhnya.

Perhatikan penggunaan “datetime” dimana data sebelumnya ditambahkan dengan tanggal. Coba buat plotnya dengan fungsi “plot” dan pastikan sumbu axis sudah berupa tanggal/deret waktu.

  • >> plot(x,data(:,2),’*’)
  • >> hold
  • Current plot held
  • >> plot(x,data(:,2),’-‘)

Mengetahui RULE Hasil Training ANFIS.

Berbeda dengan JST yang hasil trainingnya mirip “black box” yang tidak diketahui logikanya, pada Adaptive Neuro-Fuzzy Inference System (ANFIS) hasil trainingnya memiliki logika. Logika ini dikenal dengan istilah RULE. Postingan ini bermaksud menunjukan bagaimana melihat RULE hasil training. Masukan data training, misalnya data yang mirip Logika XoR.

Buka ANFIS editor dengan mengetik “anfisedit” pada command window. Masukan data latih tersebut. Gunakan “From: worksp”.

Rancang FIS yang akan dilatih dengan menekan “Generate FIS” di editor ANFIS.

Di sini di isian “Number of MFs” berisi “3 3” yang artinya tiga kelas input1 dan input2, misal “baik”, “cukup”, “kurang”, bisa juga diganti “2 2” jika hanya dua kategori, misal “baik” dan “buruk” saja. Tentu saja makin banyak kategori biasanya hasil lebih baik, apalagi jika datanya sedikit seperti kasus di contoh ini. Lanjutkan dengan menekan “Train Now”. Jika sudah perhatikan RULE yang terbentuk dengan menekan “Edit” – “Rule”.

In1mf1, dan seterusnya bisa diedit dengan bahasa yang kita mengerti, dengan cara masuk ke menu “edit” – “FIS Proerties”. Mirip caranya dengan mengedit fuzzy inference system (FIS). Berbeda dengan Jaringan Syaraf Tiruan (JST), ANFIS memiliki keunggulan dimana hasil training memiliki logika tertentu. Selanjutnya, uji dengan data sesungguhnya yaitu Logika XoR. Sebelumnya simpan ke “Workspace” misalnya dengan nama “xor”.

Testing dengan data sesungguhnya, yaitu logika XoR.

Jalankan dengan fungsi “evalfis” untuk menguji data “xorlogic” tersebut (kolom 1 dan 2) apakah sama dengan targetnya (kolom 3), yaitu beruturut-turut 0, 1, 1, 0.

Perhatikan “result” dengan jawaban logika xor yang asli, jika result dibulatkan (ketik “round(ans)”) akan menghasilkan jawaban sesungguhnya, alias akurat 100%. Selamat mencoba.

 

 

Optimalisasi Multiobjektif

Biasanya dalam optimalisasi, fungsi yang akan dicari nilai optimalnya hanya berjumlah satu. Fungsi tersebut dikenal dengan nama fungsi objektif (objective function) atau beberapa peneliti lebih senang dengan istilah fungsi kriteria (criteria function). Tetapi di lapangan kebanyakan fungsi objektif lebih dari satu, sehingga perlu penanganan untuk mengoptimalkan fungsi-fungsi tersebut, yang dikenal dengan istilah optimalisasi multiobjective (multiobjective optimization).

Salah satu teknik yang sering dan mudah digunakan adalah dengan pembobotan, atau dikenal dengan istilah aggregating function. Besar bobot di tiap-tiap fungsi objektif perlu diriset terlebih dahulu, atau dengan menanyakan kepada para pakar di bidangnya. MIsalnya kita memiliki dua fungsi:

Coba gunakan Matlab untuk melihat grafik dua fungsi objektif tersebut. Tampak adanya kontradiksi. Di sinilah peran penanganan multiobjektif.


x=-10:0.1:10;
y1=x.^2+6;
plot(x,y1,'r')
grid on
hold
%Current plot held
y2=-(x.^2)+12;
plot(x,y2,'b')

Tampak kedua fungsi bertolak belakang. Di sini misalnya kita sudah memiliki bobot masing-masing untuk fungsi 1 dan 2 berturut-turut 0.7 dan 0.3. Maka untuk optimalisasi kita butuh satu fungsi baru, yang nantinya digunakan sebagai fungsi objektif pada algoritma optimasi yang dipilih. Tambahkan 2 kode baru lanjutan dari yang di atas.


yobj=0.7*y1+0.3*y2;
plot(x,yobj,'k')

Nah kita tinggal mengoptimalkan fobj yang berwarna hitam tersebut dengan metode yang Anda sukai, misalnya algoritma genetika. Ketik optimtool(‘ga’). Nah, di sini perlu membuat m-file yang berisi fungsi objektif. Ketik sembarang nama, misalnya “fungsi” di command window isi coding berikut:

Masukan nama fungsi tersebut diawali dengan @ di bagian “fitness function”. Di bagian “Plot Function” ceklis pada best fitness dan best individualnya agar lebih interaktif ketika Matlab memprosesnya. Tekan “Start” jika dirasa sudah siap. Oiya, jangan lupa “Number of Variables” diisi, tentu saja satu variabel yang terlibat “x”.

Perhatikan di bagian hasil, diperoleh titik 0.001 sebagai titik optimal dengan fitness 7.8. Sekian, semoga bisa menginspirasi.