Iris Multilayer Perceptron Menggunakan Library Keras

Halo guys di postingan kali ini kita akan coba melakukan klasifikasi data iris (oh man, boring) menggunakan library deep learning keras. Library keras sendiri merupakan library deep learning yang relatif mudah untuk dipelajari dan dipahami. Buat kalian yang belum install keras, bisa ikuti tutorial instalasi keras yang sudah saya tulis sebelumnya.

Dataset

Dataset yang akan kita gunakan kali ini lagi lagi adalah dataset iris. Di dataset ini kita akan memprediksi spesies bunga iris berdasarkan fitur-fitur seperti petal length, petal width, sepal length, sepal width. Dataset ini bisa didownload di link di berikut :
Download dataset iris

Klasifikasi Spesies Iris Menggunakan Keras

Oke kuy langsung saja kita mulai.

Import library

Langkah pertama adalah mengimport library yang akan kita butuhkan. Kita menggunakan numpy untuk melakukan numerical operation serta pandas untuk manipulasi dataframe. Beberapa fungsi dari keras dan juga sklearn juga kita perlukan dalam tutorial ini.

Set Random Seed

Agar mendapatkan hasil yang sama dalam beberapa eksperimen, maka kita perlu me-set suatu random seed.

Loading Dataset

Simpan dataset yang sudah didownload di folder yang sama dengan script python ini. Setelah kita load dengan menggunakan pandas, kita pisahkan antara target variable (spesies, yang merupakan kolom ke 4) dan predictor variabel (petal length, petal width, dll) dan simpan masing-masing dalam Y dan X.

Encode Target Variabel

Untuk dapat di-input-kan ke library keras, target variabel yang mulanya berisi string versicolor, virginica, dan setosa perlu diubah ke dalam skema one-hot encoding. Untuk mengubahnya, kita dapat menggunakan fungsi LabelEncoder dari Sklearn.

Definisi Model

Model yang akan kita gunakan adalah model multilayer perceptron sederhana dengan satu hidden layer. Dalam library keras, model ini dapat dibuat dengan mula mula membuat instance dari kelas Sequential. Langkah berikutnya adalah menambahkan 2 hidden layer, masing-masing terdiri dari 4 neuron dan 3 neuron. Pada hidden layer pertama, perlu kita tentukan input_dim=4, yaitu jumlah predictor variable yang digunakan dalam melakukan klasifikasi. Pada tiap layernya kita tentukan juga bagaimana bobot akan diinisialisasi serta fungsi aktivasi yang digunakan.

Setelah model selesai dibuat, model perlu di-compile terlebih dahulu sehingga pada langkah selanjutnya dapat dilakukan pelatihan. Dalam melakukan kompilasi model, perlu kita tentukan loss function yang akan digunakan, algoritma pelatihan (optimizer) yang akan digunakan, serta metric yang  akan dilaporkan.

Tambahkan Wrapper Sklearn

Untuk mempermudah operasi-operasi seperti cross-validation serta operas-operasi lain yang dapat dilakukan classifier sklearn pada umumnya, model keras yang telah di-compile dapat di-wrap sehingga mengikuti interface dari classifier sklearn.

Pada proses wrapping ini juga kita tentukan parameter-parameter untuk pealtihan seperti jumlah epoch, besar batch size, serta verbose yang menyatakan apakah akan dilakukan pencetakan hasil tiap epoch selama proses pelatihan.

Evaluasi dengan Cross-Validation

Oke semuanya sudah siap, langsung saja kita lakukan cross-validation untuk mengetahui seberapa baik keras classifier yang kita buat.

 

That’s it. Kita sudah berhasil melakukan klasifikasi sederhana dengan Multilayer Perceptron menggunakan lirbary keras. Untuk eksplorasi selanjutnya, bisa browsing-browsing lagi di websitenya keras (dokumentasinya boleh juga kok) untuk mencoba model-model yang lebih powerful untuk case-case yang lebih menarik seperti CNN, LSTM, dan juga GRU.

Instalasi Library Keras untuk Deep Learning

Pas pertama kali belajar implementasiin deep learning, bakalan susah kalau langsung pakai TensorFlow/Theano, apalagi kalau pengalaman programming-nya masih cetek seperti ini. At least itu sih yang dulu saya rasakan. Jadi biar bisa langsung masuk akhirnya saya memutuskan untuk pakai high-level python deep learning API buatan mas François Chollet yang berjalan diatas backend TensorFlow ataupun Theano : Keras.

Keras memudahkan kita untuk dapat membangun dan melatih model deep learning dengan cepat. Dengan demikian, penggunanya bisa melakukan eksperimen-eksperimen untuk model deep learning nya dengan lebih cepat.

Being able to go from idea to result with the least possible delay is key to doing good research.

Keras mendukung berbagai model deep learning seperti Convolutional Neural Network (CNN, ConvNet), Recurrent Neural Network (ada modul LSTM dan GRU), maupun model Multilayer Perceptron yang lebih sederhana. Untuk masalah pelatihannya juga sudah menggunakan algoritma-algoritma pengembangan SGD seperti RMSPROP, Adadelta, dan juga Adam.

Keras juga mendukung penggunaan GPU untuk komputasi, sehingga pelatihan dapat dilakukan dengan lebih cepat.

Instalasi Keras (Windows)

Ikuti langkah berikut untuk menginstall keras.

  1. Pastikan python sudah terinstall, buat lebih nyamannya mending download dan install Anaconda.
  2. Buka command line sebagai Administrator (search ‘cmd’ di start, klik kanan, run as administrator)
  3. Tulis pip install keras

 

Setelah peritnah tersebut dieksekusi, pip akan mendownload keras beserta dependency yang dibutuhkannya. By default dia akan menggunakan backend Theano.

 

GPU Accelerated Keras

Pelatihan deep learning menggunakan GPU jauh lebih dibandingkan menggunakan CPU. Pengalaman saya sendiri, untuk melatih suatu model ConvNet sederhana, pelatihan menggunakan GPU (NVIDIA GeForce GT 740M) bisa sampai 10x lebih cepat dibandingkan menggunakan CPU (Intel Core i5-4300M). Untuk mengaktifkan pelatihan menggunaan GPU, ikuti langkah berikut.

  1. Install Visual Studio 2013. Setelah terinstall,
  2. Masuk ke System → Advanced system settings → Environment Variables → Path, lalu tambahkan C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin ke windows path.
  3. Download CUDA Toolkit disini.
  4. Download dan Install TDM-GCC compiler.
  5. Install cuDNN. (Opsional, tapi bisa bikin makin cepet lagi)
  6. Setelah semuanya terinstall, cari file .theanorc.txt di home folder  user saat ini, dan isikan dengan :

     

Setelah semuanya selesai, bisa langsung ditest apakah GPU sudah bisa digunakan untuk melakukan komputasi dari Theano dan keras.

Test GPU menggunakan Theano

Test GPU menggunakan Keras

 

Whoho, beres deh. Di postingan selanjutnya, saya bakal coba sharing model-model sederhana yang bisa dipakai untuk belajar implementasi deep learning menggunakan keras.  Kalau masih ada masalah silahkan drop aja komentar di bawah ini untuk mulai diskusi.

 

Danke, tschuss!