세이노 저
임솔아 저
애나 렘키 저/김두완 역
천선란 저
백온유 저
김호연 저
학교에서 머신러닝에 대해서 배운 적이 있었다. 당시에는 주로 파이썬이나 케라스를 이용해서 코드를 작성했었는데, 이번 기회에 텐서플로우 개념을 좀 더 익히고, 인공지능과 관련된 알고리즘에 대해서 정리하고자 이 책을 읽게 되었다.
처음 이 책을 펼쳤을 때 든 느낀 점이 있다면, 적은 페이지 수(약 230페이지)에 생각보다 많은 내용을 담고자 했다는 점이다. 인공지능의 사례와 간단한 역사부터 지도 학습, 비지도 학습, 강화 학습을 소개하고, 프레임워크에 대한 내용이나 CUDA나 텐서플로우 설치 방법도 그림을 통해 설명한다. 그리고 지도 학습에서는 베이지안, 의사 결정 트리 같은 개념도 다뤘다.
책의 서술에 있어서는, 책의 제목에 적힌 대로 '입문용'인 만큼 각 알고리즘에 대해서 비유를 쉽게 잘 들었다는 것이다. 그래서, 해당 부분에 대해서는 막히지 않고 술술 읽을 수 있었다. 또 알고리즘에 대한 역사 부분도 흥미롭게 읽을 수 있었다.
하지만 앞서 언급했던 대로 책에서 다루는 내용이 방대한 만큼, 알고리즘 부분에 있어서는 일부 내용이 처음 보는 사람들이 읽기 힘든 부분도 있었다. 예를 들어, SVM의 커널 부분이나 강화학습의 Q에 대한 내용은 내용 언급이 너무 적은 듯했다. 그리고 강화학습 알고리즘 부분에서는 퍼셉트론 개념에 너무 치우쳐져 있지 않았나 싶었다.
예전에, 윈도우 PC에 텐서플로우 GPU 버전을 설치하기 위해서 고생한 적이 있었다. 그래픽카드에 맞는 CUDA 버전을 설치하고, 텐서플로우를 설치하는 과정에 있어서 자료가 별로 없었기 때문이다. 이 책의 뒷부분에는 텐서플로우 GPU 버전을 설치하는 내용이 있는데, 사진까지 같이 있어서 따라서 하면 유익하지 않을까 싶었다.
끝으로, 이 책의 제목이 '인공지능을 위한 텐서플로우 입문'인 만큼 텐서플로우를 얼마나 다루는지 궁금한 사람들도 많을 것 같다. 텐서플로우 코드의 경우, 이미 작성된 코드를 받아서 직접 실행해 본 다음 이미지를 넣어서 테스트하고, 짧게 코드를 분석하는 부분까지만 제시된다. 그래서 세션이나 자료형에 대한 설명부터 시작하여 텐서플로우 코딩을 위한 사람들에게는 아무래도 거리가 있는 것 같다. 대신, 인공지능을 처음 접해본 사람이 이 분야에서는 무슨 내용을 다루는지 알고 싶을 때 이 책을 읽는다면 도움이 될 것 같다.
최근 뉴스에 구글이 한국에서 5만 명의 AI 개발자 양성한다는 기사가 있었네요. 구글이 한국 AI 인력 재교육에 나선 셈이다. 머신러닝 스터디잼이 중심인데요. 이미 구글은 한국 AI 스타트업 지원을 꾸준히 해왔고 성과를 발표하기도 했어요. 그런데 구글이 발표한 성과 중에 눈에 띄는 것이 영상 채팅 서비스 '아자르'를 운영하고 있는 하이퍼커넥트가 구글 오픈소스 머린러닝 라이브러리 '텐서플로우'를 활용해 자동 음성 번역 등 딥러닝 모델을 연구하였으며 기존에 비해 130% 처리 속도 향상 효과를 봤다는 내용이에요.
여기서 자동 음성 번역 등 딥러닝 모델을 연구하는 텐서플로우라는 도구가 나오는데 이 책의 제목이면서 핵심 주제이기도 해요. 저도 잘 몰랐던 텐서플로는 구글이 오픈소스로 공개한 소프트웨어 라이브러리이자 수학, 물리학, 통계학 등 다양한 학문 문야에서 활용할 수 있는 머신러닝 엔진이에요. 한 마디로 데이터만 있으면 인공지능을 구현할 수 있도록 만든 뼈대이죠.
여기서 머신러닝은 인공지능의 한 축으로 ‘컴퓨터에게 코딩하지 않은 동작을 배우고 실행할 수 있도록 하는 능력’으로 정의할 수 있어요. 사실 인공지능 개념은 1950년대 인간의 뇌 시스템을 모델로 구상되었고 퍼셉트론 신경망 이론이 개발됐는데요. 세 가지 이유에서 반세기 넘도록 큰 발전을 이루지 못했다고 해요.
먼저 기계로 신경망 구성을 하기 위해선 컴퓨터의 연산처리 속도가 빨라야 하고, 둘째로 기계가 학습할 정도의 데이터가 있어야 하며, 세 번째는 이를 구현할 알고리즘 자체가 있어야 해요. 사실 세월이 흘러서 컴퓨터의 연산 속도가 충분히 빨라졌고 빅데이터 등 데이터도 충분하죠. 텐서플로우가 위의 세 가지 가운데 알고리즘을 충족시켜주는 엔진이라고 해요.
텐서플로우는 데이터 플로우 그래프 방식을 따르는데 수학 계산과 데이터의 흐름을 노드(Node)와 엣지(Edge)를 사용한 방향 그래프로 표현하는 것으로, 텐서는 학습된 데이터가 저장되는 다차원 배열정도로 이해할 수 있어요.
이 책은 정말 상세하고 쉽게 설명하고 있는데요. 우선 1장에서는 인공지능이란 무엇인지 전혀 모르더라도 쉽게 개념을 이해할 수 있도록 인공지능의 개요뿐 아니라 생활 속에서 활용하는 사례와 기술에 대해서 쉽게 설명하고 있어요. 2장에서는 인공지능이 어떻게 동작하는지를 이해할 수 있도록, 활용되고 있는 알고리즘의 분류인 지도 학습, 비지도 학습, 강화 학습으로 나누어 설명을 하고 있죠.
3장에서는 실제 인공지능 시스템을 구현하고 동작시키기 위한 다양한 프레임워크와 라이브러리에 대한 설명하고 비교하는 내용을 포함하고 있고, 마지막으로 4장에서는 인공지능 시스템을 구현하기 위해 머신러닝 동작에서 가장 많이 각광받고 있는 텐서플로우란 무엇이며 어떻게 설치하고 활용하는지 기본 예제를 통해 동작시켜 볼 수 있는 내용으로 구성되어 있네요.
얼마 전 바둑에서 알파고와 이세돌의 대전이 큰 관심을 끌었죠. 요즘 거론되는 4차 산업혁명의 핵심이 바로 인공지능이라고 하네요. 심지어 그림과 음악 같은 예술도 인공지능을 이용해서 작품을 만든다고 하는데, 저는 인공지능에 대해서 너무 모르고 있었네요. 특히 공학에 관심이 있는 아이에게 더 없는 인공지능 가이드가 될 듯해요. 이처럼 온 가족의 인공지능 입문서로 이 책을 추천합니다.
5G 시대를 맞이해서 더욱 부각이 되는 분야가 바로 인공지능이다. AI, 딥러닝, 기계학습으로 불리는 인공지능은 빨라진 통신 환경으로 인해, 컴퓨터라는 한정된 공간에서 벗어나 스마트폰, 자동차, 선박, 비행기 같은 운송 수단, 생활 가전, 각종 장비 등 무척 다양한 곳에서 활용할 수 있게 되었다. 그만큼 IT 산업의 대세는 인공지능으로 확실해진 상황이다.
하지만 인공지능을 이해하기는 사실 쉽지 않은데, 그런 면에서 '텐서플로우 입문'은 인공지능에 대한 이해를 기초부터 돕고 있는 책이다. 인공지능 이해의 걸림돌이 되곤 하는 수학 공식이 나오기는 하지만, 수식을 풀고 증명하는 것이 아니라 대부분 소개 정도로만 다루고 있어, 이해가 안 될 경우 대강만 이해하고 넘어가도 크게 문제가 되지는 않는다.
사실 이 책 제목은 '텐서플로우 입문'이긴 하지만, 책 대부분의 내용이 텐서플로우 자체 보다는 인공지능을 이해하는데 할애를 하고 있다. 어찌 보면, 일종의 인공지능 개론서처럼 보이기도 한다. 본격적으로 텐서플로우를 배우고자 하는 사람에게는 아쉬움이 많겠지만, 텐서플로우 활용에 따른 인공지능의 이론적인 지식을 탄탄히 하는데 더할 나위 없이 좋다 생각한다.
인공지능의 개요부터, 머싱러닝, 딥러닝에 대한 설명으로 시작해서, 지도학습, 비지도학습, 강화 학습으로 나눠 kNN, SVM, 나이브 베이즈 분류 등의 관련 알고리즘도 잘 정리해 놓고 있다. 2장만 잘 읽어 둬도 인공지능에 큰 숲을 설명할 수 있는 것이다.
그리고 3장에서는 인공지능 프레임워크와 라이브러리를 다루고 있는데, 이 파트를 보고 속이 후련한 감을 느꼈다. 전부터 Keras, torch, Caffe와 같은 것도 많이 있는데, 굳이 텐서플로우를 써야 하는지 의문이었는데, 구직 항목, 구글 검색, 아마존 도서 상황, 깃허브 분석 그래프를 통해 확실한 이유를 알 수 있었다. 다른 프레임워크와는 거의 게임이 안되는 상황인 것을 알 수 있었다.
아쉬운 것은 이 책을 통해 텐서플로우를 완전히 익히기는 어렵다는 점이다. 마지막 장에 간단히 파이선과 텐서플로우 설치, 일반적인 실습 예제만 나오고 있기 때문이다. 확실히 입문용 책이었다. 본격적인 텐서플로우를 익히려면 좀더 심화된 내용의 다른 책을 봐야할 필요가 있다.
어차피 230여 쪽의 분량에 모든 것을 담을 수는 없었을 것이다. 개인적으로 인공지능에 관해서 체계적으로 정리할 수 있었다는 점과 텐서플로우의 현 위치와 왜 이것을 써야 하는지를 알게 된 것만으로도 책값은 하고도 남았다 생각한다.