7. 소프트웨어 뇌 만들기

뇌의 알고리즘을 디지털 공간에 시뮬레이션하는 법

지금까지 밝혀낸 패턴인식 마음이론을 디지털 공간에 구현하여 뇌와 똑같은 방식으로 작동하는 인공지능을 만들어낼 수 있을까? 그러기 위해서는 어떤 기술이 필요하고 어떤 문제를 해결해야 할까? 지금까지 어떤 연구가 진행되었으며, 그 성과는 어느 정도일까?

Key Point

  • 동물이나 식물이 선천적으로 타고나는 것처럼 보이는 지식은 수천 세대에 걸쳐 학습된 것이다. 신피질은 이러한 학습을 단 몇 개월, 또는 며칠 만에 가능하게 하고, 더 나아가 그렇게 습득한 지식을 단시간 안에 전파할 수 있도록 한다는 점에서 진화의 최종적인 목표가 되었다. 이제 신피질은 자연의 한계를 넘어 더욱 강력한 지능을 확보하기 위해 진화하는 단계에 들어섰다. 바로 인공신피질을 만들어내는 생물학적 한계를 넘어서는 것이다.
  • 뇌 시뮬레이션: 인공신피질을 만드는 한 가지 방법은 뇌의 구조를 정밀하게 가상의 공간에 구축하는 것이다. 블루브레인프로젝트나 휴먼커넥톰프로젝트 등 현재 진행되고 있는 시뮬레이션 연구를 소개하고 이러한 연구가 결실을 맺기 위해서 앞으로 어떤 기술이 필요한지 살펴본다.
  • 신경망: 패턴을 처리하는 알고리즘의 진화과정에서 나타난 문제를 간략하게 살펴본다.
  • 희소코딩-벡터양자화: 2차원 이상의 방대한 감각데이터를 효과적으로 필터링하여 신피질이 처리할 수 있는 1차원 데이터로 환원하는 기법을 설명한다.
  • 은닉마르코프모형: 필터링을 거쳐 만들어진 1차원 데이터를 가장 효율적으로 인식(학습)하는 기법으로 은닉마르코프모형을 살펴본다. 이는 우리 뇌에서 작동하는 패턴인식 마음이론의 작동메커니즘과 거의 일치한다.
  • 유전알고리즘: 우리 뇌가 선천적으로 타고나는 기본적인 정보나 정보처리방식은 직접 프로그래밍할 수도 있지만, 수백 세대를 거치는 진화를 시뮬레이션함으로써 인공지능 스스로 터득하게 할 수 있다. 이러한 진화 시뮬레이션을 거치면 패턴에 변이가 발생하더라도 인공신피질은 일정 수준 이상의 인식률을 보인다.
  • LISP: 초기의 개발자들은 인공지능의 정보처리방식을 인간이 모두 직접 코딩을 넣었다. 하지만 이러한 접근방식은 머지않아 한계에 부딪혔다. 결국 생물학적 신피질과 마찬가지로 인공지능 스스로 학습하고 연결망을 스스로 바꿀 수 있도록 설계해야 한다는 사실을 발견했다.
  • 계층적 기억시스템: 신피질의 가장 핵심적인 특징이 바로 계층적으로 사고한다는 것이다. 오늘날 계층구조 인공지능 알고리즘은 상업적인 소프트웨어에 적용되어 상당한 성과를 내고 있다.
  • 전진하는 AI의 전선: 능력의 사다리 오르기: 인공지능은 이미 우리 삶 곳곳에서 활용되고 있다. 통신만, 자율주행 자동차, 스마트폰, 의학, 번역 등 다양한 분야에서 실제로 활용되고 있는 인공지능에는 어떤 것들이 있는지 살펴본다.
  • 머랭허랭- 왓슨의 말장난: [제퍼디!]에서 최고의 인간 우승자들을 이긴 IBM 왓슨이 학습을 하고 문제를 푸는 메커니즘에 대해 설명한다.

주석

1. 선천적으로 타고난 동물의 지식

Gary Cziko, Without Miracles: Universal Selection Theory and the Second Darwinian Revolution (Cambridge, MA: MIT Press, 1955).

2. 데이비드 달림플 David Dalrymple

달림플이 8살이었던 1999년부터 나는 그의 멘토 역할을 했다. 달림플의 성장 이야기

