확률 대신 최대 로그 확률을 최적화해야하는 이유


66

당신은 어떤 확률 공식화 수있는 대부분의 기계 학습 작업에서 극대화해야한다, 우리는 실제로 로그 확률 최적화 것 대신 일부 매개 변수에 대한 확률의 . 예를 들어 최대 우도 훈련에서는 일반적으로 로그 우도입니다. 일부 그라디언트 방법 으로이 작업을 수행 할 때 요인이 있습니다.plogpθ

logpθ=1ppθ

몇 가지 예는 여기 또는 여기 를 참조 하십시오 .

물론 최적화는 동일하지만 그래디언트는 달라 지므로 그래디언트 기반 방법은 다르게 동작합니다 (예 : 확률 적 그래디언트 방법). 어떤 정당화는 것을 거기에 그라데이션이보다 더 나은 작동 그라데이션?logpp


3
우리는 일반적으로 파생 상품을 사용하여 가능성을 극대화한다는 것을 알아야합니다. 반면에 많은 경우에 독립 조건이 적용되어 우도는 일부 iid 확률 밀도 함수의 곱이라는 의미입니다. 또한 많은 작은 값 ([0,1] 간격으로)의 곱은 매우 작은 값을 초래합니다. 이로 인해 계산이 어려워집니다.
TPArrow

@AlejandroRodriguez 자세한 내용은 여기 에서 내 대답을 확인 하십시오.
Paul

답변:


65

그라데이션 방법은 일반적으로 더 나은 최적화 작업 비해 의 기울기 때문에 일반적으로 더 잘 조정 . 즉, 목적 함수의 형상을 일관되고 유용하게 반영하는 크기를 가지므로 적절한 단계 크기를 쉽게 선택하고 더 적은 단계로 최적의 결과를 얻을 수 있습니다.logp(x)p(x)logp(x)

의미를 확인하려면 및 대한 그래디언트 최적화 프로세스를 비교하십시오 . 어떤 점에서, 의 기울기 인이 값에 을 곱하면 관계없이 원점에서 전역 최적에 도달하는 데 필요한 정확한 단계 크기를 얻습니다.p(x)=exp(x2)f(x)=logp(x)=x2xf(x)

f(x)=2x.
1/2x입니다. 이것은 우리가 좋은 스텝 크기 (또는 ML 전문 용어의 "학습 속도")를 얻기 위해 너무 열심히 일할 필요가 없음을 의미합니다. 초기 지점이 어디에 있더라도 단계를 그라디언트의 절반으로 설정하면 한 단계에서 원점이됩니다. 필요한 정확한 요소를 모른다면 약 1 단계 정도의 스텝 크기를 선택하고 약간의 라인 검색을 수행하면 어디에서든 잘 작동하는 매우 빠른 단계 크기를 찾을 수 있습니다. 는 이 속성은 의 변환 및 크기 조정에 강력합니다 . 확장하는 동안 단계 스케일링 상관없이 동일하지 않습니다 적어도 1/2에서 차이 확장 최적의 단계, 원인이됩니다 입니다, 그래서 우리는 효율적인 그라데이션 기반 최적화를 얻기 위해 하나 개의 매개 변수를 찾을 수있다 계획.xf(x)f(x)x

