Anda di halaman 1dari 12

MULTI LAYER PERCEPTRON (MLP)

Disusun untuk Memenuhi tugas UAS

Di bimbing oleh Bapak M. Miftahul Walid, S.Kom M.T

Oleh :

Mukhlishotus Soimah

Raudlatunnafisah

Ummu Amania

INSTITUT SAINS DAN TEKNOLOGI ( IST ) ANNUQAYAH

FAKULTAS TEKNIK

JURUSAN TEKNOLOGI INFORMASI

TAHUN 2022/2023
BAB I

PENDAHULUAN

A. Latar Belakang
Jaringan syaraf tiruan (JST) merupakan salah satu metode klasifikasi yang lapisan input
(input layer) dan lapisan tersembunyi (hidden layer) dalam menghasilkan pengelompokan data
pda lapisan keluaran (output layer) dengan kinerja yang cukup baik.

Dengan tingkat akurasi yang mencapai nilai lebih dari 83%, metode ini sering
dimanfaatkan untuk masalah klasifikasi dengan data yang kompleks dan berjumlah sangat besar.

Selama bertahun-tahun banyak peneliti yang kesulitan menemukan cara untuk melatih
MLP. Barulah pada tahun 1986, David Rumelhart, Geoffrey Hinton, dan Ronald Williams
mempublikasikan penelitian yang mengenalkan propagasi balik alias backpropagation .
Propagasi balik adalah sebuah algoritma untuk melatih MLP yang masih digunakan hingga
sekarang.

B. Rumusan Masalah
1. Apa yang dimaksud dengan Multi Layer Perceptron?
2. Bagaimana langkah-langkah algoritma metode Multi Layer Perceptron?
3. Apa Saja kelebihan dan kekurangan Multi Layer Perceptron?
BAB II

LANDASAN TEORI

A. Pengertian Multi Layer Perceptron (MLP)


Multi Layer Perceptron (MLP) adalah sebuah jaringan saraf yang terdiri dari satu layer
input, satu atau lebih hidden layer, dan satu output layer. MLP yang memiliki banyak hidden
layer disebut juga Deep Neural Network (DNN).

MLP merupakan model Jaringan saraf yang berfungsi sebagai aproksimator universal, yaitu
mereka mendekati setiap fungsi kontinyu. Misalnya mereka dapat digunakan sebagai model
SEE. MLP terdiri dari neuron yang disebut persepsi. Jadi sebelum menjelaskan struktur
umum MLP, akan dijelaskan struktur umum perceptron. Sebuah jaringan saraf tiruan seperti
MLP mirip dengan seorang bayi baru lahir yang belum mengerti apa-apa. Dengan belajar lah
seorang bayi dapat meningkat pengetahuannya tentang dunia sekitar. Begitu juga dengan
MLP. Ketika kita melatihnya pada sebuah data, kita ingin agar MLP membuat kesalahan
yang sangat minim pada prediksinya. (Robert and Brown, 2004)

Jaringan syaraf tiruan memiliki beberapa kelebihan dibandingkan metode klasifikasi


konvensional lainnya. Yang pertama, jaringan syaraf tiruan merupakan metode yang
mengadaptasikan dirinya dengan data, sehingga tidak diperlukan adanya spesifikasi bentuk
fungsional dan distribusional model yang eksplisit. Kedua, jaringan syaraf tiruan fungsi
universal untuk memperkirakan hubungan antar keanggotaan kelas dengan atribut dari objek.
Ketiga, jaringan syaraf tiruan umumnya lebih reliabel terhadap noise dalam data. Yang
terakhir, jaringan syaraf tiruan mampu menghitung nilai probabilitas posterior, yang
merupakan dasar untuk membangun aturan klasifikasi dan analisis statistika. Salah satu
metode dalam jaringan syaraf tiruan yang luas digunakan adalah multilayer perceptron
(MLP). (Robert and Brown, 2004)
B. Langkah-langkah Algoritma
Secara umum, langkah-langkah dalam pelatihan algoritma multi layer perceptron
menggunakan backpropagation untuk mengubah nilai bobot-bobotnya dalam arah
mundur (backward). Untuk mendapatkan error ini, tahap fedd-forward harus kerjakan
terlebih dahulu. Pada saat perambatan maju, neuron-neoron diaktifkan dengan
menggunakan sebuah fungsi aktivasi. (Setiadi, 2012)

Dalam mengukur kinerja sebuah algoritma klasifikasi, dapat digunakan nilai-nilai seperti
area under the curve (AUC), precision, recall, mean squared error (MSE), mean
absolute percentage error (MAPE), dan root mean square error (RMSE). Ada beberapa
variasi nilai ukur yang digunakan di dalam penelitianpenelitian penerapan algoritma MLP
pada artikel yang ditinjau, seperti mean squared error (MSE), root mean squared error
(RMSE), mean absolute percentage (MAPE), mean absolute error (MAE), dan akurasi
prediksi (predicted accuracy). (Setiadi, 2012)

MSE merupakan metode untuk mengevaluasi tingkat kesalahan dengan


menghitung selisih kuadrat antara aktual dengan nilai hasil prediksi dan kemudian dibagi
dengan jumlah data, dengan menggunakan persamaan.

RMSE merupakan hasil dari akar kuadrat jumlah nilai MSE, dengan
menggunakan persamaan.

MAE merupakan nilai mutlak dari jumlah selisih antara data aktual dengan hasil
prediksi dibagi dengan nilai akutial dan kemudian dibagi dengan jumlah data, dengan
menggunakan persamaan.