3. “10년 안에 인간의 뇌를 만들어낼 수 있다.”

Jonathan Fildes, “Artificial Brain ‘10 Years Away,’” BBC News, July 22, 2009. M. Mitchell Waldrop, “Computer Modelling: Brain in a Box,” Nature News, February 22, 2012

4. “이제 이걸 쌓아가기만 하면 된다.”

Jonah Lehrer, “Can a Thinking, Remembering, Decision-Making Biologically Accurate Brain Be Built from a Supercomputer?” Seed.

쥐의 신피질 상부 레이어에 분포한 뉴런을 컴퓨터로 시뮬레이션한 모습. 전체적인 흥분상태에서 활성화된 축삭을 노란빛과 푸른빛 불이 켜진 것으로 묘사했다.
5. ‘인간과 아주 비슷하게 말하고 행동하도록 하는 것’이 목표

Jonathan Fildes, “Artificial Brain ‘10 Years Away,’” BBC News, July 22, 2009.

6. 휴먼커넥톰프로젝트

Human Connectome Project

7. 전체 뇌 에뮬레이션

Anders Sandberg and Nick Bostrom, Whole Brain Emulation: A Roadmap, Technical Report #2008― 3 (2008), Future of Humanity Institute, Oxford University.

8.신경망 알고리즘

기본적인 도식은 다음과 같다. 다양한 변형이 가능하며, 시스템설계자가 여기서 자세히 설명하는 핵심적인 파라미터와 기법을 결정해야 한다.


어떤 문제에 대한 신경망 해법을 만들기 위해서는 다음 단계를 따라야 한다.

  1. 입력을 설정한다.
  2. 신경망의 토폴로지(뉴런의 층과 뉴런 사이의 연결 등)를 설정한다.
  3. 몇몇 예시문제로 신경망을 훈련시킨다.
  4. 훈련된 신경망을 가동해 새로운 문제들을 푼다.
  5. 신경망회사를 주식시장에 상장한다.

이 단계를 자세히 설명하면 다음과 같다. (마지막 단계는 전문가와 상담하는 것이 더 나을 테니 여기서는 뺀다)

  1. 문제입력

신경망에 문제입력은 일련의 숫자로 이루어진다. 이러한 입력은:

  • 시각패턴인식시스템에서는 이미지의 픽셀을 상징하는 2차원적 숫자배열이 된다.
  • 청각(예컨대 음성)인식시스템에서는 소리를 상징하는 2차원적 숫자배열이 된다. 하나의 차원은 소리의 파라미터(예컨대 주파수 콤포넌트)를 상징하고 하나의 차원은 다양한 시점을 상징한다.
  • 임의적인 패턴인식시스템에서는, 입력 패턴을 상징하는 n차원의 숫자배열이 된다.
  1. 토폴로지 설정

신경망을 구축하기 위한 개별적인 뉴런의 구조는 다음과 같다.

  • 다중입력: 입력단자가 여러 개로, 제각각 다른 뉴런의 출력단자나 최초 입력포인트로 연결된다.
  • 단일출력: 출력단자가 하나로, (대개 더 높은 레이어에 위치하는) 다른 뉴런의 입력단자나 최종출력단자로 연결된다.
[뉴런 레이어 1층 구축하기]
  • 1층 레이어에 N0개의 뉴런을 만든다. 이 뉴런들의 입력단자들은 문제입력 ‘포인트’(대개 숫자)로 ‘연결’한다. 이러한 연결은 임의적으로 결정할 수도 있으며 진화알고리즘을 사용할 수도 있다.(아래 참조)
  • 이렇게 만들어진 연결에 제각각 최초 ‘시냅스 세기’를 설정한다. 최초가중치는 모두 똑같이 설정할 수도 있고, 임의적으로 설정할 수도 있고, 다른 방법으로 설정할 수도 있다.(아래 참조)
[뉴런 층 쌓기]

총 M개의 뉴런 층을 구축한다. 각각의 층마다 뉴런을 구축한다.

  • i의 경우: 층i에 Ni개의 뉴런을 만든다. 이 뉴런들의 입력단자들은 층i-1의 뉴런의 출력으로 ‘연결’한다. (응용방법은 아래 참조). 이렇게 만들어진 연결에 제각각 최초 ‘시냅스 세기’를 설정한다. 최초가중치는 모두 똑같이 설정할 수도 있고, 임의적으로 설정할 수도 있고, 다른 방법으로 설정할 수도 있다.(아래 참조)
  • M의 경우: 뉴런의 출력은 곧 신경망의 출력이 된다.(응용방법은 아래 참조)
