wikipedia.org

폰 노이만이 쓴 <The Computer and the Brain(컴퓨터와 뇌)> 중 2부 뇌(Part 2. The Brain)를 읽었습니다. 원래 강연을 위해 준비한 원고인데 강연되지 못하고 1958년, 즉 폰 노이만이 죽은 다음 해에 책으로 나온 거라네요. (위키피디아 및 구글링 결과 참고) 여튼 무려 50년도 더 전에 씌어졌다는 걸 감안하고 봐야겠습니다.

책 제목에서 알 수 있듯이 인간의 뇌와 당시의 진공관/트랜지스터로 만든 컴퓨터를 비교하려는 목적으로 씌어진 것 같네요. 뉴런에 펄스가 있는 상태와 없는 상태를 컴퓨터의 0과 1로 볼 수 있다.는 식으로 얘기합니다. 여기서 뉴런의 펄스는 요즘 말(?)로 활동전위(action potential)를 말합니다.

반응시간은 뉴런이 한 번 발화(fire; spike)하고나서 다음 번 발화하기 전까지 필요한 '회복기'로 결정됩니다. 뉴런보다 진공관/트랜지스터의 반응시간이 훨씬 짧지요. 대신 크기를 보면 뉴런이 더 작습니다. 뉴런 1개가 차지하는 부피와 진공관/트랜지스터 1개가 차지하는 부피와 역시 각각이 소모하는 에너지 등을 비교하면 인간의 뇌가 훨씬 적은 부피를 차지하고 에너지 소비도 적다고 합니다.

종합하면, 인간의 뇌는 느린 뉴런이 매우 많이 모여서 병렬 처리를 잘 하는 시스템이고, 컴퓨터는 빠른 진공관/트랜지스터가 비교적 적게 모여서 직렬 처리를 잘 하는 시스템입니다. 요즘 집적회로를 보면 또 얘기가 달라질텐데, 그렇잖아도 1989년에 "The Computer and the Brain Revisited(컴퓨터와 뇌 다시보기)"라는 논문이 나왔더군요. 이것도 이미 20년 전 얘깁니다. 누가 2010년 버전으로 써주시면 좋겠네요~

이제 본격 계산의 관점으로 비교합니다. 어떤 뉴런 A는 다른 두 뉴런의 발화에 의존해 발화한다고 합시다. 두 뉴런이 모두 발화해야만 A가 발화한다면 이건 AND 게이트인 거고, 두 뉴런 중 적어도 하나만 발화해도 A가 발화한다면 OR 게이트인 겁니다. 여기에는 뉴런의 발화는 조건적이며 그 조건의 실체는 전위의 문턱값(threshold)입니다.

그런데 각 뉴런의 반응이 외부 자극의 크기에만 의존할 때도 있지만 뉴런들의 복합체(complexities; 복잡성들?)는 자극의 변화율을 기준으로 반응하기도 합니다. 즉 문턱값을 넘느냐 아니냐하는 디지털 역할을 할 때도 있지만 변화율에 따른 아날로그 역할을 할 때도 있고, 때론 두 가지가 섞인 역할(mixed role)을 하기도 합니다. 이렇게 복합체에 관해 얘기할 때는 뉴런의 개수보다 시냅스의 개수가 더 중요할 수도 있다고 하네요.

다음으로 기억(memory)에 관한 얘깁니다. 당시 컴퓨터는 십만에서 백만 비트 정도의 메모리를 썼다네요. 인간의 경우 외부든 내부든 자극에 반응하는 뉴런, 즉 수용체(receptor) 1개가 1초 동안 14번의 자극을 받아들인다고 합니다. 인간의 뇌가 10의 10제곱 개 뉴런으로 이루어져 있고 인간이 60년을 산다고 하면 대략 10의 20제곱 비트의 기억용량을 가질거다...라는 계산이 나옵니다. 그럼 기억의 실체가 뭐냐에 대해서는 "자주 쓰이는 뉴런의 문턱값이 낮아지"(64쪽)며 이게 곧 기억을 의미한다고 합니다.

