Menunggu kursus selanjutnya Andrew Ng di Coursera, saya mencoba memprogram classifier Python dengan fungsi softmax pada layer terakhir untuk memiliki probabilitas yang berbeda. Namun, ketika saya mencoba menggunakannya pada dataset CIFAR-10 (input: (3072, 10000)), saya mengalami overflow ketika menghitung eksponensial. Memang, saya memiliki angka seperti 5000, 10000 atau 25000.
Saya sudah mencoba dua hal:
- kurangi konstanta ke matriks sebelum menghitung eksponensial tetapi saya memiliki perbedaan besar antara angka-angka jadi, saya tidak bisa melakukan itu.
- menghitung eksponensial dari log matriks tetapi masih melimpah.
Adakah yang bisa membantu saya menghindari masalah ini?
Terima kasih
Jawaban:
Perhatikan itu
Jelas itu tidak benarexsaya=exsaya- m , tetapi versi yang dinormalisasi adalah sama. Masalah Anda adalah bahwaxsaya Terlalu besar, jadi kurangi angka yang sama m dari mereka semua sebelum Anda mengambil softmax. Terkadang orang mengaturm menjadi maksimum semua xsaya s.
sumber