Dasar pembahasan dari deep learning salah satunya algoritma Multi Layer Percepton, kalian bisa pelajari dalam buku yang saya terbitkan oleh Graha Ilmu disini dengan sub topik perceptron. Sobat softscients.com pada artikel ini, saya tidak akan detail hal tersebut tapi lebih pada menggunakan library sklearn yaitu MLPClassifier yang kode sangat ringkas sekali dengan dokumentasi yang lengkap ada disini
MLP Classifier
Contents
MLPClassifier adalah singkatan dari Multi-layer Perceptron classifier yang dalam namanya terhubung ke Neural Network. Tidak seperti algoritme klasifikasi lain seperti Support Vectors Machine atau Naive Bayes Classifier, MLPClassifier mengandalkan Neural Network yang mendasari untuk melakukan tugas klasifikasi.
Namun, satu kesamaan, dengan algoritme klasifikasi Scikit-Learn lainnya adalah bahwa penerapan MLPClassifier tidak memerlukan keribetan daripada mengimplementasikan Support Vectors atau Naive Bayes atau pengklasifikasi lain dari Scikit-Learn alias sangat mudah sekali.
Alangkah baiknya dalam menulis kode selalu dibiasakan memberikan informasi mengenai versi nya, dalam tulisan ini menggunakan versi
import sklearn sklearn.__version__ Out[9]: '0.23.2'
Yup sklearn 0.23.2, langsung saja kita gunakan kode berikut untuk memanggil package/library MLPClassifier
from sklearn.neural_network import MLPClassifier as MLP
Kasus Sederhana Logika Boolean XOR dengan MPL Classifier
Saya senang sekali kalau memberikan contoh sederhana kasus non linear menggunakan logika boolean XOR karena ssimple dan mencerminkan kinerja algoritma tanpa ribet. Secara umum logika XOR yaitu
Kita butuh numpy buat pengolahan array
from sklearn.neural_network import MLPClassifier as MLP import numpy as np x = np.array([[0,0],[0,1],[1,0],[1,1]]) y = np.array([[0],[1],[1],[0]])
Desain Arsitektur Layer dan Jumlah Node
Untuk arsitektur layer, bisa kalian pahami istilah layer dan node
Pada gambar diatas terdiri dari
- layer input : ada 2 node
- layer hidden : ada 3 node
- layer output: ada 1 node
Nah saya akan membuat 2 layer hidden dengan masing-masing terdiri dari 3 dan 4 node, adapun untuk jumlah node pada layer input ada 2 dan layer output ada 1 sesuai dengan dimensi array dari x dan y diatas.
Kemudian menggunakan fungsi aktifasi berupa relu, maximal iterasi sebanyak 10 ribu, serta learning rate 0.25
model = MLP(hidden_layer_sizes=(10,15), max_iter=10000, activation = 'relu', learning_rate_init=0.25, solver='sgd')
Perintah untuk pelatihan serta pengujian
semua perintah training kalau menggunakan sklearn yaitu fit()
model.fit(x,y) print('score:', model.score(x,y)) # outputs print('predictions:', model.predict(x)) # outputs [0, 0, 0, 0] print('expected:',y)
hasil
score: 1.0 predictions: [0 1 1 0] expected: [0 1 1 0]
Kalau kalian masih bingung, bisa baca tulisan saya disini mengenai perceptron (1 hidden layer), sangat mudah sekali membuat classifier dengan Python. Kalau masih belum kalian bisa kirim email saja