대조적으로, 의 기울기는 최적화를 위해 매우 열악한 전역 특성을 갖는다. 우리가이것은 증가함에 따라 지수 적으로 (보다 빠릅니다 인자 와 함께 완벽하게 훌륭하고 잘 동작하는 그래디언트 를 곱합니다 . 에서, , 우리는 이미 너무 그래디언트 벡터에 따른 공정은 약이며, 시간이 너무 작. 최적의 단계 크기를 합리적으로 얻기 위해서는 그 역수에 따라 그레디언트의 스케일을 조정해야합니다. 엄청난 상수p(x)

p(x)=f(x)p(x)=2xexp(x2).
2xexp(x2)xx=5exp(x2)=1.4101110111011. 이러한 잘못된 스케일링 그라디언트는 최적화 목적으로 쓸모없는 것보다 나쁩니다. 에 대해 스케일링하여 스텝을 설정하는 것보다 오르막 방향으로 단위 스텝을 시도하는 것이 좋습니다 . (많은 변수에서 는 그래디언트에서 방향 정보를 가져 오기 때문에 조금 더 유용하지만 스케일링 문제는 남아 있습니다.)p(x)p(x)

일반적으로 가이 장난감 예제와 같이 특히 그라디언트 스케일링 속성이 우수 하다는 보장은 없습니다 . 그러나 사소한 문제가 거의 없다면 는 보다 낫습니다 . 이는 가능성이 많은 용어가 포함 된 큰 제품이기 때문에 여러 답변에서 언급 한대로 로그는 해당 제품을 합계로 바꿉니다. 가능성의 용어 가 최적화 관점에서 잘 작동 하면 로그는 일반적으로 잘 작동하고 잘 작동하는 기능의 합은 잘 작동합니다. 잘 행동 함으로써 나는logp(x)logp(x)p(x)f(x)너무 많이 또는 너무 빠르게 변경되지 않으므로 그래디언트 방법으로 최적화하기 쉬운 거의 이차 함수로 이어집니다. 도함수의 합은 도함수의 순서에 상관없이 합의 도함수이며, 이는 합산의 큰 더미가 매우 합리적인 이차 도함수를 갖도록하는 데 도움이됩니다!


4
+1이 답변은 문제의 핵심에 도달하는 요점을 제시하고 강조합니다.
whuber

47

언더 플로우

컴퓨터는 분수의 소수 자릿수 부동 소수점 표현을 사용하여 많은 확률을 곱하면 0에 매우 가깝습니다.

사용하면 이 문제가 없습니다.log


3
수치 적 안정성 +1-이것과 Yuril의 대답은 하나 여야합니다!
Alec Teal

1
로그 공간에서 제품을 계산하여 합계가 된 다음 다시 전송할 수 있습니다. 또는 를 계산합니다. 이는 . 따라서 수치 적 안정성은 문제가되지 않습니다. logpθppθ
Albert

1
것을 명심 당신이 언급 한이 샘플에서 이벤트의 모든 확률의 곱셈이며, 언더하는 요소의 적용을받습니다. pp
Uri Goren

5
@Filip이 스레드의 용어는 다소 잘못 권장됩니다. 우리는 확률이 아닌 확률 밀도에 대해 논의하고 있습니다. 밀도는 임의적입니다. 측정 단위에 따라 다릅니다. 또한, 충분한 표본 크기의 경우, 모수 모형에서 추출한 단순 표본의 확률 밀도는 결국 보다 작습니다 . 수백만 개의 데이터가있는 큰 문제에서 확률 밀도는 일반적으로 이하입니다. 표준 정규 분포 의 크기가 표본도 미만의 확률 밀도를 갖는 것이 거의 확실합니다 . 212721000000802127
whuber

4
@FilipHaglund : whuber는 정확하지만 밀도라는 사실이 중요한 관찰은 아닙니다. 우리는 또한 개별 프로세스를 논의하고 실제 확률에 대해 이야기 할 수 있습니다 (사실 OP는이 경우를 제외하고는 아무것도 말하지 않았습니다). 그러나 우리는 매우 구체적인 결과에 대한 확률 (예 : 특정 방식으로 진행되는 백만 건의 관측)에 대해 이야기하고 있습니다. 하나의 구체적인 결과는 거의 없지만 베이지안에서는 확률의 확률이 중요하므로 다른 확률보다 작은 것이 얼마나 큰지 알아야합니다.
Meni Rosenfeld

34
  1. 복수의 공동 확률 확률 의 로그는 개별 확률의 로그의 합계단순화됩니다 (그리고 합계 규칙은 미분에 대한 곱 규칙보다 쉽습니다).

    log(iP(xi))=ilog(P(xi))

  2. 지수 확률 분포 (유비쿼터스 법선 포함) 패밀리의 로그 는 다항식입니다 (즉 , 정규 분포의 경우 최대 가능성은 최소 제곱으로 감소합니다 )

    log(exp(12x2))=12x2

  3. 후자의 형태는 전자보다 형태 적으로안정적 이고 상징적 으로 구별하기 쉽다.

  4. 마지막으로, 대수는 극한의 위치를 ​​유지 하는 단조 변환입니다 (특히, 최대 우도의 추정 된 매개 변수는 원본과 로그 변환 된 공식에 대해 동일합니다)


5
이유 2는 충분히 스트레스를받을 수 없습니다. 가우스 잡음이있는 선형 모형의 로그 우도를 최대화하려면 최소 제곱 문제를 해결하면 선형 방정식 시스템을 해결할 수 있습니다.
Paul

이유 1과 3은 계산 방법을 설명합니다. 당신은 그런 식으로 계산 한 후 (곱셈하여 다시 변환 할 수 있습니다 얻을 수) . 수치 안정성을 위해 로그 공간에서 계산하는 것이 실제로 일반적입니다. 그러나 이것이 왜 그래디언트를 사용하는지 설명하지 않습니다. 이유 4는 그라디언트가 더 좋은 이유도 아닙니다 . 다른 많은 변형에서도 그렇게 할 수 있습니다. 이유 2는 흥미롭지 만 왜 다항식의 기울기가 다른 함수의 기울기보다 더 좋은지 여전히 확실하지 않습니다. ppθlogp
Albert Albert

지수 함수는 단순히 분화하에 수행하는 반면, 다항식의 유도체 @Albert 1도 이하의 다항식 (특히는, 차 선형 간다)이다
TemplateRex

@TemplateRex : 그렇습니다. 그러나 확률 적 그라디언트 방법의 수렴 속성에 대해 묻고 있습니다.
Albert

25

100 곱셈기를 포함하는 곱의 미분을 취하는 것보다 로그의 미분을 얻는 것이 훨씬 쉽습니다.


10
또한 용어가 매우 작거나 커질 때 잠재적 인 숫자 문제를 줄입니다.
Björn

8
반대로 OP는 음이 아닌 함수 제품의 파생 상품을 계산하는 훌륭한 방법을 암시 적으로 제공합니다. 로그 파생 상품의 합계에 곱 자체를 곱합니다. (이 곱셈은 대수의 관점에서 가장 잘 수행되므로 @ Björn의 의견에서 언급 된 수치 문제도 제거됩니다.) 따라서 "편리함"은 실제 설명력을 제공하지 않으며 그래디언트 비교에 대한 더 의미있는 질문도 다루지 않습니다. .
whuber

10

일반적으로 가장 기본적이고 쉬운 최적화 문제는 2 차 함수를 최적화하는 것입니다. 어디에서 시작하든 최적의 기능을 쉽게 찾을 수 있습니다. 이것이 나타나는 방법은 특정 방법에 달려 있지만 함수가 2 차에 가까울수록 좋습니다.

TemplateRex가 지적했듯이, 다양한 문제에서 우도 함수를 계산할 확률은 정규 분포에서 비롯되거나 근사치에 의해 근사됩니다. 따라서 로그에서 작업하면 멋진 이차 함수를 얻을 수 있습니다. 확률에 대해 작업하는 경우

  1. 볼록하지 않습니다 (모든 곳에서 최적화 알고리즘의 허풍)
  2. 여러 스케일을 빠르게 교차하므로 함수 값이 검색을 지시 할 위치를 나타내는 매우 좁은 범위를 갖습니다.

어떤 기능, this 또는 this를 최적화 하시겠습니까?

(이것은 실제로는 쉬운 일이었습니다. 실제 응용 프로그램에서는 함수 값과 그라디언트를 수치 적으로 계산할 수 있었더라도 0에서 구별 할 수 없으며 최적화 목적으로 쓸모가 없도록 최적의 검색을 시작할 수 있습니다. 알고리즘을 2 차 함수로 변환하면 케이크 한 조각이됩니다.)

이것은 이미 언급 한 수치 안정성 문제와 완전히 일치합니다. 이 기능을 사용하기 위해 로그 스케일이 필요한 이유는 로그 확률이 ​​원래보다 훨씬 더 잘 동작하는 이유와 동일합니다 (최적화 및 기타 목적으로).

다른 방법으로 접근 할 수도 있습니다. 로그에 이점이 없더라도 파생 및 계산에 로그 스케일을 사용할 것이므로 그래디언트를 계산하기 위해 exp 변환을 적용 해야하는 이유는 무엇입니까? 로그와 일관성을 유지할 수도 있습니다.


@TemplateRex : (아래로) 볼록 포지티브 함수의 로그는 볼록하지만 그 반대는 사실이 아닙니다. 확률은 볼록하지 않으므로 보존 할 것이 없지만 로그는 볼록합니다. 내가 연결 한 그래프를보십시오-exp (-10x ^ 2)는 볼록하지 않지만 -10x ^ 2입니다.
Meni Rosenfeld

4

를 사용하여 최적화 알고리즘의 동적 범위를 증가시킵니다. 응용 프로그램 의 는 일반적으로 함수의 곱입니다. 예를 들어, 최대 우도 추정에서 형식의 곱입니다 여기서 는 밀도 함수 1보다 크거나 작은 btw.lnppL(x|θ)=Πi=1nf(xi|θ)f(.)

따라서 이 매우 크면 (예 : 큰 표본) 우도 함수 은 일반적으로 1에서 멀리 떨어져 있습니다. 이라는 거듭 제곱이기 때문에 매우 작거나 매우 큽니다 .nL(.)Lf(.)n

로그를 취함으로써 모든 최적화 알고리즘의 동적 범위를 개선하여 동일한 방식으로 매우 크거나 작은 값으로 작업 할 수 있습니다.


0

좋은 답변이 이미 주어졌습니다. 그러나 최근에 새로운 것을 만났습니다.

종종 거대한 학습 데이터 세트 가 제공되고 확률 모델 를 정의하고 의 가능성을 최대화하려고합니다 . 그것들은 독립적 인 것으로 가정합니다. 즉, 지금, 당신은 종종 각 단계에서, 즉 확률 (미니 배치) 그라데이션 기반 교육, 일종의을, 당신의 손실에 대해 , 당신은 최적화 에 대한 , 즉 Xp(x|θ)xX

p(X|θ)=xXp(x|θ).
LL(X|θ)XX
θ:=θxXL(x|θ)θ.
이제 이러한 확률 적 단계는 추가로 누적됩니다. 이 때문에 일반적으로 속성을 원합니다 이것에 대한 경우
L(X|θ)=xXL(x|θ).
L(x|θ)=logp(x|θ).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.