Multi-Layer Perceptron (MLP)

"Otak Buatan untuk Klasifikasi"

1. Apa itu MLP?

MLP (Multi-Layer Perceptron) adalah bentuk paling dasar dari Deep Learning. Secara sederhana, MLP adalah tumpukan Logistic Regression yang disusun berlapis-lapis.

Jika Logistic Regression hanya bisa menarik satu garis lurus, MLP bisa menarik garis yang melengkung dan berputar-putar untuk memisahkan data yang sangat rumit.

2. Visualisasi: Input -> Hidden -> Output

X1 X2 H1 H2 Y

Input X diproses di Hidden Layer, lalu digabung jadi Output Y.

3. Kunci Rahasia: Aktivasi Non-Linear

Tanpa fungsi aktivasi, tumpukan neural network cuma jadi regresi linear biasa. Kita butuh fungsi non-linear:

  • ReLU (Rectified Linear Unit): Merubah nilai negatif jadi 0. (Paling populer di Hidden Layer).
  • Sigmoid: Output 0 s/d 1. (Untuk Output Biner).
  • Softmax: Membagi probabilitas ke banyak kelas (Multiclass).

4. Implementasi Python (Scikit-Learn)

from sklearn.neural_network import MLPClassifier
from sklearn.preprocessing import StandardScaler
import numpy as np

# 1. Data XOR (Kasus yang tidak bisa dipecahkan Linear Regression)
# (0,0)->0, (1,1)->0, (1,0)->1, (0,1)->1
X = [[0, 0], [1, 1], [1, 0], [0, 1]]
y = [0, 0, 1, 1]

# 2. MLP Butuh Skala yang Sama (StandardScaler itu Sunnah Muakkad di sini)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. Model
# hidden_layer_sizes=(4, 2) artinya ada 2 hidden layer, layer 1 isi 4 neuron, layer 2 isi 2 neuron.
# max_iter=1000 : Jatah belajar (epoch)
clf = MLPClassifier(hidden_layer_sizes=(4, 2), activation='relu', solver='adam', max_iter=1000, random_state=1)

# 4. Training
clf.fit(X_scaled, y)

# 5. Prediksi
print("Prediksi [0, 1]:", clf.predict([[0, 1]])) # Harusnya 1