Differentiable neural computers(미분가능 신경 컴퓨터)
▶ Nature에서의 최근 연구에서 우리는 미분가능(differentiable) 신경 컴퓨터 라고 불리는 메모리-증강(augmented) 신경 네트워크의 한 형태를 소개하고, 그리고 인위적으로 생성된 이야기, 패밀리 트리, 가계도 등 복잡한, 구조화 된 데이터에 대한 질문에 대답하기 위해 메모리를 사용하는 법을 배웁니다. 심지어 런던 지하철의 지도. 또한 보강 학습을 사용하여 블록 퍼즐 게임을 해결할 수 있음을 보여줍니다.
▶ 플라톤은 기억을 왁스 태블릿에 비유했으며, 그리고 그 위에서 한 번 가한 인상은 고정되어 있을 것이라고 했다. 그는 현대의 가소성 개념을 은유적으로 표현했는데 - 즉 우리의 마음은 경험에 의해 형성되고 재형성 될 수 있다는 것이다. 그러나 우리의 추억의 왁스는 인상을 형성할 뿐만 아니라 하나의 기억에서 다음 기억으로 연결 또한 형성한다. 존 로크와 같은 철학자들은 기억이 시공간적으로 가까운 곳에서 형성되면 연결을 만든다고 믿었다. 왁스 대신에 이것을 나타내는 가장 유력한 은유는 마르셀 프루스트의 마들렌 케이크(작은 카스텔라)이다. 프루스트에게, 어른이 느끼는 과자의 맛은 유년 시절의 유대감을 손상하지 않았다. 이러한 일시적 기억(사건 기억)은 인간 두뇌의 해마에 의존하는 것으로 알려져 있다.
▶ 오늘날 우리는 기억에 대한 은유를 다듬어 왔다. 우리는 더는 메모리를 왁스 태블릿으로 생각하지 않고, 재구성 과정으로 생각하며, 이로써 경험은 구성 부분에서 재구성된다. 그리고 자극과 행동 반응 사이의 단순한 연관성 대신에, 추억과 행동 사이의 관계는 상황 및 우선순위에 따라 가변적이다.
▶ 기억된 지식에 의한 간단한 기사는, 예를 들어 런던지하철의 레이아웃과 같은, "피카딜리 서커스에서 무어게이트로 어떻게 가나요?"라는 질문에 대답할 수 있을 뿐 아니라 "북부 노선에서 북쪽으로 갈 때, 무어 게이트와 직접 인접한 것은 무엇인가?“도 그러하다. 그것은 모두 질문에 달려 있다; 메모리의 내용과 그 사용을 분리 할 수 있다. 또 다른 견해(를 가진 사람들)는, 계산을 수행하기 위해 추억을 정리할 수 있다고 주장한다. 왁스보다는 lego처럼, 추억은 손에 있는 문제에 따라 재결합 될 수 있다.
▶ 신경망은 패턴 인식과 신속/반응 적인 의사 결정에 탁월하지만, 우리는 단지 천천히 생각할 수 있는 신경망 즉, 지식을 사용하여 의도를 가지거나 근거를 가지는 신경망을 구축하기 시작했다. 예를 들어, 어떻게 신경 네트워크는 전송 네트워크의 연결과 같은 사실을 기억하고, 또 질문에 대답하기 위해 지식의 논리적 근거를 논리적으로 추론할 수 있는가? 최근 논문에서 우리는 지식을 신속하게 저장하고 유연하게 추론할 수 있는 학습 기계를 만들기 위해 신경 네트워크와 메모리 시스템을 결합할 방법을 보여주었다. 미분가능 신경 컴퓨터(DNCs)라고 부르는 이러한 모델은, 신경망과 같은 예제를 통해 배울 수 있지만, 컴퓨터와 같은 복잡한 데이터도 저장할 수 있다.
▶ 일반 컴퓨터에서, 프로세서는 RAM(Random Access Memory)에서 정보를 읽고 쓸 수 있다. RAM은 프로세서에 중간 계산 결과를 구성하는 데, 훨씬 많은 공간을 제공한다. 정보를 위한 시간(temporary) 자리 표시자는 변수라고 하며 메모리에 저장된다. 컴퓨터에서 숫자 값을 보유하는 변수를 형성하는 것은 간단한 작업이다. 또한, 데이터 구조-다른 변수에 도달하기 위해 따라갈 수 있는 링크가 포함된 변수-를 메모리에서 간단하게 만들 수 있다.
▶ 가장 간단한 데이터 구조 중 하나는 목록인데, 그것은 항목별로 읽을 수 있는 일련의 변수이다. 예를 들어, 스포츠팀에서 선수 명단을 저장한 다음, 각 이름을 하나씩 읽을 수 있다. 더 복잡한 데이터 구조는 트리이다. 예를 들어, 가계도에서, 자녀로부터 부모까지의 링크 뒤에는 조상의 선을 읽는 것이 따를 수 있다. 가장 복잡하고 일반적인 데이터 구조 중 하나는 런던 지하 네트워크와 같은 그래프이다.
▶ 우리가 DNCs를 설계할 때 우리는 복잡한 데이터 구조를 스스로 형성하고 탐색할 수 있는 머신을 원했다. DNC의 중심에는 컴퓨터라는 프로세서와 비슷한 컨트롤러라는 신경 네트워크가 있다. 컨트롤러는 입력을 취하는 것을 담당하고 있는데, 그 입력은 메모리에 읽고 쓰는 것이며, 그리고 해답으로 해석될 수 있는 출력을 생성한다. 메모리는 각각의 정보 벡터를 저장할 수 있는 위치 집합이다.
▶ 컨트롤러는 메모리에서 몇 가지 작업을 수행할 수 있다. 그것은 모든 시점마다, 메모리에 쓸지를 선택한다. 쓰기를 선택하면 사용하지 않는 새 위치나 컨트롤러가 검색 중인 정보가 있는 위치에 정보를 저장하도록 선택할 수 있다. 이를 통해 컨트롤러는 특정 위치에 저장된 내용을 업데이트할 수 있다. 메모리의 모든 위치가 모두 사용되면, 컨트롤러는 위치를 확보할지 결정할 수 있는데, 그것은 더는 필요하지 않은 메모리를 컴퓨터가 재할당하는 방법과 상당히 비슷하다. 컨트롤러가 쓰고 있으면, 그것은 메모리의 선택된 위치로 정보 벡터를 보낸다. 정보가 기록될 때마다, 위치는 연관성 링크로 연결되는데, 그 연관성은 정보의 저장 순서를 나타낸다.
▶ 쓰기와 마찬가지로, 컨트롤러는 메모리의 여러 위치에서 읽을 수 있다. 메모리는 각 위치의 내용을 기반으로 검색될 수 있으며, 또는 (컨트롤러가) 연관 시간 링크를, 순서대로 또는 거꾸로 쓰인 정보를 호출하고자 앞뒤로 따라갈 수 있다. 읽은 정보는 환경으로 끌어들일 질문 혹은 액션에 대한 답변을 생성하는 데 사용될 수 있다. 종합적으로, 이러한 작업을 통해 DNCs는 메모리를 할당하고, 정보를 메모리에 저장하며, 단번에 쉽게 찾을 수 있다.
▶ DNC 아키텍처의 그림. 신경 네트워크 컨트롤러는 외부 입력을 받고, 이를 기반으로, 메모리와 상호 작용하는데, 이때 '헤드'로 알려진 읽기 및 쓰기 작업을 사용한다. 컨트롤러가 메모리를 탐색하는 것을 돕기 위해, DNC는 '시간(temporal) 링크'를 저장하여 물건이 기록된 순서를 추적하고 각 메모리 위치의 현재 '사용량' 수준을 기록한다.
▶ 비-기술적인 독자에게는, 우리가 반복적으로 "컨트롤러는 ~을 할 수 있다.“, 또는 "미분가능 신경 컴퓨터는 ~ 선택을 한다"와 같은 문구를 반복해서 사용하는 것이 다소 이상하게 보일 수 있다. 우리는 이렇게 말하는 이유는, 미분가능 신경 컴퓨터가 기억을 사용하는 방법과 대답을 생성하는 방법을 완전히 처음부터 배우기 때문이다. 그들은 최적화의 마법을 사용하여 그렇게 하는 법을 배운다: DNC가 답을 산출할 때, 우리는 그것을 원하는 정답과 비교한다. 시간이 지남에 따라 컨트롤러는 정답에 더 가까운 답변을 생성하는 법을 배운다. 이 과정에서, 그것은 메모리 사용 방법을 파악한다.
▶ 우리는 DNCs를 문제(problem)에서 테스트하려고 했는데, 그것은 데이터 구조를 구축하고 그 데이터 구조를 사용하여 질문에 답하는 것을 포함하는 것이다. 그래프 데이터 구조는 경로와 주기를 형성하기 위해 임의로 연결될 수 있는 데이터 항목을 표현하는데 매우 중요합니다. 이 논문에서, 우리는 DNC가 임의의 그래프에 대한 설명을 write 해보고 그에 대한 질문에 답하는 것을 배울 수 있음을 보여주었다.
▶ 우리가 런던 지하철의 역과 선을 묘사했을 때, 우리는 DNC에 다음과 같은 질문에 대답하도록 요청할 수 있다. "Bond street에서 시작하여, 중앙선(빨간색) 방향 1 정거장(교차지점을 말하는 듯, 지도에서 진한 동그라미 혹은 오뚝이) 안으로 취하고, 순환선(노란색) 방향 4 정거장 안으로, 그리고 Jubilee선(회색) 방향 2 정거장 안으로 취하면, 너는 어느 정거장에서 wind up(마무리) 되냐? 또는, DNC는 "무어게이트에서 피커딜리 서커스까지 어떻게 가는가?"와 같은 질문을 통해 경로를 계획할 수 있었다. (※ 남색은 피커딜리선)
▶ DNC는 무작위로 생성된 그래프를 사용하여 훈련되었다(왼쪽). 훈련 후 런던 지하철을 탐색할 수 있는지 테스트했다(오른쪽). 네트워크에 대한 그래프를 정의하는 데 사용되는 트리플(from, to, edge)은 다음과 같은 두 가지 종류의 태스크의 예제와 함께 아래에 표시된다: '횡단하는', 역에서 시작하여 일련의 선을 따르도록 요청된다; 그리고 '최단경로', 두 스테이션 사이에서 가장 빠른 경로를 찾는다.
▶ 가계도에서, 우리는 복잡한 연역추론이 필요한 질문에 대답할 수 있음을 보여주었다. 예를 들어, 부모, 자녀 및 형제 관계를 네트워크에 관해서만 설명했지만, 우리는 "누가 프레야의 모계 큰 삼촌인가?"와 같은 질문을 할 수 있다. 우리는 또한 DNCs가 자신의 기억을 사용하는 법을 분석하는 게 가능함을 알게 됐으며, 그것은 ‘무엇을 대답할지’를 생산하고자 기억 속의 어떤 위치가 컨트롤러에 의해 읽히는지를 시각화함으로써 그러하다. 우리가 비교한 기존의 신경망은 정보를 저장할 수 없었고, 또는 새로운 예를 일반화하는 방식으로 추론하는 것을 배울 수 없었다.
DNC answering a question about a family tree
원문 동영상(https://www.youtube.com/watch?v=B9U8sI7TcMY)
▶ 우리는 또한 강화 학습에 의해 DNC를 훈련할 수 있다. 이 구조(framework)에서 우리는 DNC가 행동을 취하게 하지만 해답을 절대 보여주지 않는다. 대신, 우리는 그것이 좋은 행동 순서(예 : 어린이 게임 "덥거나 차가운")를 만들어 냈을 때 점수를 매겼다. 우리는 컬러 블록이 더미로 배열된 간단한 환경에 DNC를 연결했다. 우리는 목표를 달성하는 지침을 줄 것이다: "밝은 파란색 블록을 녹색 아래에 놓다; 빨간색의 왼쪽 주황색; 주황색 아래 보라색; 진한 파란색의 오른쪽에 밝은 파란색; 빨간색 아래 녹색; 그리고 녹색의 왼쪽에 보라색".
원문 동영상(https://www.youtube.com/watch?v=BTSJ0-saaUc)
▶ 우리는 그러한 많은 가능한 목표를 세울 수 있고, 그리고 명령에 따라 하나 또는 다른 목표 상태를 만들어내는 행동을 실행하도록 네트워크에 요청할 수 있다. 이 경우, 또한 컴퓨터와 마찬가지로, DNC는 가능한 목표당 하나씩 메모리에 여러 서브 루틴을 저장하고, 하나 또는 다른 서브 루틴을 실행할 수 있다.
▶ 인간의 기억이 어떻게 작동하는지에 대한 질문은 오래된 것이고, 그리고 우리의 이해는 여전히 발전 중이다. 우리는 DNC가 컴퓨터 과학을 위한 새로운 도구와 인지 과학 및 신경 과학을 위한 새로운 은유를 제공하기를 바란다: 여기에 사전 프로그래밍 없이 정보를 연결된 사실로 구성하고, 이러한 사실을 사용하여 문제를 해결할 수 있는 학습 기계가 있다.
출처 : https://deepmind.com/blog/differentiable-neural-computers/
###
상단의 글은 딥마인드 블로그에 게재된 글을 챠우가 번역한 것입니다.(해당 논문은 2016년 1월에 Nature지에 접수되었고, 11월에 Nature지에 실렸습니다. 참고로 알파고는 3월에 이세돌과 경기를 했습니다.)
구조론적 감각이 있는 분이라면, 하사비스가 뭘 하려는지 대강 감을 잡으실 수 있을 겁니다. 하사비스는 컨트롤러라고 불리는 프로세서에 우리가 흔히 사용하는 컴퓨터처럼 기억장치를 연결하였습니다.
종래 컴퓨터 구조에 익숙한 일반인 입장에서는 별로 대단해보이지 않을 이 종적이 실제로 머신러닝에서는 큰 획을 긋는 기술 발전이 됩니다. 그 이유는 기존에 일반인이 알던 모든 인공지능 머신들이 기억장치 없이 프로세서 그 자체로만 기억을 담당하였고, 그러다보니 기억용량의 한계가 있었기 때문입니다.
그냥 기억장치를 달면 안 되겠냐고 생각할 수 있지만, 인간의 기억이라는 것은, 맥락위에서만 존재가 가능합니다. 어떤 기억이든 단독으로 존재할 수는 없고, 연관된 다른 기억이 있어야 한다는 것이죠. 이때 연관관계는 시간일 수도, 의미적 맥락일 수도 있습니다.
그래서 컨트롤러에서 대상의 메커니즘을 학습하더라도, 기억장치로 이 학습결과를 전달하는 것이 간단하지 않았습니다. 좀 더 심하게 말하자면, 그걸 만들어야 하는지 인지하는 사람조차 별로 없었습니다. 이때 컨트롤러(프로세서)와 기억장치는 구조론의 힘에 해당한다고 할 수 있습니다. 기억장치는 컨트롤러를 다양하게 학습시키는 보조 수단입니다.
프로세서가 학습한 결과를 기억장치에 전달하려면 일종의 가공을 거쳐야 합니다. 이 가공 과정에서 추상화가 일어난다고 하사비스는 생각하고 있는데, 이는 해마에서 단기기억이 장기기억으로 전달되는 과정을 모사한 것으로 설명하고 있습니다.
그러나 저는 좀 다르게 생각합니다. 전 추상화는 정보의 입력단계부터 일어난다고 보고 있습니다. 다시 말해, 인지 그 자체부터 구조화를 거쳐서 인간에게 입력된다고 보는 것이며, 이는 선택적 인지를 뜻하는 것입니다. 선택적 인지의 장점은 분명합니다. 처리해야할 데이터 량이 상대적으로 적으며 대상에 대한 인지가 분명한 것입니다.
아무튼 하사비스가 만든 DNC는 종래의 모든 머신들을 한 번에 바보로 만들었습니다. 이전에는 처리할 수 있는 데이터의 길이가 짧았다면, DNC는 그 길이를 획기적으로 늘일 수 있기 때문입니다. 이 블로그에는 자세히 나타나있지 않지만, 그의 논문에는 더 자세하게 나와 있습니다. 인류는 이만큼 진보했습니다.
정리하면,
데이터의 분류(사과그림 > 사과 등)는 하사비스 이전에도 이미 구현되었습니다. 기억이라는 것을 구현하면 이에 따라오는 기억의 추상화, 모듈화, 이에 따른 추론 등이 DNC의 핵심 내용입니다.
미분 가능이라는 표현은 인공신경망의 특징을 나타내는 것입니다. 신경망의 노드(인간신경에서는 핵)를 하나의 함수로 두는 것이 인공신경망의 기본 개념이며, 함수로 표현 가능해야 피드백(오차 수정)이 가능하기 때문입니다. 인공신경망의 목적은 복잡하게 중첩된 데이터에서 적합한 함수의 조합을 사용하여 패턴을 축출하는 것입니다.
인공신경망의 발전 속도는 대부분 하사비스가 만들어내고 있는데, 이 발전 속도가 또 굉장히 빠릅니다. 이제 인류는 긴장타야 합니다.
환영할일인지 의문입니다
인간이 소화할 수 있는 역량만큼만 가야합니다.
인류가 가진 시계의 태엽이 다 풀리고나면
그 폐허위에 다른이의 역사가 쓰여지게 됩니다.
"과학기술이 인간사이의 소통을 뛰어넘을 그날이 두렵다. 세상은 천치들의 세계가 될 것이다" - 알버트 아인슈타인
이미 천치들이 지구를 점령해 버렸는지도 모르겠습니다.
아인슈타인이 저런 말을 하는 것은 립서비스이고,
아인슈타인이야 말로 핵폭탄을 개발해서 인류에게 큰 위험을 준 인물이 아닌가요?
누구라도 핵폭탄을 만들어야 한다면, 그거 제가 하겠습니다.
모든 기술은 양면성을 가지고 있습니다. 좋기도 나쁘기도 하죠.
아직 안 해봐서 잘 모를 때는 일단 해보는 게 좋은게 삶의 경험입니다.
인간이 감각을 얻는 두가지 방법이 있는데, 하나는 앞으로 가서 현재와의 차이를 만드는 것이고,
다른 하나는 뒤로 가서 차이를 만드는 방법입니다. 근데, 가만히 두면 꼭 뒤로 가는게 인간입니다.
그 위험과, 그 욕을 먹지 않겠다는 그 발상, 평범한 분이라면 굳이 말리지는 않겠습니다만,
이곳, 구조론 연구소 안에서는, 좀 특별해야 하지 않을까요?
큰 승부 앞에 섰을 때 내 사사로운 삶보다, 인류의 멋진 장면을 연출할 수 있다면,
나는 기꺼이 죽음을 선택하겠습니다. 그게 프론티어입니다.
지금도 죽음을 향해 달려가는 느낌이지만, 뭐 어떻습니까. 그게 삶의 본질인 것을.
위험한 인간, 문제적 인간, 그거 제가 맡겠습니다.