Matlab에서 벡터의 정규화 지수를 계산해야합니다. 단순히 V의 요소수치 적으로 안정적인 구현
res = exp(V)/sum(exp(V))
오버플 작성
는로그 (realmax) = 709.7827보다 크다. (언더 플로우 조건에 대해 잘 모르겠습니다.)
숫자가 불안정하지 않도록 구현하려면 어떻게해야합니까?
업데이트 : 오버플로를 방지하는 방법에 대한 훌륭한 답변을 받았습니다. 그러나 코드에서 언더 플로의 가능성에 대한 귀하의 생각을 듣고 기쁘게 생각합니다.
감사. 나는 bsxfun을 처음 사용합니다. V가 행렬이라면 무엇을 Dim Dim을 따라 적용하기를 원합니까? – user25004
@ user25004 어떻게 될까요? 'exp (V)'는 행렬이되고'sum (exp (V), dim)'는 벡터가됩니다. 어떻게'exp (V)/sum (exp (V, dim))'를 정의 할 수 있습니까? –
dim이라는 변수가 1 인 경우 이전 코드를 각 열에 적용해야합니다. dim이 2이면 코드는 행별로 적용됩니다. – user25004