MAPE merupakan hasil dari nilai MAE dikali dengan 100%, dengan
menggunakan persamaan.
Akurasi prediksi dapat dihitung menggunakan beberapa jenis teknik seperti
confusion matrix dan cross validation, dengan membandingkan nilai true positive, true
negative, false positive, dan false negative dari hasil prediksi. Nilai akurasi ini dapat
dihitunh dengan menggunakan persamaan.

Keterangan:

TP = True Positive.

TN = True Negative.

FP = False Positive.

FN = False Negative.

Untuk mengevaluasi performa algoritma MLP dari tinjauan hasil penelitian,


digunakan standar penilaian seperti terlihat pada Tabel 4.
C. Kelebihan dan Kekurangan MLP
MLP memiliki kelebihan seperti mampu mengadaptasikan dirinya dengan data, dapat
memperkirakan hubungan antar keanggotaan kelas dengan atribut dari objek, lebih reliabel
terhadap noise dalam data, dan mampu menghitung nilai probabilitas posterior, yang
merupakan dasar untuk membangun aturan klasifikasi dan analisis statistika. Sedangkan
kelemahan dari MLP salah satu kelemahan utamanya menggunakan multi layer perceptron
adalah kompleksitas dan biaya komputasinya. Lebih sulit untuk diterapkan, dilatih, dan
dipahami. Dan ini lebih banayk parameter, data, dan waktu untuk konvergen. Itu juga dapat
mengalami overviting, underfitting, vanishing gradients, dan monima lokal, karena mencoba
mengoptimalkan fungsi yang sangat tidak cembung dan berdimensi tinggi. (Riyanto, 2018)

D. Studi Kasus MLP


import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score
#from sklearn.metrics import confusion_matrix,
ConfusionMatrixDisplay
from sklearn.metrics import classification_report
dataset = pd.read_csv('diabetes.csv')
dataset.head()
Hasil
x = data_input[['Age', 'Pregnancies',]]
y = data_uji[['Outcome']]
data_input.head(20)
Hasil

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score
#from sklearn.metrics import confusion_matrix,
ConfusionMatrixDisplay
from sklearn.metrics import classification_report
dataset = pd.read_csv('diabetes.csv')
dataset.head()
Hasil
x = data_input[['Age', 'Pregnancies',]]
y = data_uji[['Outcome']]

data_input.head(20)
Hasil

y.head()
Hasil
trainX, testX, trainY, testY = train_test_split(x, y, test_size = 0.2)

sc=StandardScaler()

scaler = sc.fit(trainX)
trainX_scaled = scaler.transform(trainX)
testX_scaled = scaler.transform(testX)

mlp_clf = MLPClassifier(hidden_layer_sizes=(5,2),
                        max_iter = 300,activation = 'relu',
                        solver = 'adam')

mlp_clf.fit(trainX_scaled, trainY)

y_pred = mlp_clf.predict(testX_scaled)

print('Accuracy: {:.2f}'.format(accuracy_score(testY, y_pred)))


print(classification_report(testY, y_pred))

plt.plot(mlp_clf.loss_curve_)
plt.title("Loss Curve", fontsize=14)
plt.xlabel('Iterations')
plt.ylabel('Transaksi')
plt.show()

param_grid = {
    'hidden_layer_sizes': [(150,100,50), (120,80,40),
(100,50,30)],
    'max_iter': [50, 100, 150],
    'activation': ['tanh', 'relu'],
    'solver': ['sgd', 'adam'],
    'alpha': [0.0001, 0.05],
    'learning_rate': ['constant','adaptive'],
}
mlp_clf = MLPClassifier(hidden_layer_sizes=(5,2),
max_iter = 300,activation = 'relu',
solver = 'adam')
MLPClassifier
Sebelum kita melatih MLP pertama, saya akan menjelaskan secara singkat tentang
parameternya.

Misalkan kita memiliki dua variabel prediktor dan ingin melakukan klasifikasi biner.
Untuk ini saya bisa memasukkan parameter berikut pada model:

hidden_layer_sizes : Dengan parameter ini kita dapat menentukan jumlah layer dan
jumlah node yang ingin kita miliki di Neural Network Classifier. Setiap elemen dalam
tupel mewakili jumlah node pada posisi ke-i, di mana i adalah indeks tupel. Dengan
demikian, panjang tuple menunjukkan jumlah total lapisan tersembunyi di jaringan
saraf.

max_iter: Menunjukkan jumlah zaman.

aktivasi: Fungsi aktivasi untuk lapisan tersembunyi.

solver: Parameter ini menentukan algoritme untuk optimalisasi bobot di atas node.

y_pred = mlp_clf.predict(testX_scaled)

print('Accuracy: {:.2f}'.format(accuracy_score(testY, y_pred)))

Dalam klasifikasi biner, fungsi ini sama dengan fungsi jaccard_score. Dalam
klasifikasi multilabel, fungsi ini menghitung akurasi subset: kumpulan label yang
diprediksi untuk sampel harus sama persis dengan kumpulan label yang sesuai di
y_true.
DAFTAR PUSTAKA

Riyanto, U. (2018) ‘Penerapan Algoritma Multilayer Perceptron (Mlp) Dalam


Menentukan Kelayakan Kenaikan Jabatan: Studi Kasus Pt. Abc - Jakarta’, JIKA (Jurnal
Informatika), 2(1), pp. 58–65. Available at:
http://jurnal.umt.ac.id/index.php/jika/article/view/5481.

Setiadi, A. (2012) ‘DETEKSI DINI PENYAKIT DIABETES’, XIV(1).

Anda mungkin juga menyukai