Để đóng khung câu hỏi, trong khoa học máy tính, chúng tôi thường muốn tính toán sản phẩm của một số xác suất:
P(A,B,C) = P(A) * P(B) * P(C)
Cách tiếp cận đơn giản nhất chỉ đơn giản là nhân những con số này, và đó là điều tôi sẽ làm. Tuy nhiên, ông chủ của tôi nói rằng tốt hơn là thêm nhật ký xác suất:
log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C))
Điều này đưa ra xác suất đăng nhập, nhưng chúng ta có thể có xác suất sau đó nếu cần:
P(A,B,C) = e^log(P(A,B,C))
Đăng nhập bổ sung được coi là tốt hơn vì hai lý do:
- Nó ngăn chặn "dòng chảy" theo đó sản phẩm của xác suất quá nhỏ đến mức nó được làm tròn thành không. Điều này thường có thể là một rủi ro vì xác suất thường rất nhỏ.
- Nó nhanh hơn vì nhiều kiến trúc máy tính có thể thực hiện bổ sung nhanh hơn nhân.
Câu hỏi của tôi là về điểm thứ hai. Đây là cách tôi đã thấy nó được mô tả, nhưng nó không tính đến chi phí bổ sung để có được nhật ký! Chúng ta nên so sánh "chi phí log + chi phí bổ sung" với "chi phí nhân". Nó vẫn còn nhỏ hơn sau khi tính đến điều đó?
Ngoài ra, trang Wikipedia ( Xác suất đăng nhập ) gây nhầm lẫn về mặt này, trong đó nêu rõ "Việc chuyển đổi sang hình thức nhật ký rất tốn kém, nhưng chỉ phát sinh một lần." Tôi không hiểu điều này, vì tôi nghĩ rằng bạn sẽ cần phải ghi nhật ký của mọi thuật ngữ một cách độc lập trước khi thêm. Tôi đang thiếu gì?
Cuối cùng, lời biện minh rằng "máy tính thực hiện phép cộng nhanh hơn phép nhân" là một điều mơ hồ. Là cụ thể cho tập lệnh x86, hay nó là một đặc điểm cơ bản hơn của kiến trúc bộ xử lý?