딥러닝과 에스프레소북 그리고 이것저것들

이 글은 개인적인 광고 글일수도 있고 아닐수도 있다. 이런 글을 쓸 때마다 "일기는 일기장에"라는 옛 속담이 떠오른다. 최근 에스프레소북에서 "딥러닝 in Torch"라는 책을 썼다. 이 글에서는 딥러닝을 배우기 시작한 계기와 그 과정, 그리고 딥러닝 프레임워크인 Torch에 대해 이야기하고자 한다. 그리고 그 경험을 에스프레소북에서 글을 쓰는 과정을 통해 개인 출판이라는 과정이 얼마나 쉬웠는지를 공유하려고 한다.

딥러닝???

작년 "Recommending music on Spotify with deep learning"라는 글을 우연히 읽게 되었다. 기존의 CF(Collaborative Filtering) 기반 추천 시스템의 cold-start 문제를 딥러닝(deep learning) 알고리즘의 하나인 CNN(Convolutional Neural Netowrk)을 사용하여 보완할 수 있다는 내용이었다. 이처럼 딥러닝을 활용하여 컨텐츠 기반(CB: Contents-Based)의 추천시스템을 만들면 cold-start 문제를 보완할 수 있다.

spotify_convnet

그림. 스포티파이(Sporify)의 CNN 아키텍처

그래서 딥러닝 관련 자료들을 찾아서 배우기 시작했다. 제프리 힌튼(Geoffrey Hinton), 요슈아 벤지오(Yoshua Bengio)와 같은 딥러닝 구루들의 이름도 듣게 되었고, 테아노(Theano), 카페(Caffe), Deeplearning4J와 같은 딥러닝 프레임워크도 알게 되었다. 하지만 수학으로 가득찬 논문과 자료들은 이해하기 어려웠고, 프레임워크의 예제를 실행하는 것조차 쉬운 일이 아니었다. 그 때의 심정을 윤동주 시인의 별헤는 밤을 차용하면 다음과 같다.

별헤는 밤

별 하나에 추억과

별 하나에 사랑과

별 하나에 쓸쓸함과

별 하나에 동경(憧憬)과

별 하나에 시와

별 하나에 어머니, 어머니

어머님, 나는 별 하나에 아름다운 말 한마디씩 불러봅니다.

고등학교 때 책상에 있던 수학의 정석의 이름과 피드 포워드, 백 프라퍼게이션, 컨볼루션 이런

이국 이론들의 이름과 벌써 딥러닝 전문가가된 과학자들의 이름과,

가난한 이웃 개발자들의 이름과,  분류, 회귀, 학습률, 우도, 규제화,

'제프리 힌튼', '요수아 벤지오', 이런 구루의 이름을 불러 봅니다.

이네들은 너무나 멀리 있습니다.

별이 아스라이 멀듯이.

수학이 문제다

수학이 문제였다. 이론을 어느 정도 이해하지 않고서는 도구를 사용하는게 불가능함을 깨달았다.

그러나, 겨울이 지나고 나의 별에도 봄이 오면,

무덤 위에 파란 잔디가 피어나듯이

내 이름자 묻힌 언덕 위에도

자랑처럼 풀이 무성할 거외다

그래서 풀이 무성해질 그 날을 기대하며 행렬, 선형대수 등 몇가지 필요한 기본 수학을 다시 복습했다. 루비페이퍼에서 발행한 "코딩 더 매트릭스(Coding The Matrix)"가 큰 도움이 되었다.

book_coding_the_matrix

그림.코딩 더 매트릭스(Coding The Matrix)

그러다 Torch를 만나다

Torch는 뉴욕대학교에서 개발한 프레임워크로 루아(Lua) 프로그래밍 언어를 기반으로 한다. 내가 본 Torch의 장점은 다음과 같다.

  • 설치가 쉽다
  • 문법이 단순하며 직관적이다.
  • 관련 예제가 풍부하다
  • 다양한 문제(이미지, 음악, 텍스트 등)에 적용할 수 있다
  • 초심자를 위한 다양한 가이드와 튜토리얼을 제공한다.

특히 Torch 비디오 튜토리얼은 큰 도움이 되었다. 그리고 이러한 경험을 정리하려고 마음 먹었다. 실제로 동작하는 예제를 보여주고, 예제에 나타난 함수들이 딥러닝의 어떤 알고리즘과 관련된 것인지를 소개하는 것이 좋겠다고 생각했다. 즉 다른 딥러닝 책이나 자료와는 달리, 예제를 보여주고 원리를 설명하는 정반대의 흐름으로 글을 쓴다면 더 쉽게 이해할 수 있으리라는 판단이 들었다.

에스프레소북을 만나다

마침 옆에 에스프레소북이라는 1인 출판 서비스가 있었다. 간단히 회원 가입 후 무료로 저자를 등록하면 바로 책을 쓸 수 있다. 그리고 책을 쓰고 나면 손쉽게 전자책으로 발행할 수 있다.

espressobook

그림. 1인 출판 스타트업, 에스프레소북

에스프레소북에서 책 쓰기

에스프레소북에서 책을 쓰는 과정은 다음과 같다. 간단히 말하면 저자로 등록하고 책을 만들어서 책을 쓴 후, 발행하는 과정을 모두 온라인에서 처리할 수 있다.

espressobook_process

그림. 에스프레소북에서 책 쓰는 과정

뿐만 아니라 책을 완성하면 책단위 또는 장(챕터) 단위로 판매도 가능하다.

딥러닝 in Torch

이렇게 짬짬이 시간을 내어 글을 썼다. 그리고 몇일 전 책이 완성되었고, 에스프레소북 스토어에 올릴 수 있었다. 에스프레소북 스토어는 책을 온라인에서 구매할 수 있는 장터다.

cover_thumbnail

그림. 에소프레스북 스토어

새로운 연장 익히기

딥러닝과 관련된 기사가 연일 쏟아지지만 아직은 성숙되지 않은 단계라고 본다. 많은 현장과 업체에 도입되어 서비스화 되려면 아직 시간이 걸린다. 이제 시작일테지만, 딥러닝과 Torch라는 새로운 도구 하나 정도는 연장으로 챙겨두는 것도 좋지 않을까 한다.


Popit은 페이스북 댓글만 사용하고 있습니다. 페이스북 로그인 후 글을 보시면 댓글이 나타납니다.