Istilah penting di Neural Network dan Deep Learning (bagian 2)

Artikel ini adalah kelanjutan dari artikel sebelumnya tentang istilah-istilah di neural network ataupun deep learning bagian kedua. Sama seperti artikel sebelumnya, artikel ini bertujuan untuk menjelaskan istilah-istilah penting di neural network.

Error vs Akurasi

Error dan akurasi adalah 2 metode pengukuran performa model machine learning. Model machine learning pada umumnya akan menggunakan fungsi error (atau sering disebut juga loss/cost function) sebagai acuan untuk memperbaiki modelnya (a.k.a belajar). Hampir kebanyakan model machine learning termasuk deep learning menggunakan algoritma optimasi untuk meminimalkan error yang dihasilkan. Artinya, semakin kecil error yang dihasilkan akan semakin baik.

Pada proses training yang benar, grafik eror akan turun dan grafik akurasi akan naik

Sedangkan akurasi adalah pengukuran yang lebih “mudah” dipahami manusia. Biasanya akurasi tidak digunakan untuk acuan model belajar melainkan hanya untuk membantu manusia memahami sebaik apa model yang telah dihasilkan. Misalnya jika diketahui ada model yang mampu mendeteksi suatu penyakit dengan akurasi 90%, maka kita langsung bisa paham artinya dalam 100 kali percobaan ada kemungkinan sekitar 10 percobaan akan gagal. Hal tersebut lebih mudah dipahami oleh manusia ketimbang kita bliang: suatu model memiliki error 0.002 ._. Dari definisi tersebut, dapat dilihat semakin tinggi nilai akurasi akan semakin baik.

Juga perlu diketahui, ketika kita bilang “akurasi”, sebenarnya kita merujuk ke suatu rumus yang spesifik. Sedangkan istilah “error” adalah istilah yang lebih lebih umum, rumusnya ada banyak, misalnya log-likelihood. Metode pengukuran lain yang mudah dipahami selain akurasi adalah F1-Score yang biasa digunakan untuk mengevaluasi model dengan data yang classnya tidak seimbang (imbalance)

oh ya, saya juga dulu pernah bertanya di AI.SE tentang pemilihan model berdasar akurasi atau error di sini

Hyperparameter Tuning

Pada artikel sebelumnya telah saya singgung makna dari hyperparameter. Hyperparameter tuning adalah proses untuk menemukan nilai hyperparameter. Tujuannya adalah untuk menemukan nilai hyperparameter yang dapat menghasilkan model dengan performa yang paling baik.

Contoh yang paling mudah misalnya adalah menentukan nilai dari learning rate pada neural network. Ketika nilai learning rate terlalu kecil, model akan belajar sangat lambat, sedangkan learning rate yang besar bisa berakibat model kesulitan menemukan global optima. Nah, mencari angka yang tepat ini perlu proses eksperimen (baca: coba-coba), proses inilah yang disebut dengan hyperparameter tuning.

Dulu jaman saya skripsi-tesisan, proses coba-coba ini paling makan waktu paling banyak 🙁 Tapi sekarang sudah banyak metode dan framework untuk melakukan hyperparameter tuning secara otomatis (hyperparameter optimization). Salah satunya, Optuna, sudah sempat saya bahas di artikel ini. Optuna akan menemukan nilai hyperparameter terbaik secara otomatis menggunakan pendekatan bayesian.

Data Training, Validasi, dan Test

Untuk membedakan tiga jenis data tersebut saya sering menggunakan analogi seorang siswa yang sedang akan menghadapi ujian.

Dari sudut pandang siswa, Data training adalah soal-soal latihan yang diajarkan di kelas. Bisa dilihat kapanpun untuk belajar, dan ketika kita melakukan kesalahan, kita bisa langsung lihat jawaban benarnya seperti apa. Tentu saja hanya dengan mengerjakan soal-soal latihan, siswa akan dapat belajar, tetapi kita perlu menguji seberapa paham mahasiswa sebenarnya.

Untuk itulah diperlukan data validasi, atau jika dianalogikan adalah soal-soal baru yang belum pernah dilihat siswa di kelas dan digunakan bukan untuk fase belajar tapi fase ujian. Data validasi seperti soal-soal ujian di mana mereka tidak bisa melihat jawabannya (sehingga tidak bisa digunakan untuk belajar) tapi hanya bisa lihat nilai ujiannya.

Data tes dan data validasi hampir memiliki tujuan yang sama, yakni menguji kecerdasan model (atau siswa kalau di analogi kita). Bedanya, data validasi bisa digunakan berkali-kali, sedangkan data test harus dibatasi penggunaannya. Jika kembali ke analogi, maka bisa dibayangkan bahwa data validasi mirip dengan tryout persiapan Ujian Nasional:

  • Siswa bisa mengambil beberapa kali,
  • hanya bisa tahu nilainya (bukan kunci jawabannya) sehingga tidak bisa digunakan untuk belajar, dan
  • diharapkan bisa menggambarkan ujian nasional sebenarnya.

Sedangkan data test adalah ujian nasional sebenarnya, yang dalam analogi tersebut hanya bisa diambil 1x (terbatas). Pada penelitian-penelitian machine learning, biasanya data test hanya digunakan 1x. Angka performa yang dihasilkan ini yang ditampilkan pada laporan akhir. Selain itu, Biasanya data test juga sudah dipisah dari awal, sedangkan untuk data validasi bisa diperoleh dengan melakukan proses cross-validation agar model kita bisa benar-benar merasakan “try out” yang menyerupai data test.

Dengan menggunakan ketiga data tesrsebut diharapkan kita bisa mendapat model yang berhasil meng-generalisir masalah, tidak mengalami overfitting.

Referensi

  • https://datascience.stackexchange.com/a/47268/21378 (tentang Train, Validation, Test)

About the author

Rian Adam

Lecturer at Universitas Islam Indonesia; Machine Learning Enthusiast

View all posts

3 Comments

  • Mengenai data validasi jika data yang digunakan sama dengan data yang digunakan pada saat proses training apakah boleh? Lalu bagaimana dengan orang orang yang biasanya tidak menggunakan validasi? Lalu apakah perbedaan antara model yang menggunakan validasi dan tidak? Terima kasih.

    • 1. Tidak boleh, tujuan validasi adalah mengevaluasi model, jika model dievaluasi menggunakan data yang sama dengan data train jadinya tidak valid
      2. Tergantung kebutuhan, untuk penelitian, dan secara umum, model yang baik menggunakan data/proses validasi. Tapi dalam beberapa kasus, misalnya data terlalu sedikit, bisa tidak menggunakan validasi tapi ya jadinya tidak bisa dibilang “valid”.
      3. Model yang menggunakan validasi harusnya akan lebih “general”. Model yang tidak menggunakan validasi bisa overfit dengan data test. Efek sampingnya bisa jadi tidak langsung terlihat, tapi model yang tidak tervalidasi sebenarnya seperti membuat model yang “nge-bug”, punya celah kesalahan

Leave a Reply