이제 신경계의 디지털과 아날로그에 대한 논의로 넘어갑니다. 간단히 말해서 뉴런의 발화는 디지털이지만 그 발화로 인해 어떤 근육이 줄어든다던가 화학물질이 분비된다던가 하는 아날로그 변화가 생기고 또 이게 다른 뉴런을 발화(디지털)시킨다... 이렇게 디지털과 아날로그는 서로 영향을 미친다. 이게 앞서 말한 섞인 역할이기도 하다는 얘기입니다.

이제 '코드(code)' 얘기입니다. 뇌든 컴퓨터든 그것이 어떤 일을 수행하도록 지시하는 논리체계(a system of logical instructions)를 코드라고 합니다. 완전 코드(complete code)는 모든 세부 지시사항을 포함하는 것이고, 짧은 코드(short codes)는 한 기계가 다른 기계를 흉내내도록(imitate) 도와주는 코드를 말합니다. 튜링 이야기도 나오고요.

제가 글의 흐름을 제대로 파악하지 못한 건지(그럴 가능성이 매우 높겠죠?;;;) 원래 글이 좀 그래서 그런지 점점 중구난방이네요. 이제 신경계의 논리구조에 대해 이야기합니다. 이를 위해 논리(logic)와 산수(arithmetic)를 구별합니다. 공식이나 숫자 없이 어떤 복잡한 상황을 표현하기 힘들 때가 있는가 하면 그렇지 않을 때도 있다는 거죠.

산수에 관해서, 기계가 뇌를 흉내내려면 매우 정밀한 계산을 위한 장치가 필요하다고 합니다. 뇌는 매우 복잡한 산수를 하는데 기계가 이를 흉내낼 때는 오차가 생길 수밖에 없고 그 오차가 계산이 반복되는 과정에서 쌓이고 증폭되어 커지기 때문입니다. 신경계에서 수치 자료가 전달되는 방식을 보면, 자극의 세기에 따라 발화의 빈도가 단조롭게 증가합니다. 자극의 세기가 발화의 빈도로 번역되는 거죠. 그 빈도가 대략 1초에 50에서 200번 발화라고 합니다. 당시 컴퓨터가 유효숫자 10개에서 12개를 계산한다면, 신경계는 기껏해야 2개에서 3개의 유효숫자만 이용하는 계산 기계로 볼 수 있다고 합니다. 유효숫자 2-3개가 발화 빈도 50-200에서 나온 결과인지 아닌지 모르겠습니다.

여튼 폰 노이만이 여기서 하고 싶은 얘기는 인간의 뇌의 산수는 정밀도가 낮지만 그럼에도 매우 신뢰할 수 있는 결과(high reliability)를 준다는 겁니다. 몇개 정도의 펄스가 우연히 생략된다고 해도 그 결과가 달라지지 않을 거라는 거죠. 컴퓨터에서는 계산 과정 중 하나라도 빠지면 치명적일 수 있는데 반해서 말입니다. 이게 가능한 건 신경계의 정보전달은 본질적으로 통계적(essentially statistical)이기 때문입니다. 또한 정보의 실체는 앞서 말한 발화의 빈도이고, 여러 뉴런의 발화 사이의 다양한 상관계수도 정보를 전달한다고 볼 수 있답니다.

마지막으로 언어입니다. 언어도 논리적인 것과 산수적인 것이 있는데 전자가 언어(language proper가 뭐임?)이고 후자가 수학이랍니다. 우리의 중추신경계가 어떤 언어를 쓰든 우리가 익숙한 것보다 덜 논리적이고 산수 깊이(arithmetical depth)도 얕다고 하네요. 예를 들어 눈에 의해 인지된 시각 이미지가 망막에서 단 세 개의 논리 단계를 통해 재조직화된다네요. 여튼 우리 일상경험과는 본질적으로 다른 무언가가 중추신경계에 있다.는 말을 하려는 거고, 그게 어쩌면 주언어(primary language) 위에 세워진 부언어(secondary language)를 논의하는 문제일 수도 있다...라고 하면서 글이 끝납니다.

저도 여기서 끝.