RBM (제한된 볼츠만 기계)의 직관


15

코스 라에서 Geoff Hinton의 신경망 과정을 밟았고 제한된 boltzmann 기계소개했지만 RBM 의 직관을 이해하지 못했습니다.

이 기계에서 에너지를 계산해야하는 이유는 무엇입니까? 이 기계에서 확률의 사용은 무엇입니까? 나는 또한이 비디오를 보았다 . 비디오에서 그는 계산 단계 전에 확률과 에너지 방정식을 작성했지만 어디에서나 사용하지 않는 것으로 보입니다.

위의 내용에 덧붙여서 우도 함수가 무엇인지 잘 모르겠습니다.


나는 질문을 정리하려고 노력했지만 더 많은 노력이 필요하다고 생각합니다. 이해하고 있는 것,보다 구체적으로 어디에 붙어 있는지 설명해야합니다 . 그렇지 않으면 질문이 너무 광범위합니다.
Neil Slater

머릿속으로 들어간 유일한 것은 3 단계가 있습니다. 먼저 양의 단계, 그 다음의 단계는 무게의 재구성입니다. 그러나 에너지와 확률 함수는 어떻습니까? 여기에 무슨 소용이 있습니까? 그리고이 과정을 몇 번이나해야합니까 (긍정적 단계-> 부정적 단계> 가중치 재구성)?
Born2Code

답변:


5

RBM은 재미있는 짐승입니다. 귀하의 질문에 대답하고 그에 대한 기억을 되찾기 위해 RBM을 도출하고 파생을 통해 이야기하겠습니다. 당신은 당신이 그 가능성에 대해 혼란 스럽다고 언급 했으므로, 나의 파생은 그 가능성을 최대화하려는 관점에서 나올 것입니다. 이제 시작하겠습니다.

RBM에는 보이는 것과 숨겨지는 두 가지 뉴런 세트가 포함되어 있습니다 . 각각 와 표시하겠습니다 . 와 의 특정 구성이 주어지면 확률 공간을 매핑합니다.h v hvhvh

p(v,h)=eE(v,h)Z

더 정의해야 할 것이 몇 가지 있습니다. 특정 구성에서 확률 공간으로 매핑하는 데 사용하는 대리 함수를 에너지 함수 합니다. 상수는 우리가 실제로 확률 공간에 매핑되도록 정규화 요소이다. 이제 우리가 정말로 찾고있는 것에 도달합시다. 눈에 보이는 뉴런 세트의 확률, 즉 데이터의 확률. Z Z = v V h H e - E ( v , h ) p ( v ) = h H p ( v , h ) = h H e - E ( v , h )E(v,h)Z

Z=vVhHeE(v,h)
p(v)=hHp(v,h)=hHeE(v,h)vVhHeE(v,h)

이 방정식에는 많은 용어가 있지만 올바른 확률 방정식을 작성하는 것만으로 간단합니다. 다행히도 지금까지 확률을 계산하기 위해 에너지 함수가 필요한 이유 또는 더 일반적으로 수행되는 정규화되지 않은 확률 하는 데 도움이 되었기를 바랍니다 . 분할 함수 가 계산하는 데 매우 비싸기 때문에 정규화되지 않은 확률이 사용됩니다 .Zp(v)ZZ

이제 RBM의 실제 학습 단계로 넘어 갑시다. 가능성을 최대화하려면 모든 데이터 포인트에 대해 을 만들기 위해 기울기 단계를 수행해야합니다 . 그라디언트 표현을 얻으려면 수학 곡예가 필요합니다. 우리가하는 첫 번째 일은 의 로그를 취하는 것 입니다. 우리는 수학을 실현하기 위해 지금부터 로그 확률 공간에서 작동 할 것입니다.( V )p(v)=1p(v)

p ( v )

log(p(v))=log[hHeE(v,h)]log[vVhHeE(v,h)]
의 파레 미터에 대한 기울기를 보자p(v)

log(p(v))θ=1hHeE(v,h)hHeE(v,h)E(v,h)θ+1vVhHeE(v,h)vVhHeE(v,h)E(v,h)θ

