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.