‘혼자 공부하는 머신러닝+딥러닝’ 이 책은

‘인공지능(AI)’은 오늘날 정보통신업계에서 가장 인기 있는 기술이다. 사람처럼 생각하고 혼자 판단하는 AI가 보편화되면 우리 삶은 크게 변할 것이다. 영화, 소설이 현실이 될 것이다. 이에 AI 개발자를 꿈꾸는 이들도 많이 생겼다.

AI 개발자. 이름만 들어도 멋있게 느껴지지만, 한편으로는 뭔가 어렵다는 생각도 든다. 사람과 비슷하게 생각하는 AI를 설계한다고 생각하면 더욱 그렇다. 그런데, 한 개발자는 이 생각을 바꾸라고 조언한다. 혼자서도 AI를 공부하고 만들 수 있다고, 처음이 어렵지, 한 발 내딛으면 생각보다 쉽게 AI 개발자의 길을 찾을 수 있다고.

▲혼자 공부하는 머신러닝+딥러닝 / 한빛미디어

개발자 박해선 저자는 정보통신기술 책을 다뤄온 명가 한빛미디어를 통해서 ‘혼자 공부하는 머신러닝+딥러닝’을 썼다. 저자 자신이 혼공족이었기에 그 경험을 담았고, 또한 저자 자신이 개발자이기에 효율 좋게 개발을 공부하는 방법까지 담았다.

이 책에 있는 모든 머신러닝+딥러닝은 무료로 쓸 수 있는 구글 코랩에서 시연할 수 있다. 또 저자는 책의 내용을 상세히 풀어주는 유튜브 채널까지 개설, 더 많은 개발자를 키우고자 한다.

‘혼자 공부하는 머신러닝+딥러닝’을 쓴 박해선 저자를 만나 다섯가지 질문을 던졌다.

Q1. 그 어려운 머신러닝을 혼자? 이 책의 저술 동기를 알려주세요.

-머신러닝뿐 아니라 무엇이든 처음 배울 때는 어렵다. 일종의 진입장벽 같은 게 있다. 일단 그 장벽을 넘으면 다음부터는 의외로 수월하게 전진할 수 있다. 머신러닝·딥러닝에 관한 관심이 많아지며 시중에 책도 늘었다. 책마다 장점이 따로 있지만, 맨 처음 배우는 입문자에게 쉬우면서도 꼼꼼하게 알려 주는 책이 있으면 좋겠다고 생각했다. 어려운 수학 공식은 가능하면 배제하고 쉬운 말로 풀어서 설명하는 책을 만들고 싶었다.

한빛미디어 ‘혼공(혼자서 공부하는)’ 시리즈를 보고 출판사에 이 책을 쓰고 싶다고 이야기했다. 나 역시 혼공족이었다. 특별한 이유가 있어서가 아니라, 그냥 알고 싶어서 여러 책과 MOOC로 머신러닝·딥러닝을 혼자 공부했다. 혼공이라는 단어는 혼밥이나 혼술처럼 우울한 느낌이 아니라 자립심을 드러내는 듯해 좋았다. 그래서 꼭 혼공 시리즈로 머신러닝 책을 쓰고 싶었다.

머신러닝·딥러닝은 물론 혼자 배울 수 있다. 단, 프로그래밍에 대한 지식이 조금은 필요하다. 최근에는 대개 ‘파이썬’ 프로그래밍 언어를 사용한다. 이 책에서도 파이썬을 예로 들었다. 하지만, 파이썬의 어려운 문법이나 기술을 사용하지는 않다. 기본적인 파이썬 문법만 안다면 쉽게 읽을 수 있다.

