Masalah pembelajaran

Pembelajaran sebagai peminaan loss terhadap bobot dan permukaan loss jaringan saraf.

Daftar isi

Masalah pembelajaran adalah masalah peminimuman (minimization) loss terhadap parameter model, dan seluruh mesin pelatihan pada jalur ini tidak pernah keluar dari bentuk masalah itu. Topik ini menuliskannya secara formal, memperkenalkan permukaan loss sebagai cara melihat masalahnya, dan menunjukkan apa yang dapat serta tidak dapat diselesaikan oleh peminaan. Setelah selesai, modul Mekanika pelatihan yang memuat algoritma penyelesaiannya memiliki dasar yang jelas.

Definisi formal yang dipakai selama jalur ini#

Model dengan parameter θ \theta memetakan masukan x x ke prediksi y^=fθ(x) \hat{y} = f_\theta(x) , dan kualitasnya diukur loss rata-rata di atas data pelatihan {(xj,tj)}j=1m \{(x_j, t_j)\}_{j=1}^{m} :

L(θ)=1m∑j=1mℓ(fθ(xj), tj) L(\theta) = \frac{1}{m} \sum_{j=1}^{m} \ell\left( f_\theta(x_j),\ t_j \right)

Pembelajaran didefinisikan sebagai pencarian θ∗=arg⁡min⁡θL(θ) \theta^{*} = \arg\min_\theta L(\theta) . Definisi ini kelihatannya sederhana, tetapi dua kata di dalamnya memuat seluruh kesulitan praktis. Kata pertama adalah θ \theta , yang pada jaringan modern berisi jutaan bilangan sekaligus sehingga tidak mungkin dicoba satu per satu. Kata kedua adalah L L , yang permukaannya bergelombang dan tidak diketahui bentuk globalnya sebelum dihitung.

Perhatikan pula bahwa definisi ini hanya menyebut data pelatihan. Model yang meminaikan loss pelatihan sempurna belum tentu berguna, karena tujuan sesungguhnya adalah kinerja pada data baru, dan kesenjangan keduanya menjadi inti topik Disiplin pelatihan. Untuk modul ini, sasaran tetap dipusatkan pada L(θ) L(\theta) agar mekanikanya murni.

Melihat permukaan loss pada dua parameter#

Permukaan loss dapat dilukis bila parameternya hanya dua, dan lukisan mental itu layak dibangun karena intuisinya membawa ke dimensi tinggi. Contoh berikut memakai model linier y^=w1x1+w2x2 \hat{y} = w_1 x_1 + w_2 x_2 tanpa bias pada data kecil, lalu menghitung MSE pada kisi nilai w1 w_1 dan w2 w_2 yang rapat.

python Contoh: permukaan loss dua parameter pada kisi
import numpy as np

rng = np.random.default_rng(0)
X = rng.normal(size=(50, 2))
t = 3.0 * X[:, 0] - 1.5 * X[:, 1]
w1_grid = np.linspace(-1, 5, 13)
w2_grid = np.linspace(-4, 2, 13)
L = np.zeros((13, 13))
for i, w1 in enumerate(w1_grid):
    for j, w2 in enumerate(w2_grid):
        pred = w1 * X[:, 0] + w2 * X[:, 1]
        L[i, j] = float(np.mean((pred - t) ** 2))
i, j = np.unravel_index(L.argmin(), L.shape)
print("w1 terbaik pada kisi:", round(float(w1_grid[i]), 2))
print("w2 terbaik pada kisi:", round(float(w2_grid[j]), 2))
print("loss minimum        :", round(float(L.min()), 5))
text Keluaran
w1 terbaik pada kisi: 3.0
w2 terbaik pada kisi: -1.5
loss minimum        : 0.0

Keluaran tersebut menemukan bobot yang mendekati nilai pembangkit data, yaitu 3 dan −1,5-1{,}5, hanya dengan menimbang seluruh kisi. Cara ini tidak terlaksana pada jutaan parameter karena biayanya tumbuh eksponensial, dan itulah alasan modul Mekanika pelatihan membangun algoritma yang mencari lembah tanpa melihat seluruh permukaan. Yang penting dibawa adalah gambarannya, yaitu permukaan loss yang menurun menuju lembah, dan tugas pelatihan adalah berjalan turun ke dalamnya.

Pada jaringan saraf sungguhan, permukaan itu berdimensi jutaan dan mengandung banyak lembah yang sama baiknya, ditambah titik pelana yang gradiennya nyaris nol. Kabar baiknya, penelitian bertahun-tahun menunjukkan bahwa lembah-lembah yang dicapai metode turun-gradien pada jaringan dalam umumnya sama baik untuk generalisasi, sehingga takut pada lembah lokal bukan alasan menolak metode ini.

Apa yang tidak diselesaikan peminaan#

Peminimuman loss pelatihan menyelesaikan satu hal saja, yaitu menurunkan kekeliruan pada data yang dilihatnya. Ia tidak menjamin tiga hal yang menjadi tanggung jawab desainer. Pertama, kinerja pada data baru, karena peminimuman tidak pernah melihat data tersebut. Kedua, keadilan antar kelompok data, karena loss rata-rata menyembunyikan kekeliruan yang menumpuk pada kelompok kecil. Ketiga, kepraktisan komputasi, karena model terbaik yang tidak muat memori atau terlalu lambat untuk inference tetap tidak terpakai.

Ketiga celah itulah yang menjelaskan mengapa jalur ini memuat modul regularisasi, evaluasi, dan deployment alih-alih berhenti pada pelatihan. Peta besarnya seperti ini: mekanika pelatihan menurunkan L(θ) L(\theta) , disiplin pelatihan memastikan penurunan itu bukan hafalan, dan sisa jalur memastikan modelnya berguna di luar notebook.

Dari masalah ke algoritma#

Menemukan θ∗ \theta^{*} menuntut arah bergerak pada setiap titik permukaan, dan arah itu diberikan oleh gradien ∇θL \nabla_\theta L , yaitu vektor turunan parsial loss terhadap setiap parameter. Aturan bergeraknya, yang dipelajari pada topik Gradient descent, adalah melangkah berlawanan arah gradien sejauh yang diizinkan learning rate. Sementara cara menghitung gradien pada jaringan berlapis, yang sesungguhnya adalah penerapan berlapis aturan rantai, menjadi isi topik Backpropagation dengan tangan.

Tiga topik itu membentuk rantai yang utuh dari masalah pembelajaran ke algoritma siap pakai. Apabila definisi L(θ) L(\theta) di awal topik ini masih terasa abstrak, kembalilah ke contoh kisi dua parameter, karena seluruh kerumitan jaringan besar hanyalah contoh itu yang digandakan jutaan kali.

Ringkasan#

  • Pembelajaran adalah arg⁡min⁡θL(θ) \arg\min_\theta L(\theta) dengan loss rata-rata di atas data pelatihan, dan seluruh algoritma pelatihan melayani bentuk masalah ini.
  • Permukaan loss dua parameter dapat diimbau lewat kisi, tetapi pemindaian kisi tidak terlaksana pada jutaan parameter.
  • Peminaan loss pelatihan tidak otomatis menjamin generalisasi, keadilan antar kelompok, maupun kelayakan komputasi.
  • Gradien memberi arah turun, dan dua topik berikutnya membangun cara menghitung serta memakainya.

Referensi#