[테스트인식]

구축된 개별적인 뉴런들이 제대로 작동하는지 테스트인식을 실시하는 법은 다음과 같다.

  • 뉴런의 입력값은 그 뉴런으로 연결된 출력(또는 최초입력)에 그 연결의 시냅스 세기를 곱한 값이다.
  • 이렇게 가중치가 반영된 입력은 모두 뉴런에서 합해진다.
  • 이 합계가 뉴런의 인식의 문턱보다 큰 경우, 이 뉴런의 출력은 1이 되고 인식의 문턱보다 작은 경우 출력은 0이 된다.(응용방법은 아래 참조)
[테스트인식후 해야 할 일]

이러한 테스트인식과정을 층0에서 층M까지, 층에 속하는 각각의 뉴런마다 반복하여 실시한다.

  • 가중치가 반영된 입력을 합하라. (가중치가 반영된 입력 = 이 뉴런에 연결된 다른 뉴런[또는 최초입력]의 출력 X 이 연결의 시냅스 세기)
  • 가중치가 반영된 입력들의 합계가 뉴런의 인식의 문턱보다 큰 경우, 뉴런의 출력은 1이 되고 인식의 문턱보다 작은 경우 출력은 0이 된다.
  1. 신경망 훈련
  • 예시문제로 인식테스트를 반복한다.
  • 테스트를 마칠 때마다, 신경망의 성능을 개선할 수 있도록 모든 신경간 연결의 시냅스 세기를 조정한다.(방법은 아래 참조)
  • 이런 훈련을 신경망의 정확도가 더 이상 개선되지 않을 때까지 (점근선에 다다를 때까지) 반복한다.
[핵심 설계결정]

위의 단순한 도식에서 신경망 알고리즘의 설계자는 최초에 다음 사항을 결정해야 한다.

  • 입력숫자는 무엇을 상징하는가?
  • 뉴런의 층은 몇 개 만들 것인가?
  • 층마다 뉴런은 몇 개 만들 것인가? (층마다 뉴런의 수가 반드시 똑같을 필요는 없다.)
  • 뉴런마다 입력단자는 몇 개 만들 것인가? (입력단자, 즉 신경간 연결의 개수는 뉴런마다 층마다 다를 수 있다.)
  • 실제 ‘망(연결)구조’는 어떻게 구축할 것인가? 층마다 뉴런들은 제각각 다른 뉴런의 리스트가 된다. 뉴런의 출력이 다른 뉴런의 입력이 되는 것이다. 이는 핵심적인 설계 영역으로, 다양한 방법이 있다.
    • 신경망을 임의적으로 구축한다.
    • 최적 구조를 찾아내기 위해 진화알고리즘을 사용한다.(아래 참조)
    • 시스템설계자의 판단에 따라 구조를 설정한다.
  • 연결의 최초 시냅스 세기(가중치 등)는 어떻게 설정할 것인가? 여기에도 다양한 방법이 있다.
    • 시냅스 세기를 모두 똑같이 설정한다.
    • 시냅스 세기를 임의적으로 설정한다.
    • 최적 구조를 찾아내기 위해 진화알고리즘을 사용한다.(아래 참조)
    • 시스템설계자의 판단에 따라 구조를 설정한다.
  • 뉴런마다 인식의 문턱은 어떻게 설정할 것인가?
  • 출력은 어떻게 할 것인가? 다음과 같이 설정할 수 있다.
    • M의 뉴런들의 출력
    • M의 뉴런들의 출력을 받은 하나의 뉴런의 출력
    • M의 뉴런들의 출력의 함수(합계)
    • 여러 층에 있는 뉴런들의 출력의 다양한 함수
  • 신경망이 이러한 훈련을 거치는 동안 모든 연결의 시냅스 세기가 어떻게 조정되도록 할 것인지 결정한다. 이것은 핵심적인 설계결정이자 상당한 연구와 논의의 주제다. 다음과 같이 설정할 수 있다.
    • 테스트인식을 할 때마다 일정한 양만큼 (일반적으로 작은 단위로) 시냅스 세기를 높이거나 낮추어 신경망의 출력이 정답에 가까워지도록 맞춘다. 일일이 테스트하면서 시냅스 세기를 조정해가면서 어느 쪽이 원하는 결과값에 가까운지 보면서 맞출 수 있다. 하지만 이렇게 하려면 상당한 시간이 필요하다.
    • 테스트에서 신경망의 성능을 정답에 가까워지도록 맞출 수 있도록, 테스트인식이 끝날 때마다 시냅스 세기를 수정하기 위한 통계적 기법이 존재한다.
  • 여기서 훈련테스트에 대한 답이 모두 맞지 않아도 신경망훈련은 작동한다는 것을 기억해야 한다. 이로서 일정한 오류율을 갖는 실재세계의 훈련데이터를 사용할 수 있다. 신경망 기반 인식시스템이 성공하기 위해서 가장 중요한 핵심은 훈련에 사용할 데이터의 양이다. 만족스러운 결과를 얻기 위해서는 대개 상당한 양이 필요하다. 인간과 마찬가지로 신경망이 학습을 하는 데에도 많은 시간을 투자할수록 성능도 높아진다.
  1. 응용

