태그 보관물: DeepMind

DeepMind’s new paper: Memory Augmented Neural Network, DNC

dnc_figure1-width-1500

출처: 딥마인드 블로그

딥마인드에서 외부 메모리를 사용하는 뉴럴 네트워크 모델에 관한 새로운 페이퍼를 네이처를 통해 발표하였습니다. 뉴럴 네트워크가 입력값 외에 외부 저장 장치를 사용하여 좀 더 복잡한 데이터 구조에 대해 학습할 수 있도록 했다고 하는데요. 페이퍼 외에 딥마인드 블로그에 관련된 포스트를 통해 좀 더 자세히 설명하고 있습니다. 소스코드는 공개하긴 하는데 시간이 6개월 정도 걸린다고 합니다@.@ 아마도 텐서플로우 코드로 변경해서 공개하려는 것 아닐까 추측됩니다. 이전의 연구와 비교해서 보려면 두개의 페이퍼 ‘Neural Turing Machines‘ 과 ‘Memory Networks‘ 를 참고하면 좋을 것 같습니다.

네이처에 게재된 페이퍼는 여기에서 다운받을 수 있습니다. 페이퍼에 딸린 수학공식 부록은 여기에서 다운받을 수 있습니다. 페이퍼의 결과를 보여주는 동영상도 두개 같이 실렸습니다.

(업데이트) 페이퍼의 내용을 텐서플로우로 구현한 깃허브 레파지토리 DNC-tensorflow 가 공개되었습니다. 페이퍼의 내용을 모두 구현한 것은 아니지만 페이퍼의 내용을 이해하는 데 큰 도움이 될 것 같습니다.

Partnership on AI

partnership-on-ai

구글, 딥마인드, 페이스북, 마이크로소프트, 아마존, IBM 6개 회사가 ‘Partnership on AI‘란 단체를 발족시켰습니다. 각 회사에서 한명씩 대표(board)를 구성하게 되며 AI 연구와 윤리, 표준, 리포트, 컨퍼런스 등의 분야에 적극적인 역할을 것으로 보입니다. 공익단체라는 점에서 OpenAI를 의식하여 연합한 것인지는 모르겠습니다. 바이두(Baidu)는 끼일만도 한데 빠진 것과 딥마인드는 구글의 자회사이지만 공룡들과 어깨를 나란히 하고 있는 것이 눈에 띄입니다.

(업데이트) Partnership on AI에 대한 관심이 뜨겁습니다. 사람들은 바이두외에 애플, 트위터, 인텔 등도 빠져 있는 것을 궁금해 하고 있는 것 같습니다. 특히 OpenAI가 빠져있어서 이를 두고 미묘한 대립 기류가 있는 것은 아닌지 다양한 해석이 있습니다. OpenAI는 아마 초기 멤버로 초청받지 못한 아쉬움이 있는 듯 트위터를 통해 향후 참여를 희망한다고 이야기 했고 딥마인드측 대표인 무스타파 설리만(Mustafa Suleyman)이 이에 화답했습니다. Partnership on AI의 발표 자료를 보면 OpenAI 같은 비영리 기관도 곧 참여가 이루어 질 것으로 보입니다. 이들이 데이터 공유를 위해 뭉쳤는지 인류를 위해 뭉쳤는지는 모르겠지만 만약 OpenAI가 없었다면 기대하기 어려운 일이었지 않을까요?

WaveNet: DeepMind’s New Model for Audio

blogpost-fig1-anim-160908-r01

딥마인드에서 오디오 시그널 모델인 웨이브넷(WaveNet)에 관한 새로운 페이퍼 공개하고 블로그에 글을 올렸습니다. 글자를 음성으로 읽어 주는 TTS(Text To Speech)를 위한 종전의 방법인 parametric TTS, concatenative TTS 와는 다르게 오디오의 웨이브(waveforms) 자체를 모델링하여 음성을 생성하도록 하였습니다. 사용된 TTS 데이터는 구글의 TTS 데이터 셋을 사용했습니다. 결과적으로 기존 TTS 시스템과 사람 사이의 격차를 절반 가량 줄였다고 합니다.

