‘Introduction to NLP’ at Coursera

intro-nlp.png

코세라에서 9월 부터 미시간 대학교의 ‘Introduction to Natural Language Processing‘ 코스가 시작됩니다. 아마도 2015년에 진행했던 것과 유사한 커리큘럼으로 보여집니다. 요즘 화두가 되는 인공지능을 이용하는 부분은 2017년 초에 새롭게 추가되어 진행될 예정이라고 해서 약간 아쉽습니다만 지금으로도 충분히 좋은 강좌라고 생각됩니다. 파이썬과 NLTK 라이브러리를 사용합니다.

얼마전 코세라에서 예전 강좌를 다시 시작한다고 포스팅를 올린 적이 있는데요. 그 중에 스탠포드의 ‘Natural Language Processing’이 강좌가 열린다고 한 것은 오류라고 메일이 왔습니다. 현재 이 강의 페이지는 제대로 열리지도 않네요. ㅠ.ㅠ  그나마 제프리 힌튼(Geoffrey Hinton)의 뉴럴 네트워크 강좌와 다프니 콜러(Daphne Koller)의 확률 그래프 모델 강좌는 예정대로 진행될 것 같습니다.

이 강좌의 수료증을 받으려면 약 50달러를 내야하지만 수료증이 필요 없는 경우엔 무료로도 강의를 들을 수 있습니다. 며칠전 코세라의 공동 창업자 중 한명인 다프니 콜러(Daphne Koller)가 코세라를 떠나 구글이 설립한 바이오 벤처 칼리코(Calico)로 옮겼다는 소식이 전해졌습니다. 앤드류 응(Andrew Ng)도 바이두로 간 마당에 코세라가 더 비즈니스틱하게 변모하지 않을지 괜한 걱정이 드네요.:-/

Neural Network in Galaxy S7

samsung_m1_branch

출처: 더레지스터

삼성 갤럭시 S7의 CPU에 뉴럴 네트워크가 들어있다는 기사가 더레지스터(theregister.co.uk)에 게재되었습니다. CPU에서 뉴럴 네트워크와 관련된 것은 네개의 M1 코어라고 합니다. 뉴럴 네트워크를 사용하는 주요 목적은 분기 예측(branch prediction) 때문이라고 합니다. 이미 AMD 나 인텔 등이 분기 예측을 위해 퍼셉트론 혹은 뉴럴 네트워크를 사용하고 있다고 추측하고 있는데 공개적으로 이를 공표한 것은 삼성이 처음이고 이례적인 일이라고 하네요. 임베딩 시스템에 대해 잘 몰라서 프로세스가 조건 분기 상황에서 어떤 분기로 진행하게 될 것인지 예측한다는 정도만 이했습니다. 뉴럴 네트워크가 조금씩 더 우리 주변에 밀접하게 다가오는 것 같은 흥미로운 기사입니다.

DL with Neural Networks and TensorFlow Introduction

예전에 소개해 드렸던 ‘ML with Python‘ 동영상 시리즈를 만든 해리슨 킨슬리(Harrison Kinsley)가 텐서플로우와 딥러닝에 관한 새로운 동영상 시리즈를 유투브에 올리고 있습니다. 정말 대단합니다!

지금까지는 총 6개가 업로드되었습니다.

Decoupled Neural Interfaces using Synthetic Gradients[1608.05343] Summary

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

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

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

계속 읽기

DL Summer Seminar at Barcelona

UPC TelecomBCN이 주관하는 딥러닝 서머 세미나가 지난 달에 바르셀로나에서 열렸었습니다. 5일간 열린 이 세미나의 슬라이드, 코드 그리고 강의 동영상이 공개되어 있습니다. 제가 번역한 책 ‘First Contact with TensorFlow’의 저자 Jordi Torres 교수도 강의자 명단에 포함되어 있네요. 아마도 저술한 책의 내용을 바탕으로 강의를 진행한 것 같습니다.:-)

OpenAI and ML Unconference

