计算对数似然时避免 -inf (MATLAB)

Avoiding -inf when calculating Log Likelihood (MATLAB)

使用MATLAB计算时

Log_likelihood=log((1/1e8)*exp(-0.5*SSR)),

如果 SSR(即标准平方误差)很大(例如 SSR=1e4),则 exp() 变为零并且 Log_likelihood 变为 -inf。

有什么numerical/mathematical技巧可以解决这个问题吗?

谢谢

假设你的log是一个自然对数:

log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b.

其中 a=(1/1e8)b = -0.5*SSR
而且,log(1/1e8) = log(1) - log(1e8),所以上式变成-log(1e8) + b,而第一项是常数,可以预先计算。