Setelah episode kemarin bicara data dan fitur, sekarang giliran pertanyaan yang dulu bikin saya berhenti membaca tutorial: sebenarnya “model” itu apa? Jawabannya ternyata jauh lebih sederhana dan lebih indah daripada yang saya bayangkan — terutama kalau kita memandangnya sebagai programmer.
Model = fungsi dengan parameter
Definisi teknisnya: model AI adalah fungsi matematis yang memetakan input menjadi output. Titik. Tidak ada sihir. Model prediksi harga rumah adalah fungsi yang menerima (luas, kamar, umur bangunan) dan mengembalikan angka. Model klasifikasi email adalah fungsi yang menerima teks dan mengembalikan probabilitas spam.
Beda model linear paling sederhana dengan aplikasi raksasa semacam chatbot bukan pada jenisnya — sama-sama fungsi — melainkan pada bentuk dan jumlah parameternya. Regresi linear punya beberapa parameter; model bahasa besar punya miliaran. Prinsip dasarnya identik.
Analogi programmer favorit saya: model itu seperti interface, dan tiap arsitektur adalah implementasinya. Yang membedakan satu implementasi dengan lainnya adalah parameter — variabel-variabel internal yang nilainya menentukan perilaku fungsi.
Parameter dan bobot
Ambil contoh regresi linear untuk harga rumah:
harga = w1 * luas + w2 * kamar + w3 * umur + b
w1, w2, w3 disebut bobot (weight) — angka yang menentukan seberapa besar tiap fitur memengaruhi hasil. b adalah bias, nilai dasar saat semua fitur nol. Bobot + bias = parameter. Sebelum training, isinya angka acak sehingga model menghasilkan omong kosong. Setelah training, bobot “menyimpan” pola dari data.
Cara pandang ini menjelaskan banyak hal yang dulu membingungkan:
- “Melatih model” = mencari nilai parameter terbaik, bukan menambah baris kode.
- “Model belajar” = parameter bergeser sedikit demi sedikit ke arah yang mengurangi kesalahan.
- File
.pklatau.safetensorsyang kita unduh = snapshot nilai parameter, plus definisi bentuk fungsinya. - Dua model dengan arsitektur sama tapi parameter beda = dua program yang perilakunya beda total.
Mencicipi langsung dengan scikit-learn
Supaya tidak abstrak, saya coba lihat parameter sebuah model sungguhan. Kode di bawah melatih regresi linear mini lalu mencetak bobotnya:
from sklearn.linear_model import LinearRegression X = [[50, 2], [80, 3], [120, 4], [60, 2]] # [luas_m2, kamar] y = [500, 750, 1100, 590] # harga dalam juta model = LinearRegression() model.fit(X, y) print(model.coef_) # bobot per fitur print(model.intercept_) # bias print(model.predict([[70, 3]]))
Yang saya suka dari eksperimen kecil ini: setelah fit(), atribut coef_ dan intercept_ persis seperti rumus di atas. Bisa dibaca sebagai “seberapa penting luas vs jumlah kamar” menurut model. Untuk model yang lebih kompleks, parameternya jutaan dan tidak bisa lagi ditafsirkan satu-satu — tapi strukturnya tetap sama: sekumpulan angka.
Hyperparameter: pengaturan di luar model
Jangan tertukar dengan parameter. Hyperparameter adalah konfigurasi yang kita tentukan sebelum training: jumlah tetangga di KNN, kedalaman decision tree, learning rate. Analoginya: parameter adalah isi variabel saat runtime, hyperparameter adalah setting build-time. Parameter dipelajari mesin dari data; hyperparameter kita pilih sendiri (dan episode mendatang akan bahas cara memilihnya secara sistematis).
| Istilah | Siap yang menentukan | Contoh |
|---|---|---|
| Parameter | Proses training (otomatis) | Bobot, bias |
| Hyperparameter | Kita, sebelum training | Learning rate, kedalaman tree |
Catatan untuk diri sendiri
Mental model “model = fungsi berparameter” adalah investasi konsep paling mahal sejauh seri ini. Semua istilah menakutkan di episode-episode selanjutnya — loss function, gradient descent, overfitting — akan terasa natural begitu kerangka ini melekat. Kalau ada satu hal yang saya sarankan dari catatan ini: jangan hafalkan istilahnya, gambar dulu fungsinya di kepala.
Komentar Terbaru