Untuk membingkai pertanyaan, dalam ilmu komputer sering kita ingin menghitung produk dari beberapa probabilitas:
P(A,B,C) = P(A) * P(B) * P(C)
Pendekatan paling sederhana adalah melipatgandakan angka-angka ini, dan itulah yang akan saya lakukan. Namun, bos saya mengatakan lebih baik menambahkan log probabilitas:
log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C))
Ini memberikan probabilitas log, tetapi kita bisa mendapatkan probabilitas setelahnya jika perlu:
P(A,B,C) = e^log(P(A,B,C))
Penambahan log dianggap lebih baik karena dua alasan:
- Ini mencegah "underflow" di mana produk probabilitas sangat kecil sehingga dibulatkan menjadi nol. Ini sering bisa menjadi risiko karena probabilitas seringkali sangat kecil.
- Itu lebih cepat karena banyak arsitektur komputer dapat melakukan penambahan lebih cepat daripada perkalian.
Pertanyaan saya adalah tentang poin kedua. Ini adalah bagaimana saya melihatnya dijelaskan, tetapi tidak memperhitungkan biaya tambahan untuk mendapatkan log! Kita harus membandingkan "biaya log + biaya penambahan" ke "biaya penggandaan". Apakah masih lebih kecil setelah memperhitungkannya?
Juga, halaman Wikipedia ( Kemungkinan log ) membingungkan dalam hal ini, yang menyatakan "Konversi ke formulir log mahal, tetapi hanya dilakukan sekali." Saya tidak mengerti ini, karena saya pikir Anda perlu mengambil log dari setiap istilah secara independen sebelum menambahkan. Apa yang saya lewatkan?
Akhirnya, pembenaran bahwa "komputer melakukan penambahan lebih cepat daripada multiplikasi" agak kabur. Apakah itu spesifik untuk set instruksi x86, atau itu beberapa sifat yang lebih mendasar dari arsitektur prosesor?