Materi
Fungsi loss mengubah selisih antara keluaran jaringan dan jawaban benar menjadi satu angka yang ingin diperkecil. User Guide scikit-learn menyebut dua loss yang dipakai MLP: kuadrat galat untuk regresi (MLPRegressor) dan cross-entropy rata-rata untuk klasifikasi (MLPClassifier).
Mean squared error (MSE) adalah rata-rata kuadrat selisih: mean((tebakan − aktual)²). Kuadrat membuat selisih besar dihukum jauh lebih berat daripada selisih kecil. sklearn.metrics.mean_squared_error menghitung persis rata-rata ini; rumus loss di dalam MLPRegressor memakai faktor 1/2n, bukan 1/n, supaya turunannya lebih ringkas, dan faktor tetap itu tidak mengubah letak titik minimumnya.
Cross-entropy untuk satu sampel adalah −ln(peluang yang diberikan model kepada kelas yang benar). Bila model yakin dan benar (peluang 0,99), loss-nya 0,01. Bila model yakin dan salah (peluang kelas benar 0,01), loss-nya 4,6. Dive into Deep Learning §4.1 menurunkan loss ini dari log-likelihood. Rata-rata untuk banyak sampel dihitung sklearn.metrics.log_loss. Di numpy, peluang kelas benar setiap baris diambil dengan pengindeksan P[np.arange(n), label].
import numpy as np
peluang_benar = np.array([0.9, 0.6, 0.3])
print(-np.log(peluang_benar).round(3)) # [0.105 0.511 1.204]
print(-np.mean(np.log(peluang_benar))) # 0.607...