2016-11-20 10 views
0

:왜 log_sum을 구현하는 것이 더 효율적입니까? 이 스레드에 따르면

log(a + b) = log(a * (1 + b/a)) = log a + log(1 + b/a)

나는이 방법이 더 효율적입니다 이유에 대한 혼란 스러워요 .. 사람이에 대한 아이디어가 있습니까 : To Compute log(a+b)

때때로 log_sum는 다음과 같이 구현된다?

+0

대체 무엇을 반대합니까? –

+1

그것은 반대쪽에 있지 않습니다 (그리고 지적 된 대답에서 아무데도 말하지 않았습니다). –

답변

3

이 접근법은 a이 일정 (적어도 일부는 b 값)이고 b<<a (상당히 더 작음) 일 때 유용 할 수 있습니다. 이 경우 log(1 + b/a)는에, (일부 수학 라이브러리 log1p 기능 another method) 빠른 Taylor series 확장을 통해 좋은 정밀 내가 확률, 또는 우도 다루고 이런 종류의 물건을 본 적이

2

한 곳에서 계산 될 수있다 높은 차원 공간. 하나는 때때로 확률은 종종 복식으로 표현하기에 너무 작을 수 그러나

p1 + p2 + .. 

같은 금액을 계산하고 싶어, 그래서 하나는 종종 대신 확률의 로그와 함께 작동합니다. 그리고 우리가 난 P1 등의 로그입니다

log(exp(l1) + exp(l2) + ..) 

을 계산 할 문제는 하나가 바로 EXPS을 평가하는 경우, 하나가 아니라 0을 얻을 수있는, 다음 식을 indefined된다 있다는 것입니다. 그러나 당신이 암시 트릭은 구조에, 우리는

l1 + log(1 + exp(l2-l1) + ...) 

을 평가할 수있는이 합리적으로 (L1은 L의 가장 큰 적어도 경우) 평가합니다 온다.

효율성의 문제는 아니지만 한정된 정밀도의 복식을 얻는 것입니다.