Belajar Algoritma Multi Layer Percepton

By | August 20, 2023
Print Friendly, PDF & Email
4,291 Views

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

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

See also  Text Classification Model - Studi Kasus Penerapan Klasifikasi Judul Berita

Pada gambar diatas terdiri dari

  1. layer input : ada 2 node
  2. layer hidden : ada 3 node
  3. 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