이제 나는 종이에 이것을 하고이 사이트의 많은 공간을 낭비하지 않기 위해 준결승 방정식을 썼습니다. 나는 당신이이 방정식을 스스로 도출 할 것을 권장합니다. 이제 파생을 계속하는 데 도움이되는 방정식을 작성하겠습니다. 참고 : , 그리고Zp(v,h)=eE(v,h)p(v)=hHp(v,h)p(h|v)=p(v,h)p(h)

log(p(v))θ=1p(v)hHp(v,h)E(v,h)θ+vVhHp(v,h)E(v,h)θlog(p(v))θ=hHp(h|v)E(v,h)θ+vVhHp(v,h)E(v,h)θ

RBM에 대한 최대 우도 추정치를 도출했습니다. 각 항 (조건부 및 합동 확률)의 기대를 통해 마지막 두 항을 작성할 수 있습니다.

뉴런의 에너지 기능 및 확률에 대한 참고 사항.

E(v,h)=aTvbThvTWh.

예상 양식을 통해 위의 그래디언트 항에 대해 추론하기가 더 쉬울 수 있습니다.

log(p(v))θ=Ep(h|v)E(v,h)θ+Ep(v,h)E(v,h)θ

첫 번째 용어에 대한 기대는 실제로 계산하기가 쉽고 RBM의 배후에는 천재였습니다. 연결을 제한함으로써 조건부 기대는 가시적 단위가 고정 된 상태에서 RBM의 순방향 전파가됩니다. 이것은 Boltzmann 기계에서 소위 웨이크 단계입니다. 이제 두 번째 항을 계산하는 것이 훨씬 어렵고 일반적으로 Monte Carlo 방법이 사용됩니다. Monte Carlo의 평균을 통한 그라디언트 작성은 다음과 같습니다.

log(p(v))θE(v,h)θp(h|v)+E(v,h)θp(v,h)

첫 번째 항을 계산하는 것은 어렵지 않으므로 Monte-Carlo는 두 번째 항에 대해 수행됩니다. Monte Carlo 방법은 분포의 무작위 연속 샘플링을 사용하여 기대 값 (합계 또는 적분)을 계산합니다. 이제 고전적인 RBM에서 무작위 추출은 확률 적으로 확률을 기반으로 단위를 0 또는 1로 설정하는 것으로 정의됩니다. 0으로 설정 한 것보다 큽니다.


숨겨진 레이어 바이너리를 어떻게 만드는가? 활성화 기능 작동 후 Bcoz는 0과 1 사이의 값을 얻습니다.
Born2Code

일반적으로 활성화 임계 값을 지정하여 수행됩니다. 0.5를 초과하면 1이되고 아래는 0이됩니다.
아르 멘 아가야 얀

그러나이 링크 에서 섹션 3.1 : Hinton은 "이 확률이 0과 1 사이에 균일하게 분포 된 난수보다 크면 숨겨진 단위가 켜집니다"라고 말했습니다. 이것이 실제로 무엇을 의미합니까? 또한이 링크 에서 "0과 1 사이에서 균일하게 분포 된 난수를 선택할 때 j 번째 단위가 켜져 있으면 그 값이 sig [j]보다 작다는 것을 알 수 있습니다. 그렇지 않으면 꺼져 있습니다." 나는 이것을 얻지 못했다.
Born2Code

????? 특정 장치가 켜져 있는지 꺼져 있는지 어떻게 말합니까?
Born2Code

수정 사항을 추가했습니다. 이 알고리즘의 확률이 거기에서 파생 되었기 때문에 Monte Carlo 방법을 읽는 것이 좋습니다.
Armen Aghajanyan

5

기존 답변 외에도이 에너지 기능과 그 직관에 대해 이야기하고 싶습니다. 조금 길고 물리적 인 경우 죄송합니다.

에너지 함수는 소위 Ising 모델을 설명하는데 , 이는 통계 역학 / 양자 역학 측면에서 강자성 모델입니다. 통계 역학에서 우리는 소위 해밀턴 연산자를 사용하여 양자 역학 시스템의 에너지를 설명합니다. 그리고 시스템은 항상 에너지가 가장 낮은 상태에있게됩니다.

