Error control codes(ECC)의 일종인 LDPC (low-density parity check) codes는 가장 우수한 성능의 ECC 중 하나이다. 그런데, LDPC codes의 decoding algorithm은 neural network로 설명이 가능하다. (사실, decoding algorithm으로 사용되는 belief propagation algorithm이 AI에서 시작된 방법이기 때문에 당연한 말이긴 하다.)
LDPC codes와 neural network
두 가지 group의 node들을 생각해보자. 여기서 각 node들은 neuron의 cell body이다. 예를 들어, belief propagarion algorithm의 일종인 sum-product algorithm의 경우, group 1은 덧셈 연산만 하고, group 2는 곱셈 연산만 한다. 이처럼 LDPC codes는 서로 다른 연산을 하는 두 가지 종류의 neuron들로 구성되어 있는 것이다.
각각의 node들은 edge들에 의해 연결되어 있는데, 각각의 edge는 때로는 input wire의 역할을 하고 때로는 output wire의 역할을 한다. 이 edge들을 통해 node에서 연산된 결과가 전파된다.
LDPC codes의 성능을 결정하는 요소
LDPC codes의 성능은 다음 세 가지 요소에 의해 결정된다. 여기서 성능은 얼마나 많은 error를 정정할 수 있는지를 말하는 것이다.
1) input wire를 통해 node에 입력되는 정보의 신뢰도
2) node 내의 연산
3) node들 간의 연결
'1) 입력되는 정보의 신뢰도'와 '2) node의 연산'이 decoding 성능을 결정한다는 것은 쉽게 생각할 수 있다. 보다 정확한 channel model을 통해 입력되는 정보의 신뢰도를 높이려 하는 것은 1)과 관련되어 있고, 각 node에서 어떤 연산(예를 들어, 덧셈 또는 곱셈)을 하는지는 2)와 관련되어 있는 것이다.
하지만, '3) node들 간의 연결'이 decoding 성능을 결정한다는 것은 흥미로운 일이다. 실제로 LDPC codes를 design한다는 것은 각 node들의 연결을 결정하는 것이고, node들 간의 연결에 따라 LDPC code의 decoding 성능은 크게 달라진다.
node들 간의 연결과 brain
신기한 것은 뇌(brain)에서도 node의 역할을 하는 neuron들 간의 연결이 상당히 중요하다는 것이다. MIT의 승현준(Sebastian Seung) 교수는 TED에서 neuron들 간의 연결이 얼마나 중요한지에 대해 설명했다. 그가 TED에서 말한 것은 다음 두 문장으로 요약된다.
I am more than my genes.
I am my connectome.
즉, 유전자 자체가 우리를 결정하는 것이 아니고, neuron 간의 연결(connectome)이 우리를 결정한다는 것이다. LDPC codes의 decoding algorithm 성능이 각 node들 간의 연결에 의해 결정된다는 것과 neuron 간의 연결이 brain에서 중요한 역할을 한다는 것에는 흥미로운 analogy가 있다.
cf. 승현준 교수의 TED는 한글 자막도 제공한다. :)
LDPC codes와 neural network
두 가지 group의 node들을 생각해보자. 여기서 각 node들은 neuron의 cell body이다. 예를 들어, belief propagarion algorithm의 일종인 sum-product algorithm의 경우, group 1은 덧셈 연산만 하고, group 2는 곱셈 연산만 한다. 이처럼 LDPC codes는 서로 다른 연산을 하는 두 가지 종류의 neuron들로 구성되어 있는 것이다.
각각의 node들은 edge들에 의해 연결되어 있는데, 각각의 edge는 때로는 input wire의 역할을 하고 때로는 output wire의 역할을 한다. 이 edge들을 통해 node에서 연산된 결과가 전파된다.
LDPC codes의 성능을 결정하는 요소
LDPC codes의 성능은 다음 세 가지 요소에 의해 결정된다. 여기서 성능은 얼마나 많은 error를 정정할 수 있는지를 말하는 것이다.
1) input wire를 통해 node에 입력되는 정보의 신뢰도
2) node 내의 연산
3) node들 간의 연결
'1) 입력되는 정보의 신뢰도'와 '2) node의 연산'이 decoding 성능을 결정한다는 것은 쉽게 생각할 수 있다. 보다 정확한 channel model을 통해 입력되는 정보의 신뢰도를 높이려 하는 것은 1)과 관련되어 있고, 각 node에서 어떤 연산(예를 들어, 덧셈 또는 곱셈)을 하는지는 2)와 관련되어 있는 것이다.
하지만, '3) node들 간의 연결'이 decoding 성능을 결정한다는 것은 흥미로운 일이다. 실제로 LDPC codes를 design한다는 것은 각 node들의 연결을 결정하는 것이고, node들 간의 연결에 따라 LDPC code의 decoding 성능은 크게 달라진다.
node들 간의 연결과 brain
신기한 것은 뇌(brain)에서도 node의 역할을 하는 neuron들 간의 연결이 상당히 중요하다는 것이다. MIT의 승현준(Sebastian Seung) 교수는 TED에서 neuron들 간의 연결이 얼마나 중요한지에 대해 설명했다. 그가 TED에서 말한 것은 다음 두 문장으로 요약된다.
I am more than my genes.
I am my connectome.
즉, 유전자 자체가 우리를 결정하는 것이 아니고, neuron 간의 연결(connectome)이 우리를 결정한다는 것이다. LDPC codes의 decoding algorithm 성능이 각 node들 간의 연결에 의해 결정된다는 것과 neuron 간의 연결이 brain에서 중요한 역할을 한다는 것에는 흥미로운 analogy가 있다.
cf. 승현준 교수의 TED는 한글 자막도 제공한다. :)




덧글
딩딩 2012/01/11 13:32 # 답글
뉴뢀 넷웤은 고놈의 한글인식 한창 짤때 뒤적뒤적 햇었는데, 학습시키고 다시돌리고 하다보니 지치더라구용ㅠㅠ
ykim 2012/01/11 23:46 #
반갑습니다. 딩딩님. :) 저는 사실 neural network에 대해 잘 아는 것은 아닌데요.. 요새 machine learning을 공부하기 시작했는데, neural network 내용이 나오더라구요. 그런데, 그 내용이 제가 석사 때 전공한 ECC와 밀접한 관련이 있어서, 신기한 마음에 글을 적어 봤습니다.
belief59 2012/04/08 19:40 # 삭제 답글
LDPC 배우고 있는데, 아직 잘 몰라서 이해가 잘 안 되지만, 잘 보고갑니다!
ykim 2012/04/14 05:57 #
아이디가 belief인 것이 belief propagation algorithm을 생각나게 하네요.. :)
감자가방 2012/05/21 14:14 # 삭제 답글
글 잘 읽었습니다.LDPC와 neural network가 이렇게 연결이 되는군요.
학부때 neural network 수업을 들었고, 대학원 다닐때 LDPC를 공부했는데, 제가 공부를 잘못했나 봐요.
둘간의 연관성에 대해서는 생각을 하질 못했네요.
Neural network를 배우면서 상당히 흥미로웠던 것 같아요.
사실 입문 단계여서 그럴수도 있지만요.