지금까지 살펴본 도식은 가장 기본적인 방법으로, 다양한 응용이 가능하다. 예컨대:

  • 토폴로지를 결정하는 방법은 다양할 수 있다. 특히 신경망 구조는 임의적으로 설정될 수도 있고 진화알고리즘을 사용할 수도 있다.
  • 최초 시냅스 세기는 다양하게 설정할 수 있다: 층i의 뉴런의 입력단자가 반드시 층i-1의 뉴런의 출력단자와 연결될 필요는 없다. 어떤 층의 뉴런에서든 입력을 받을 수 있다.
  • 최종출력을 결정하는 방법도 다양할 수 있다: 위에서 설명한 기법은 비선형성이라고 하는 ‘전부 아니면 전무’(1 또는 0) 출력이다. 이외에 다른 비선형함수를 사용할 수 있다. 빠르지만 더 점진적인 모양으로 0과 1 사이의 값을 출력하는 함수가 흔히 사용된다. 출력 또한 0과 1이 아닌 다른 수가 될 수 있다.
  • 훈련 과정에서 시냅스 세기를 조정하는 방법은 다양할 수 있다: 위에서 설명한 기법은 ‘동시성’ 신경망이다. 여기서는 층0에서 시작하여 층M까지 각각의 층의 출력을 계산함으로써 인식테스트가 제각각 진행된다. 각각의 뉴런이 개별적으로 작동하는 진정한 병렬시스템에서는 뉴런이 ‘비동시적’으로 (즉, 개별적으로) 작동할 수 있다. 비동시성 접근에서 각각의 뉴런은 끊임없이 입력을 스캔하고 가중치가 반영된 입력의 합계가 인식의 문턱을 넘을 때 (또는 출력함수가 작동하도록 설정된 특정한 값을 넘을 때) 활성화된다,
9. 스펙트로그램

Robert Mannell, “Acoustic Representations of Speech,” 2008.

10. 유전알고리즘

유전(진화)알고리즘의 기본도식은 다음과 같다. 다양한 응용이 가능하며 시스템의 설계자는 아래 자세히 설명한 특정한 핵심 파라미터와 기법을 제공해야 한다.


N개의 해법 ‘피조물’을 만든다. 각각의 피조물은 유전자코드를 갖는다. 여기서 유전자코드란 문제에 대한 가능한 해법을 상징하는 수열을 의미한다. 각각의 수는 중요한 파라미터, 해법으로 나가는 단계, 규칙 등을 상징한다.

세대가 진화할 때마다 N개의 해법피조물에 대해 각각 다음과 같은 처리를 해야 한다.

  • 이 해법피조물의 (유전자코드로 상징되는) 해법을 문제나 시뮬레이션된 환경에 적용하고 그 해법을 평가한다.
  • 다음 세대에 생존할 확률이 가장 높은 L개의 해법피조물을 고른다.
  • 생존하지 못한 해법피조물들(N-L)을 제거한다.
  • L개의 생존한 해법피조물들로 제거한 만큼 (N-L개 만큼) 새로운 해법피조물을 만든다. 해법피조물을 만드는 방법은:
    • L개의 생존한 해법피조물을 복제한다. 복제한 해법피조물에 임의적인 사소한 변이를 도입한다. 또는
    • L개의 생존한 해법피조물들의 유전자코드의 일부를 결합하여 (‘유성’ 재생산이나 염색체의 일부를 혼합하는 방식으로) 새로운 해법피조물을 만든다. 또는
    • 위 두 방식을 혼합한다.