딥마인드의 블로그 페이지에서 실제로 들어보시면 다른 두 방식의 TTS 보다 웨이브넷의 음성이 훨씬 부드럽다는 것을 느끼실 수 있습니다. 샘플 음성은 영어와 중국어입니다. 앞으로 사람과 대화하는 느낌을 가지고 챗봇과 이야기할 날이 멀지 않은 것 같습니다.

웨이브넷의 장점 중 하나는 한번 만든 모델에서 목소리를 바꾸어 오디오를 생성할 수도 있고 음악과 같은 사람의 목소리와는 다른 분야에도 활용이 가능하다는 것도 있습니다. 블로그 페이지 아래 부분에 클래식 피아노 연주를 이용해 학습한 후 생성한 오디오 샘플을 들어 보실 수 있습니다. 악보 노트를 RNN으로 생성하는 방식과는 다르게 훨씬 풍성한 사운드가 만들어졌습니다(마젠타 보고 있나요?).

딥마인드에서 주말이 시작되려니 숙제를 던져주네요. 🙂

(업데이트) 웨이브넷의 인기가 높네요. 일주일도 되기전에 텐서플로우, 케라스(Keras), 씨아노(Theano)로 구현하는 코드가 공개되었습니다.

Synthetic Gradient Revisited

지난주에 발표된 ‘Decoupled Neural Interfaces using Synthetic Gradients‘ 페이퍼에 많은 관심이 몰려서 인지 저자인 맥스 제이더버그(Max Jaderberg)가 딥마인드(Deepmind) 블로그에 페이퍼의 내용을 좀 더 자세히 설명하는 을 올렸습니다. 이 글에서 새롭게 추가된 내용은 없습니다만 두개의 멋진(!) 애니메이션을 이용해 가짜 그래디언트(Synthetic Gradient)를 잘 표현해 주고 있습니다.

3-6

출처: 딥마인드 블로그

이 그림에서 한 레이어의 출력이 상위 레이어와 그래디언트 모델(다이아몬드 도형)의 입력으로 전달됩니다. 그래디언트 모델은 즉각적으로 그래디언트를 계산하여 입력을 전달한 레이어의 파라메타를 업데이트 합니다. 그리고 하위 레이어로 역전파 됩니다. 상위 레이어에서 전달된 그래디언트도 상위 레이어의 그래디언트 모델에 의해서 생성된 그래디언트입니다. 이를 타겟 그래디언트라고 부르고 이를 이용해 현재 레이어의 그래디언트 모델을 학습시킵니다. 최종 출력의 그래디언트가 충분히 전달된다면 그래디언트 모델은 꽤 정확한 가짜 그래디언트를 추측할 수 있을 것입니다.

3-10

출처: 딥마인드 블로그

순환 신경망의 그림은 BPTT(Backpropagation Through Time)의 경계를 넘어서 그래디언트를 역전파 시킬 수 있도록 그래디언트 모델을 활용할 수 있다는 점을 표현하고 있습니다. BPTT는 메모리 등 리소스가 제한된 상황에서 늘릴 수 있는 한계가 있기 때문에 그래디언트 모델을 활용하면  BPTT 경계 이전 스텝까지 그래디언트를 역전파 시켜서 모델 파라메타를 업데이트할 수 있는 효과를 만들 수 있습니다.

페이퍼에서도 나와 있듯이 그래디언트 모델에 대해서 특별히 순환 신경망(Recurrent Neural Network)에서의 효용성을 자주 언급하고 있습니다. 피드 포워드(Feed Forward)의 경우 학습 속도에 대해서 언급하지 못했지만 순환 신경망의 경우는 학습 속도도 빨라진 것을 그래프로 제시하기도 했습니다.

아래 팬트리뱅크(Penn TreeBank) 그래프에서 파란 실선이 그래디언트 모델을 사용하여 레이어 사이를 비동기(DNI, Decoupled Neural Interface)화 한 경우입니다. BPTT를 8로 한 DNI 모델이 40으로 한 일반적인 순환 신경망의 경우보다 학습 속도와 결과 모두 좋았다고 합니다.

3-11

출처: 딥마인드 블로그

딥마인드의 이 페이퍼에 대한 좀 더 자세한 내용은 이 포스트를 참고해 주세요.

