신경망:공동_방법

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
신경망:공동_방법 [2022/12/05 16:22] – jiwon신경망:공동_방법 [2026/09/09 10:20] (current) – [공동 방법(cavity method)] admin
Line 1: Line 1:
-=====소울라스 코드=====+======소울라스 코드======
  
 정보가 전송되는 과정에서 전달 채널의 잡음 때문에 원래의 정보가 수신자에게 깨끗하게 전송되지 못한다. 이 때 전송되는 메시지의 용량이 채널의 용량보다 작다면 정보 전달이 잡음 없이 이루어질 수 있음이 섀넌에 의해 증명되었고, 소울라스 코드는 이러한 섀넌의 한계에 도달하기 위한 한가지 방법이다. 소울라스 코드를 만드는 과정은 다음과 같다.  정보가 전송되는 과정에서 전달 채널의 잡음 때문에 원래의 정보가 수신자에게 깨끗하게 전송되지 못한다. 이 때 전송되는 메시지의 용량이 채널의 용량보다 작다면 정보 전달이 잡음 없이 이루어질 수 있음이 섀넌에 의해 증명되었고, 소울라스 코드는 이러한 섀넌의 한계에 도달하기 위한 한가지 방법이다. 소울라스 코드를 만드는 과정은 다음과 같다. 
Line 13: Line 13:
 를 계산해서 가장 그럴듯한 $\sigma$를 찾아내는 것으로 이해할 수 있다. 를 계산해서 가장 그럴듯한 $\sigma$를 찾아내는 것으로 이해할 수 있다.
  
-=====공동 방법(cavity method)=====+======공동 방법(cavity method)======
 위에서 언급했던 조건부 확률을 계산하려면 분배함수 $Z=\sum_{\vec\sigma}e^{-\beta H(\vec\sigma)}$를 계산해야 하는데 이 과정의 계산복잡도는 $2^N$로 매우 크다. 하지만 공동 방법(cavity method)를 이용하면 희박한 인자 그래프 모형에 대한 분배함수를 $=O(N)$까지 줄여 계산할 수 있다. 위에서 언급했던 조건부 확률을 계산하려면 분배함수 $Z=\sum_{\vec\sigma}e^{-\beta H(\vec\sigma)}$를 계산해야 하는데 이 과정의 계산복잡도는 $2^N$로 매우 크다. 하지만 공동 방법(cavity method)를 이용하면 희박한 인자 그래프 모형에 대한 분배함수를 $=O(N)$까지 줄여 계산할 수 있다.
  
-이를 위해 먼저 위 코드를 인자 그래프로 나타내어보자. 아래 그림에서 동그라미는 $\vec\sigma$에 해당하는 스핀 변수, 네모는 $\mathbf J$에 해당하는 기능 노드, 연결선은 변환 규칙에 따라 긋는다.+이를 위해 먼저 위 코드를 [[수학:인자_그래프|인자 그래프]]로 나타내어보자. 아래 그림에서 동그라미는 $\vec\sigma$에 해당하는 스핀 변수, 네모는 $\mathbf J$에 해당하는 기능 노드, 연결선은 변환 규칙에 따라 긋는다.
  
-{{ :신경망:fig2.1.png?500 |}}+{{:신경망:factor_graph_full.png?400|}}
  
 원래 그래프에 아래처럼 새로운 기능 노드 $a$를 추가한다면 원래 그래프에 아래처럼 새로운 기능 노드 $a$를 추가한다면
-{{ :신경망:fig2.2.png?500 |}}+ 
 +{{:신경망:adding_a_functional_node.png?500|}} 
 전체 해밀토니안은 전체 해밀토니안은
 $$H^{\text{new}} = H^{\text{old}} - J_a\prod_{i\in\partial a}\sigma_i$$ $$H^{\text{new}} = H^{\text{old}} - J_a\prod_{i\in\partial a}\sigma_i$$
Line 49: Line 51:
  
 마찬가지로 아래 그림의 회색 영역처럼 스핀 변수 하나와 인접한 기능 노드들을 한꺼번에 추가하는 경우도 생각해볼 수 있을 것이다. 마찬가지로 아래 그림의 회색 영역처럼 스핀 변수 하나와 인접한 기능 노드들을 한꺼번에 추가하는 경우도 생각해볼 수 있을 것이다.
-{{ :신경망:fig2.3.png?500 |}}+ 
 +{{:신경망:adding_a_variable_node.png?500|}} 
 이 때 새로운 해밀토니안은 이 때 새로운 해밀토니안은
 $$H^{\text{new}} = H^{\text{old}} -\sum_{b\in\partial i}J_b\prod_{j\in\partial b}\sigma_j$$ $$H^{\text{new}} = H^{\text{old}} -\sum_{b\in\partial i}J_b\prod_{j\in\partial b}\sigma_j$$
Line 85: Line 89:
 와 같이 쓸 수 있다. 와 같이 쓸 수 있다.
  
-====참고문헌==== +======함께 보기====== 
-Haiping Huang, Statistical Physics of Neural Networks, Springer, 2021+  * [[수학:인자_그래프|인자 그래프]] 
 +  * [[물리:tap_방정식|TAP 방정식]] 
 +  * [[물리:스핀_유리|스핀 유리]] 
 + 
 +======참고문헌====== 
 +  * Haiping Huang, //Statistical Physics of Neural Networks// (Springer, 2021).
  
  
  • 신경망/공동_방법.1670224931.txt.gz
  • Last modified: 2023/09/05 15:46
  • (external edit)