오늘 OpenAI에서 10월 7~8일에 머신러닝 언컨퍼런스(unconference)를 개최한다고 홈페이지를 통해 공지했습니다. 언컨퍼런스라고 하면 보통 페이퍼를 등록하는 위원회가 없이 참여자들이 자유스럽게 여러가지 주제에 대해 토론하고 발표하는 것을 말합니다. 이렇게 하는 이유는 컨퍼런스에서 페이퍼를 등록하고 준비하는 기간이 수개월이나 소요되어 머신러닝 분야의 발전속도에 따라가지 못하기 때문이라고 합니다. 일반적으로 컨퍼런스의 주요 목적중의 하나인 네트워킹에 중점을 두어 최근 동향과 연구를 다루려고 하는 것 같습니다. 아직 구체적인 스케줄이나 방식은 나오지 않았습니다만 대략 150명의 인원을 대상으로 하며 OpenAI 사무실에서 진행될 예정이라고 합니다. 미리 참여를 확보한 리스트에는 구글 브레인팀을 비롯해 여러 PhD 학생과 연구자들이 있습니다. 온라인으로 누구나 신청할 수 있습니다만 초청 대상이 되는 것은 PhD 학생이나 주요 연구자들이 대상이 될 것으로 보입니다. 혹 초짜라면 다른 컨퍼런스를 알아보라고 하네요. ㅠ.ㅠ

이 발표가 있기 며칠전 OpenAI의 새로운 팀원이 추가된 공지가 올라왔습니다. 새로운 멤버에 대해서 아는 바는 없지만 기술 저술가인 잭 클라크(Jack Clark)가 추가된 것이 독특합니다. 잭은 불룸버그나 비즈니스위크 등에 인공지능 관련 기사에서 종종 볼 수 있는데요. OpenAI가 연구자 이외에 저술가 혹은 정책가로 팀 구성을 확대하는 점이 관심을 끄네요. 특히 그는 ‘Import AI‘라는 인공지능 관련 뉴스레터를 발행하고 있습니다(이름이 재미있습니다. 잭이 파이썬을 얼마나 쓰는지는 모르겠습니다). 이메일을 등록하시면 최근 업계 동향을 받아 볼 수 있습니다.

스탠포드 PhD 학생이면서 OpenAI의 팀원인 안드레이 카패시(Andrej Karpathy)는 최근 트위터를 통해 OpenAI에서 사용하는 주요한 딥 러닝 프레임워크는 텐서플로우라고 밝혔습니다. 하지만 사용하는 사람들이 각각 다른 방법을 쓰고 있어서 어려움을 느끼고 있는 것 같습니다. Slim, PrettyTensor, Keras, TFLean(aka. skflow) 등등. 아마 래퍼 라이브러리를 쓰지 않는 사람까지 고려하면 코드 공유에 약간 장애가 되겠네요. 안드레이는 slim을 쓴다고 합니다.:-)

케라스의 개발자인 구글의 프랑소와 숄레(François Chollet)가 가끔 트위터에 깃허브의 머신러닝 라이브러리 인기도를 조사해서 올리곤 합니다. 직감으로 알 수 있듯이 텐서플로우가 당연히 1위 입니다. 사실 이런 인기도 조사를 하는게 크게 의미가 있는 것이 아니고 프랑소와가 할만한 일도 아니라고 생각되는데요. 이런 트윗에 영 심기가 불편한 것은 토치를 사용하는 페이스북의 연구자들입니다. 숫자가 너무 차이가 나거든요. ㅠ.ㅠ

Asynchronous update with Synthetic Gradient

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

Neural Facegrid by discgen

proxy

출처: dribnet 플리커

drip.net에서 뉴럴 네트워크를 이용하여 얼굴 이미지를 자동 생성한 결과를 플리커에 올렸습니다. 무려 500개의 이미지입니다! 각 그리드 이미지에서 진짜 이미지는 정중앙에 있는 것이고 나머지는 모두 생성된 이미지 입니다. 이 결과는 몬트리올 대학의 빈센트 더몰린(Vicent Dumoulin)이 발표한 페이퍼 ‘Discriminative Regularization for Generative Models‘와 그의 코드 베이스를 기반으로 하고 있습니다. 빈센트 더몰린은 제가 번역하여 블로그에 올린 ‘A guide to convolution arithmetic for deep learning‘의 공동 저자이기도 합니다.