Decoupled Neural Interfaces using Synthetic Gradients[1608.05343] Summary

지난 주 딥마인드에서 내놓은 이 페이퍼는 이전 포스트에서 잠깐 언급했듯이 뉴럴 네트워크의 레이어간의 데이터 주입과 그래디언트 업데이트를 비동기적으로 처리하는 방식을 제안하고 있습니다. 이전에 이런 방식과 유사한 연구가 있었는지 배경 지식을 구하기는 힘들었지만 분명한 것은 이 페이퍼가 여러 사람에게 큰 관심을 끌고 있다는 점입니다.

뉴럴 네트워크의 한 레이어에서 데이터를 처리할 때 다른 레이어가 작업을 하지 않은 상태를 멈춰(locking)있다고 표현할 수 있습니다. 특히 레이어간의 연산이 다른 디바이스에 할당되어 있는 경우에는 물리적으로도 멈춰있는 형태가 됩니다. 이렇게 멈춰있게 되는 경우는 에러 그래디언트(gradient)를 역전파시킬 때도 마찬가지 입니다. 체인 룰(chain rule)의 특성상 이전 레이어에서 그래디언트가 전달되지 않으면 하위 레이어는 대기 상태에 있습니다. 이런 레이어간의 동기성은 거대한 뉴럴 네트워크의 학습 속도에 영향을 미치므로 레이어간의 데이터 전달을 비동기적으로 처리하는 모델을 제안하고 있습니다.

여기서 제안하는 방법은 한 레이어에서 데이터가 처리된 후 그 다음 레이어를 통과해 마지막 레이어에서 에러가 계산되어 역전파 되기를 기다리지 않고 데이터가 처리되자 마자 가짜 그래디언트(synthetic gradient)를 업데이트 하는 것입니다. 가짜 그래디언트로 레이어의 파라메타(가중치)가 업데이트 되면 다음 미니배치 데이터를 받아 들일 수 있게 됩니다. 가짜 그래디언트는 진짜 그래디언트가 앞 레이어로 부터 전달되면 이 값을 이용하여 보다 좋은 가짜 그래디언트를 만들기 위해 학습합니다. 즉 가짜 그래디언트를 위한 소규모의 뉴럴 네트워크가 레이어 사이 사이에 위치해 있습니다. 아래 그림은 이런 그래디언트의 비동기적인 업데이트 과정을 잘 보여 주고 있습니다.

계속 읽기

Asynchronous update with Synthetic Gradient

구글 딥마인드 팀에서 새로운 페이퍼 ‘Decoupled Neural Interfaces using Synthetic Gradients‘를 공개했습니다. 보통 포워드 방향으로 뉴럴 네트워크를 학습시키고 백워드 방향으로 그래디언트를 전파할 때 모든 뉴럴 네트워크의 레이어가 멈춰있게 됩니다. 즉 동기적으로 파라메타가 업데이트 되는 것이죠. 이 페이퍼에서는 뉴럴 네트워크의 레이어를 작게 분리하여 학습과 에러 전파를 비동기적으로 할 수 있도록 했다고 합니다. 초록만 대충 보았는데 좀 더 정확한 내용이 파악되면 업데이트 하도록 하겠습니다.

Deep Q Learning with Gym and TensorFlow

model

텐서플로우와 OpenAI에서 공개한 강화학습 도구인 Gym을 이용한 Q Learning 구현물이 깃허브에 공개되었습니다. 이 코드는 2015년 네이처지에 실린 구글 딥마인드(DeepMind) 팀의 ‘Human-Level Control through Deep Reinforcement Learning‘ 논문을 텐서플로우와 Gym으로 구현한 것입니다. 결과 화면은 흥미롭습니다.

best

원 논문은 구현은 토치로 개발되었습니다. 원 논문의 소스는 여기서 다운받을 수 있습니다.

(추가) 이 코드는 쿠키런 게임을 개발한 데브시스터즈에서 만들었습니다. 강화학습 분야는 역시 게임회사에서 관심이 많은 것 같습니다.

DeepMind moves to TensorFlow

