Hyperparameter adalah variabel yang mengontrol berbagai aspek pelatihan. Tiga hyperparameter umum adalah:
Sebaliknya, parameter adalah variabel, seperti bobot dan bias, yang merupakan bagian dari model itu sendiri. Dengan kata lain, hyperparameter adalah nilai yang Anda kontrol; parameter adalah nilai yang dihitung model selama pelatihan.
Kecepatan pembelajaran
Kecepatan pembelajaran adalah angka floating point yang Anda tetapkan yang memengaruhi seberapa cepat model berkonvergensi. Jika kecepatan pembelajaran terlalu rendah, model dapat memerlukan waktu lama untuk berkonvergensi. Namun, jika kecepatan pembelajaran terlalu tinggi, model tidak akan berkonvergensi, tetapi akan berfluktuasi di sekitar bobot dan bias yang meminimalkan kerugian. Tujuannya adalah memilih kecepatan pemelajaran yang tidak terlalu tinggi atau terlalu rendah agar model dikonvergensi dengan cepat.
Kecepatan belajar menentukan besarnya perubahan yang akan dilakukan pada bobot dan bias selama setiap langkah proses penurunan gradien. Model mengalikan gradien dengan kecepatan pembelajaran untuk menentukan parameter model (nilai bobot dan bias) untuk iterasi berikutnya. Pada langkah ketiga penurunan gradien, "jumlah kecil" untuk bergerak ke arah kemiringan negatif mengacu pada kecepatan pemelajaran.
Perbedaan antara parameter model lama dan parameter model baru sebanding dengan kemiringan fungsi kerugian. Misalnya, jika kemiringannya besar, model akan mengambil langkah besar. Jika kecil, diperlukan langkah kecil. Misalnya, jika magnitudo gradien adalah 2,5 dan kecepatan pembelajaran adalah 0,01, model akan mengubah parameter sebesar 0,025.
Kecepatan pembelajaran yang ideal membantu model untuk konvergensi dalam jumlah iterasi yang wajar. Pada Gambar 21, kurva kerugian menunjukkan bahwa model meningkat secara signifikan selama 20 iterasi pertama sebelum mulai dikonvergensi:
Gambar 21. Grafik kerugian yang menampilkan model yang dilatih dengan kecepatan pembelajaran yang konvergensi dengan cepat.
Sebaliknya, kecepatan pembelajaran yang terlalu kecil dapat memerlukan terlalu banyak iterasi untuk dikonvergensi. Pada Gambar 22, kurva kerugian menunjukkan model yang hanya membuat sedikit peningkatan setelah setiap iterasi:
Gambar 22. Grafik kerugian yang menampilkan model yang dilatih dengan kecepatan belajar kecil.
Kecepatan pemelajaran yang terlalu besar tidak akan pernah berkonvergensi karena setiap iterasi menyebabkan kerugian berfluktuasi atau terus meningkat. Pada Gambar 23, kurva kerugian menunjukkan penurunan pada model, lalu kerugian yang meningkat setelah setiap iterasi, dan pada Gambar 24, kerugian akan meningkat pada iterasi berikutnya:
Gambar 23. Grafik loss yang menunjukkan model yang dilatih dengan kecepatan belajar yang terlalu besar, dengan kurva loss berfluktuasi secara drastis, naik dan turun seiring peningkatan iterasi.
Gambar 24. Grafik kerugian yang menunjukkan model yang dilatih dengan kecepatan belajar yang terlalu besar, dengan kurva kerugian meningkat drastis pada iterasi berikutnya.
Latihan: Periksa pemahaman Anda
Ukuran batch
Ukuran batch adalah hyperparameter yang mengacu pada jumlah contoh yang diproses model sebelum memperbarui bobot dan biasnya. Anda mungkin berpikir bahwa model harus menghitung kerugian untuk setiap contoh dalam set data sebelum memperbarui bobot dan bias. Namun, jika set data berisi ratusan ribu atau bahkan jutaan contoh, menggunakan batch penuh tidak praktis.
Dua teknik umum untuk mendapatkan gradien yang tepat secara rata-rata tanpa perlu melihat setiap contoh dalam set data sebelum memperbarui bobot dan bias adalah stochastic gradient descent dan mini-batch stochastic gradient descent:
Penurunan gradien stokastik (SGD): Penurunan gradien stokastik hanya menggunakan satu contoh (ukuran batch satu) per iterasi. Dengan iterasi yang cukup, SGD berfungsi, tetapi sangat berisik. "Derau" mengacu pada variasi selama pelatihan yang menyebabkan kerugian meningkat, bukan menurun selama iterasi. Istilah "stokastik" menunjukkan bahwa satu contoh yang terdiri dari setiap batch dipilih secara acak.
Perhatikan pada gambar berikut bagaimana kerugian sedikit berfluktuasi saat model memperbarui bobot dan biasnya menggunakan SGD, yang dapat menyebabkan derau dalam grafik kerugian:
Gambar 25. Model yang dilatih dengan penurunan gradien stokastik (SGD) yang menunjukkan derau dalam kurva kerugian.
Perhatikan bahwa penggunaan stochastic gradient descent dapat menghasilkan derau di seluruh kurva kerugian, bukan hanya di dekat konvergensi.
Penurunan gradien stokastik tumpukan mini (SGD tumpukan mini): Penurunan gradien stokastik tumpukan mini adalah kompromi antara tumpukan penuh dan SGD. Untuk jumlah titik data $ N $, ukuran batch dapat berupa angka apa pun yang lebih besar dari 1 dan kurang dari $ N $. Model memilih contoh yang disertakan dalam setiap batch secara acak, menghitung rata-rata gradiennya, lalu memperbarui bobot dan bias satu kali per iterasi.
Penentuan jumlah contoh untuk setiap batch bergantung pada set data dan resource komputasi yang tersedia. Secara umum, ukuran tumpukan kecil berperilaku seperti SGD, dan ukuran tumpukan yang lebih besar berperilaku seperti penurunan gradien tumpukan penuh.
Gambar 26. Model dilatih dengan batch mini PGS.
Saat melatih model, Anda mungkin berpikir bahwa derau adalah karakteristik yang tidak diinginkan dan harus dihilangkan. Namun, jumlah derau tertentu dapat menjadi hal yang baik. Dalam modul selanjutnya, Anda akan mempelajari bagaimana derau dapat membantu model menggeneralisasi dengan lebih baik dan menemukan bobot dan bias yang optimal di jaringan neural.
Epoch
Selama pelatihan, epoch berarti bahwa model telah memproses setiap contoh dalam set pelatihan satu kali. Misalnya, dengan set pelatihan yang berisi 1.000 contoh dan ukuran mini-batch 100 contoh, model akan memerlukan 10 iterations untuk menyelesaikan satu epoch.
Pelatihan biasanya memerlukan banyak epoch. Artinya, sistem perlu memproses setiap contoh dalam set pelatihan beberapa kali.
Jumlah epoch adalah hyperparameter yang Anda tetapkan sebelum model memulai pelatihan. Dalam banyak kasus, Anda harus bereksperimen dengan jumlah epoch yang diperlukan agar model berkonvergensi. Secara umum, lebih banyak epoch menghasilkan model yang lebih baik, tetapi juga memerlukan lebih banyak waktu untuk dilatih.
Gambar 27. Batch penuh versus batch mini.
Tabel berikut menjelaskan hubungan antara ukuran batch dan epoch dengan frekuensi model memperbarui parameternya.
Jenis batch | Kapan pembaruan bobot dan bias terjadi |
---|---|
Batch lengkap | Setelah model melihat semua contoh dalam set data. Misalnya, jika set data berisi 1.000 contoh dan model dilatih selama 20 epoch, model akan memperbarui bobot dan bias 20 kali, sekali per epoch. |
Penurunan gradien stokastik | Setelah model melihat satu contoh dari set data. Misalnya, jika set data berisi 1.000 contoh dan dilatih selama 20 epoch, model akan memperbarui bobot dan bias sebanyak 20.000 kali. |
Penurunan gradien stokastik tumpukan mini | Setelah model melihat contoh dalam setiap batch. Misalnya, jika set data berisi 1.000 contoh, dan ukuran batch adalah 100, dan model dilatih selama 20 epoch, model akan memperbarui bobot dan bias 200 kali. |