ConvNet with WebGL

record_resize

WebGL을 사용하여, 즉 브라우저에서 GPU 가속을 사용하여 콘볼루션 뉴럴 네트워크를 구현한 데모가 공개되었습니다. 이곳에서 파이어폭스나 크롬 브라우저로 직접 테스트해 보실 수 있습니다. 이 데모의 깃허브에 조금 자세한 설명이 들어 있습니다. MNIST 학습은 텐서플로우로 한 후에 파라메타들를 바이너리로 저장하여 자바스크립트에서 읽어들여 사용했습니다.

자바스크립트에서 콘볼루션 뉴럴 네트워크를 구현한 것으로 잘 알려진 것은 스탠포드의 안드레이 카패시(Andrej Karpathy)가 만든 ConvNetJS가 있습니다. 이 데모에서는 순수한 자바스크립트로만 구현한 것이 아니고 WebGL 래퍼인 regl 라이브러리를 사용하여 GPU 가속을 이용한 점이 돋보입니다. 다른 기술들이 그렇듯이 딥 러닝 분야도 브라우저를 통해 많이 응용될 수 있을 것 같습니다.

‘텐서플로 첫걸음’ 출간을 자축하며 :-)

l안녕하세요. 이 블로그에 글을 쓰는 박해선입니다. 처음엔 개인적인 관심사로 머신러닝을 공부하다가 알파고 역풍(!)에 블로그를 시작하게 되었습니다. 매스미디어와 깃허브 코드 사이에는 어느정도 간극이 있고 이런 부분들이 글이나 책등으로 많이 채워지면 좋을 것 같습니다. 아마 이 블로그는 그 사이 어딘가를 조금 메우려 하고 있을 것 같습니다.

블로그를 시작할 때 한참을 망설였지만 누군가 시작하면 도미노처럼 더 멋진 일들이 생겨날 것이라 생각했습니다. 사실 이 책도 기쁨보다는 두려움이 조금 더 앞섭니다. 하지만 누군가에게 도움이 될 수 있을 거라고 마인드콘트롤 하고 있습니다:-)

이 책은 조르디 토레스 교수가 쓴 ‘First Contact with TensorFlow’의 번역본입니다. 온라인에 올린 것과는 달리 많은 교정을 거치고 추가 챕터를 넣어 부족한 부분을 보완했습니다. 정말 우연찮게 온라인에 공개한 글을 번역했는데 이글을 보시려 많은 분들이 찾아와 주셨기 때문에 출판사에서도 연락이 오지 않았을까 생각합니다. 그런점에서 페이스북의 TensorFlow KR, 바벨피쉬, Deep Learnng 그룹에 감사드립니다.  특별히 바벨피쉬의 강희석님은 원문과 번역본의 여러 오타와 문제점을 지적해 주셔서 큰 도움이 되었습니다. 그리고 흔쾌히 추천사를 써 주신 TensorFlow KR의 김성훈 교수님과 구글 코리아의 권순선님께 감사드립니다. 그리고 물심양면 늘 도와주시는 니트머스 김용재 대표님께 감사의 말을 드리지 않을 수가 없네요.

이 곳에 들러주신 모들 분들과 댓글과 메일로 잘못된 점을 지적해 주시고 또 격려를 해 주신 많은 분들께 진심으로 감사 드립니다. 우리 모두 옳은 방향으로 가고 있다고 믿습니다.:-)

* 이 책의 오타와 잘못된 점은 이곳으로 알려 주세요. 블로그에 계속 업데이트 하도록 하겠습니다.

* 온라인 서점에서 예약판매 중입니다. [교보문고], [yes24], [알라딘]