오늘 구글은 블로그를 통해 딥마인드(Deepmind.com)가 토치(Torch)에서 텐서플로우(TensorFlow)로 연구, 개발 프레임워크를 교체한다고 발표하였습니니다.

토치는 그동안 딥마인드와 페이스북이 사용하면서 코드 기여도 상당했었지만 딥마인드가 토치를 더이상 사용하지 않게 됨으로써 토치 진영에는 페이스북과 트위터가 남게 되었습니다. 어찌보면 예상된 수순이었을지 모르겠습니다. 이세돌과 알파고가 바둑대전을 할 때 제프딘이 언급한 것 처럼 이미 알파고에 텐서플로우가 일정 부분 사용되고 있었기 때문입니다.

며칠 전 선다 피차이(Sundar Pichai) 구글 CEO가 보낸 창업자의 편지(Founder’s letter)에서 앞으로 세상은 모바일 퍼스트(mobile first)에서 AI 퍼스트(AI first)로 변할 것이라고 말하고 있습니다.

“We will move from mobile first to an AI first world.”

이런 비전의 첫 교두보인 텐서플로우가 무엇보다도 널리 쓰이길 바라는 것이 구글에서는 당연할 것입니다. 딥마인드는 지난 몇 달간 기존의 연구를 텐서플로우로 변경하면서 테스트를 해왔고 이제 앞으로 딥마인드에서 수행하는 모든 연구는 텐서플로우를 이용할 것이라고 합니다.

물론 텐서플로우를 PR 하는 것이라고 비아냥 거리는 냉소도 인터넷에 돌아다니긴 합니다.

The Expanding Universe of Modern AI

nvidia-ai-big-bang

클릭하시면 확대해서 보실 수 있습니다. 출처: Nvidia

Nvidia 에서 인공지능 분야의 테크놀러지 빅뱅(Big Bang)을 한 눈에 조감할 수 있는 이미지를 만들어 오늘 공개했습니다.

맨 왼쪽에는 연구분야로서 알파고로 유명한 딥마인드, OpenAI, 몬트리올/뉴욕/MIT 대학교 등이 눈에 뜨입니다. 그 다음으로는 핵심 기술이나 프레임워크로서 페이스북이 지원하는 Torch, 구글의 TensorFlow, 버클리의 Caffe, 몬트리올 대학교의 Theano, 마이크로소프트의 CNTK 등을 Nvidia의 cuDNN이 떠 받치고 있는 모습니다. ^^

그 오른쪽에는 머신러닝을 플랫폼화한 아마존 웹서비스와 IBM 왓슨, 구글, 마이크로소프트의 Azure가 있습니다. 그 다음으로가 가장 관심이 갈 만한 인공지능 분야의 떠오르는 스타트업입니다. 가운데 얼마전 세일즈포스로 인수된 메타마인드(MetaMind)가 있습니다. 여기에 언급된 회사들을 한번쯤 눈여겨 보아두면 아마 언젠가 뉴스에서 큰 기사거리로 만날 수 있을 것 같습니다.

산업부분의 리더 들이 가장 오른쪽에 위치해 있는데요. Andrew Ng 박사가 합류한 바이두(Baidu)가 아직 뚜렷한 성과를 내지 못해서인지 이곳에 있는 게 약간 의외입니다. 머지않아 구글이나 페이스북과 나란히 위치해 있는 그림으로 바뀌지 않을까요.

알파고와 이세돌의 대국을 보러 제프딘이 한국에 왔다.

구글 전설의 엔지니어 제프딘(Jeff Dean)이 알파고와 이세돌의 대국을 보러 지난 주에 한국에 머물렀다고 구글 플러스를 통해 밝혔습니다. 제프딘은 구글 브레인 팀을 이끄는 수석 엔지니어이며 구글 빅테이블, 맵리듀스 등 굵직한 논문들에 빠짐없이 언급되는 구글에서 빼 놓을 수 없는 엔지니어로 알려져 있습니다.

뉴럴네트워크나 인공지능 컨퍼런스 외에는 크게 외부활동은 없는 것으로 알고 있는데요. 이번 대국을 보러 한국에 온 일은 나름 의외로 보입니다. 아마 딥마인드 팀을 격려하고자 하는 의도도 있었겠죠.

계속 읽기