σkhijJij

H^=i,jJijσiσjμjhjσj
H^σ1=+1,σ2=1,...TpiiEi
pi=exp(Ei/kT)iexp(Ei/kt)

RBM은이 양자 역학적 강자성 모델과 어떤 관계가 있습니까?

엔트로피라는 최종 물리량을 사용해야합니다. 우리가 열역학에서 알 수 있듯이, 시스템은 최소 에너지를 가진 상태에 정착 할 것이며, 이는 또한 최대 엔트로피를 가진 상태에 해당합니다.

HXX

H(X)=iP(xi)logP(xi)
XH

마지막으로 RBM으로 돌아갑니다. 기본적으로이 RBM이 최대한 많은 정보 를 인코딩하기를 원합니다 . 따라서 RBM- 시스템에서 (정보-이론적) 엔트로피 를 최대화 해야합니다 . 1982 년 Hopfield가 제안한 바와 같이, 우리는 물리적 엔트로피와 같은 정보 이론적 엔트로피를 최대화 할 수 있습니다. 위의 Ising 모델과 같은 RBM을 모델링하여 동일한 방법을 사용하여 에너지를 최소화 할 수 있습니다. 이것이 RBM에서이 이상한 에너지 기능이 필요한 이유입니다!

Armen Aghajanyan의 답변 에서 멋진 수학적 파생 은 에너지를 최소화하기 위해 우리가해야 할 모든 것을 보여 주어 엔트로피를 극대화하고 RBM에 가능한 많은 정보를 저장 / 저장합니다.

추신 : 물리학 자 여러분,이 엔지니어의 파생물에 부정확 한 점이 있으면 용서하십시오. 부정확 한 점 (또는 실수)에 대해 의견을 말하거나 수정하십시오.


나는이 비디오를 보았다 . 그 시점부터 비디오를 본다. 그 샘플 번호는 어떻게 얻습니까? matlab에서 rand ()를 실행하여 얻었는지 여부 그런 다음 각 h (i)마다 다릅니다. 오! 나는 기계가 제대로 배울 것이라고 생각하지 않습니다.
Born2Code

@ Born2Code 이것은 또 다른 질문입니다. 이 사이트에 새로운 질문으로 게시 할 수 있습니까? 새 질문에 당신이 말하는 방정식을 추가하고 이해하지 못하는 부분을 설명하십시오.
hbaderts


0

@Armen의 답변으로 많은 통찰력을 얻었습니다. 그러나 한 가지 질문에 대한 답변이 없습니다.

vvh

E(v,h)=aTvbThvTWh

abW


숨겨진 레이어 바이너리를 어떻게 만드는가? 활성화 함수 작동 후 Bcoz는 0과 1 사이의 값을 얻습니다.
Born2Code

hvh_bin = (rand() < h_val) ? 1 : 0

@ NeilSlater : 그러나 왜 임의의 숫자입니까? 또한 각 반복에 대해 무작위를 생성해야하는지 또는 모든 반복에 대해 동일한 수를 사용해야합니까? 한 번 더 심각한 의심, 얼마나 많은 반복을 수행해야합니까? 나는 훈련 세트 V를 가지고 있는데, 이것은 오직 하나의 벡터, 즉 v1을 갖는다. v1을 사용하면 몇 번 반복해야합니까?
Born2Code

@ NeilSlater : 또 하나의 의심은, 동일한 난수를 숨겨진 레이어의 모든 값과 비교할 것인가? 나는 이것이 바보 같은 질문이라는 것을 알고 있지만 여전히
Born2Code

1
확률을 이진 값으로 해결하는 방법이므로 임의의 숫자입니다. 그것은 각각의 신경 세포 내부에 다른 번호 h또는 v당신이 - 샘플링 바이너리 값의 벡터 h또는 v예를의 대표하는 높은 통계 기회가 예 - 네트워크가 "믿는다"존재 예를 생성하기 위해, 훈련 세트. 훈련 중에 기존 훈련 예와 얼마나 잘 일치하는지 확인하고 그에 따라 가중치를 조정합니다.
Neil Slater
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.