진화를 지속할 것인지 멈출 것인지 판단한다.

  • 개선 = (이 세대의 최고비율) ― (이전세대의 최고비율)
  • 개선이 ‘개선의 문턱’보다 크면 성공한 것이다.
  • 마지막 세대에서 최고비율을 가진 해법피조물이 가장 뛰어난 해법이다. 문제에 이 유전자코드에 의해 정의된 해법을 적용한다.
[핵심 설계결정]

위의 단순한 도식에서 설계자는 최초에 다음 사항을 결정해야 한다.

  • 핵심 파라미터를 어떻게 설정할 것인가?
    • N
    • L
  • 개선의 문턱은 어떻게 설정할 것인가?
  • 유전자코드에서 숫자가 무엇을 상징하는가? 유전자코드에서 해법을 어떻게 계산해내는가?
  • 첫 번째 세대에서 N개의 해법피조물을 어떻게 결정할 것인가? 일반적으로 첫 세대의 해법피조물들은 해법에 대한 ‘타당한’ 시도들로 모아야 한다. 첫 세대 해법이 멀리 떨어져 산만하게 분포한다면 진화알고리즘은 좋은 해법으로 수렴하는 데 어려움을 겪는다. 최초의 해법피조물이 타당한 수준에서 다양할수록 좋은 결과가 나온다. 이는 진화과정이 ‘지역적으로만’ 최적 해법을 찾는 것에 머물지 않도록 막아주는 역할을 한다.
  • 해법을 어떻게 평가할 것인가?
  • 생존 해법피조물을 어떻게 재생산할 것인가?
[응용]

지금까지 살펴본 도식은 가장 기본적인 방법으로, 다양한 응용이 가능하다. 예컨대:

  • 각각의 세대에서 생존할 해법피조물의 수(L)를 고정할 필요는 없다. 생존규칙에 따라 생존자의 수는 다양할 수 있다.
  • 각각의 세대에서 새로 만들 해법피조물의 수(N-L)를 고정할 필요는 없다. 생식규칙은 인구규모와는 별개로 작동할 수 있다. 생식은 생존과 연관되기 때문에 최적의 해법피조물이 가장 많이 생식할 수 있다.
  • 진화를 지속할 것인가 멈출 것인가 하는 결정은 다양할 수 있다. 가장 최근 세대에서 가장 높은 평가를 받은 해법피조물보다 더 많은 것을 고려할 수 있다. 또한 마지막 두 세대 사이에서 나타나는 추세를 고려할 수도 있다.
11. Hierarchical Temporal Model

Dileep George, “How the Brain Might Work: A Hierarchical and Temporal Model for Learning and Recognition” (PhD dissertation, Stanford University, June 2008).

12. 튜링테스트

A. M. Turing, “Computing Machinery and Intelligence,” Mind, October 1950.

13.컴퓨터의 시청각정보 처리능력

Hugh Loebner는 매년 “뢰브너상Loebner Prize”를 수상한다. 뢰브너 은메달은 텍스트만으로 실시되는 튜링의 원래 테스트를 통과하는 컴퓨터에게 수여할 예정이다. 금메달은 오디오와 비디오 입력과 출력을 포함한 튜링테스트에 통과하는 컴퓨터에게 수여할 예정이다. 위키백과 하지만 시각적 청각적 입력이나 출력을 덧붙인다고 해서 튜링테스트가 더 어려워지지는 않는다.

14. 라모나 채팅봇
15. CALO프로젝트

“Cognitive Assistant That Learns and Organizes,” Artificial Intelligence Center, SRI International

16. Dragon Go!

Dragon Speech Recognition Software, Nuance Communications, Inc

17. 90퍼센트 이상 적절한 답을 제공하는 울프람알파

Stephen Wolfram “Overcoming Artificial Stupidity,” WolframAlpha Blog, April 17, 2012.