일주일에 2회씩 무료 강의를 줌으로 열고 있다. 벌써 4장째다. 강의는 녹화 후 유튜브 채널에 공개한다. 책과 함께 강의를 들으면 누구나 어렵지 않게 배울 수 있다. 스터디 안내와 유튜브 주소는 페스타(https://festa.io/events/1365)나 제 블로그(https://tensorflow.blog/hg-mldl/)를 참고해달라.

Q2. 머신러닝이 무엇인지, 알맞고 재미있는 예를 들어 설명해주세요.

-이 책에 있는 스토리를 빌려오겠다. ‘도미’와 ‘빙어’를 구분하는 자동화 프로그램을 만들어야 한다고 가정하자. 크기로 구분한다면 ‘몇 cm 이상이어야 도미, 이하여야 빙어’일까? 컴퓨터로 자동화하려면 ‘기준 크기’가 있어야 한다.

대개 이 기준은 사람이 정해 알려준다. 프로그래머 혼자 결정할 수도, 여러명이 상의해 결정할 수도 있다. 하지만, 이 기준을 찾기 어려운 경우가 많다. 이럴 때 ‘컴퓨터가 스스로 기준을 찾게 만들면’ 어떨까? 이것이 바로 머신러닝이다.

도미와 빙어의 예로 돌아가자. 이들을 구분하는 기준을 컴퓨터, 머신러닝 프로그램이 스스로 찾게 만든다고 가정한다. 그러려면 머신러닝 프로그램이 참고할 도미와 빙어의 데이터를 준비해야 한다. 그다음 머신러닝 프로그램에게 이 데이터를 전달한다.

만약 새로운 어떤 생선이 도미인지 빙어인지 알고싶다면, 머신러닝 프로그램에게 새로운 생선의 크기를 알려주고 도미와 빙어인지 물어 보면 된다.

머신러닝 프로그램이 이 새로운 생선이 도미인지 빙어인지 구분하는 방법은 많지만, 가장 간단한 방법은 새로운 생선과 가장 크기가 비슷한 생선 몇 개를 찾아 골라 보는 것이다. 크기가 비슷한 생선 중 도미가 많다면 이 생선을 도미로 예측할 것이다. 반대로 크기가 비슷한 생선 중 빙어가 많다면 빙어로 예측할 것이다. 머신러닝은 이렇게 데이터에서 기준, 혹은 규칙을 학습하는 프로그램을 만드는 일이다.

Q3. 이 책을 읽고 머신러닝 개발자들이 많아지면, 우리 미래는 어떨게 바뀔까요?

-정말 놀라운 변화가 일어날 것이라고 확신한다. 사실 소프트웨어 개발은 매우 힘든 일이다. 하지만, 우리나라엔 훌륭한 개발자들이 정말 많다. 소프트웨어 인재를 키우기 위해서 많은 노력도 한다.

많은 머신러닝 개발자들이 우리 일상 생활을 편리하게 만들어주는 많은 서비스를 만들어낼 것이다. 자율주행차까지 가지 않더라도 우리 주위에서 쉽게 찾을 수 있는 것이 많다. 예를 들어 현관문에서 비밀번호나 카드키를 사용하지 않고, 집주인의 얼굴을 보고 열어 줄 수 있겠다.

휴대전화에 있는 음성 비서는 새 메시지를 읽어 주는 것에 그치지 않고, 이용자가 관심을 가질 만한 새 뉴스를 말로 전달해 줄 수 있다. 예를 들어 ‘해선 님, 지금 한빛미디어에서 새로운 머신러닝 책이 출간되었대요. 좀 더 자세히 알아볼까요?’라고 알려 주는 것이다.

머신러닝 프로그램이 만드는 소설도 읽게 될 것이다. 아마 서점에는 새 소설 코너가 마련돼야 할 것이다. ‘머신러닝이 쓴 소설’을 평론하는 ‘머신러닝 프로그램’도 나올 것이다. 심지어 ‘머신러닝이 표절한 소설을 찾는 머신러닝’이나 ‘머신러닝 소설을 요약해 알려주는 머신러닝’도 등장할 것이다.

이 현상은 소설뿐만 아니라 그림, 음악 등 문화 산업 전반에 퍼질 것이다. 영화의 CG를 사람이 아닌 머신러닝 프로그램이 만든다고 생각해보라. 창작에 대한 새로운 기준이 필요할지 모른다.

Q4. 저자가 꼽는 이 책의 장점은?

-보통 입문서를 만들 때 ‘쉽게 읽을 수 있도록’ 만들다 보니 조금 어려운 내용은 많이 생략하게 된다. 처음 수영을 배울 때 한시간 내내 발장구만 치다가 끝나면 정말 재미없다. 그래서 이 책은 필요한 내용을 잘 전달하면서도 쉽게 읽을 수 있도록 만들고 싶었다. 그래서 스토리텔링을 넣었다.

이 책에는 ‘혼공 머신’이라는 등장 인물이 나온다. 주어진 문제를 하나씩 해결하며 성장하는 과정을 볼 수 있다. 이 책에서 혼공 머신이 겪는 문제들은 머신러닝에서 흔히 등장하는 문제 혹은 꼭 알아야할 중요 개념이다. 어떤 상황과 맞물려서 문제를 제시하고 풀어가기 때문에 아마 독자들의 기억 속에 오래 남을 수 있을 것이다. 너무 이야기가 많으면 지루해지기 때문에 적절한 수준에서 편집자와 스토리 길이를 조정했다.

말로 설명하는 것에서 그치지 않고 그림을 많이 넣고도 싶었다. 책에 들어갈 그림을 애플 아이패드로 그렸는데, 실제 책에는 전문 작가가 다시 그린 그림이 들어가 있습니다. 원하는 설명 방법이 이미지에 잘 표현돼 만족한다. 공들여 그림을 그려준 작가와 출판사 덕분에 스토리와 그림 두가지를 충분히 활용한 ‘혼자 공부하는 머신러닝+딥러닝’책을 낼 수 있었다.

이 책의 예제 코드는 브라우저만 있으면 모두 실행해 볼 수 있다. 비싼 컴퓨터, 복잡한 설치도 필요 없다. 구글이 무료 제공하는 서비스 코랩(colab)을 써서 머신러닝·딥러닝 파이썬 프로그램을 실행해 볼 수 있다. 이 책의 모든 예제가 코랩을 써서 만들었으므로, 누구나 쉽게 이 분야를 입문할 수 있는 최선의 방법이 될 것이다.

Q5. 개발자를 꿈꾸는 이들에게 도움이 될 한 마디 부탁드립니다.

-사실 소프트웨어 개발은 대개 어렵다. 컴퓨터의 추상적인 행동을 소프트웨어로 구현해야 한다. 하지만, 그래서 흥미진진하고 재미있다. 컴퓨터 과학 분야는 매우 개방적이고 공평하다. 머신러닝·딥러닝 분야는 더욱 그렇다. 소프트웨어 개발을 잘 한다면 인종, 학력, 성별, 나이를 가리지 않는다. 배울 수 있는 자료도 아주 많다. 책은 물론이고 무료로 들을 수 있는 훌륭한 강의도 유튜브나 MOOC에 많다.

천리길도 한걸음부터다. 너무 조급하게 생각하지 않았으면 한다. 지금 딥러닝이 인기를 끄니 이 때를 놓치면 큰일 날 것 같지만, 그렇지 않을 것이다. 나중에는 더 크고 엄청난 변화가 생길 것이다. 이전에도 그랬다. 느긋하게 마음을 먹고 관심있는 분야를 꾸준히 공부하다보면 어느새 큰 파도 위에 서 있게 될 거라 믿는다.

이전엔 개발자 업계에서 ‘어떤 언어를 배우면 연봉이 얼마’라는 말을 했다. 지금도 비슷하다. 취업, 수입을 전혀 생각하지 않을 수는 없겠지만, 그럼에도 가능하면 자기에게 잘 맞는 분야를 찾는 것이 좋다.

시대의 흐름을 파악하면서 자기에게 잘 맞는, 흥미 있는 기술을 깊이있게 다루는 것이 좋겠다. 머신러닝만 하더라도 모델 훈련 외에 데이터 수집, 시각화, 클라우드 설계, 작업 파이프라인 등등 세부 작업이 아주 많다. 모델을 클라우드, 엣지 디바이스, 모바일 등 어디에서 운영하는지에 따라 또 다르다.

딥러닝 모델을 위한 GPU 최적화나 전용 칩을 제조하는 곳도 많다. 이미지, 영상, 음성, 텍스트 등 다루는 데이터의 종류에 따라서도 전문화가 될 수 있다. 공장에서 작업자의 안전을 감시할 수 있는 뛰어난 머신러닝 프로그램을 만든다면 엄청나게 많은 인기를 끌 것이다.

마지막으로 정말 초보 개발자라면 글을 읽고 쓰는 연습을 많이 하라고 하겠다. 프로그래밍도 논리적인 글쓰기와 많이 비슷하다. 단, 사람을 위해 쓰는게 아니고 기계를 위해서 쓰는 것이 다르다. 프로그램만 만드는 것이 아니다. 프로그램을 만들기 전의 문서, 프로그램 안의 주석, 프로그램을 만든 후의 문서를 많이 만들게 된다.

개발자는 자신의 프로그램뿐 아니라 다른 사람의 프로그램도 많이 읽는다. 버그가 생기면 읽을 수 밖에 없다. 또 다른 프로그래머가 쓴 주석이나 문서도 많이 읽어야 한다. 평소 읽고 쓰기 훈련이 잘 되어 있다면 어려운 일도 잘 해결할 수 있을 것이다.

▲’혼자 공부하는 머신러닝+딥러닝’ 박해선 저자 5Q 인터뷰 / 촬영·편집 차주경 기자

저자 박해선은

기계공학 전공으로 현재 ML GDE(Machine Learning Google Developer Expert)로 활동한다. 머신러닝·딥러닝 책을 집필하고 번역하며 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있다. 블로그(tensorflow.blog)도 운영한다.

지금까지 숱한 머신러닝, 딥러닝 책을 쓰거나 우리말로 옮겼다. ‘Do it! 딥러닝 입문(이지스퍼블리싱, 2019)’, ‘미술관에 GAN 딥러닝 실전 프로젝트(한빛미디어, 2019)’, ‘머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(길벗, 2019)’ ,‘핸즈온 머신러닝 2판(한빛미디어, 2020)’ 등이다. 최신 유행에 맞춰 무료 온라인 강의도 펼친다.

Leave a comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다