인공지능을 조금이라도 공부해 본 사람이라면, 머신러닝, 딥러닝 같은 인공지능을 활용할 곳이 무궁무진하다는 것을 잘 알고 있을 것이다. 법률, 금융, 복지, 국방, 방송뿐만 아니라, 각종 가전이며, 자동차, 산업 기기, 인터넷 등 일일이 나열이 불가능할 정도다.
이런 많은 활용처 중, 스마트폰, 태블릿 같은 모바일 기기들 경우, 사람들이 한 시도 손에서 놓지 않을 정도로 쓰고 있는 도구다 보니, 인공지능 기술이 제대로 접목된다면, 스마트폰이 등장했을 때 이상으로 다시 한번 라이프 스타일에 혁신을 가져다줄 수도 있을 것이다.
더군다나 모바일 기기는 카메라와 각종 센서들이 기본적으로 들어가 있고, CPU와 그래픽 성능이 나날이 좋아지고 있다. 게다가 인터넷, 블루투스, LTE 같은 통신망으로 연결되어 있어, 인공지능 기술을 쓰기에 이만큼 최적의 도구이다. 이는 이미 오래전에 레드오션이 된 앱 시장에도 인공지능이 새로운 기회를 줄 수 있다는 얘기다.
기회는 준비된 사람만이 잡을 수 있다고 한다. 이 좋은 기회를 놓치고 싶지 않은 개발자에게 직접적으로 도움이 되는 책이 바로 임태규 저자의 '텐서플로 라이트를 활용한 안드로이드 딥러닝'일 것이다.
이 책은 현재 모바일 운영체계에 약 73%를 차지하고 있는 안드로이드에 인공지능을 조금이라도 공부해 본 사람이라면, 자주 들어 본 오픈소스 머신러닝 플랫폼인 텐서플로 중 텐서플로 라이트 기술을 활용한 책이다. 현재 주류에 해당되는 안드로이드와 텐서플로 라이트 기술을 중심으로 딥러닝 앱 개발하는 방법을 설명하고 있는 것이다.
안드로이드 또는 텐서플로를 공부하신 분을 잘 알겠지만, 하나하나가 엄청난 분량의 지식이 필요하다. 그런데 '텐서플로 라이트를 활용한 안드로이드 딥러닝'은 400쪽이 안되는 분량이다. 즉 핸드북 스타일로 짧은 시간에 안드로이드와 텐서플로 라이트를 활용 위주로 훑어보는 책이란 소리다. 자세한 안드로이드 앱 개발법이나 인공지능 이론 같은 것은 다루지 않는다. 개발에 사용되는 파이썬이나 자바 같은 프로그래밍 언어에 대한 설명도 나오지 않는다. 하지만 이런 복합적인 주제를 다루는 책은 전체적으로 그 주제를 빠르게 살펴볼 수 있다는 장점을 가지고 있다. 그리고 내가 부족한 부분이 어디인지도 쉽게 드러나므로 무엇을 더 공부하면 좋을지 잘 알 수 있어서 좋다.
어쨌든 이 책을 제대로 빠르게 보기 위해선, 적어도 자바는 필수다. 그렇다고 너무 부담 가질 필요는 없다. 전반적인 책 내용은 입문 수준이다. 다층 퍼셉트론, 합성곱 신경망, 인공지능에 대한 기본 지식도 필요하긴 하지만, 모르면 좀 답답하긴 해도, 딥러닝 앱 개발을 어떻게 하는지 이해하는 데는 별 어려움이 없을 것이다. 그리고 중간에 파이썬 코드도 나오긴 하는데, 간단한 것들이라 크게 걸림돌이 되지는 않는다.
개발에 필요한 안드로이드 스튜디오, 텐서플로 라이트 및 파이썬, 아나콘다, 주피터 노트북, 쿠다 툴킷, 비주얼 스튜디오 코드 등 여러 가지 도구들 설치법이 주요 캡처 화면과 함께 저자의 추천 설명도 함께 자세히 나와 있어서, 초반부터 알기 쉽게 되어 있다. 안드로이드와 인공지능을 함께 다루므로 사용되는 도구도 많은 편이라, 제대로 설치하는 것은 무척 중요하다.
'텐서플로 라이트를 활용한 안드로이드 딥러닝' 초반 3장까지는 주로 안드로이드 개발에 필요한 지식들을 다룬다. 안드로이드를 처음 공부하는 분에게 조언하고 싶은 것이 있다면, 책 곳곳에 나오는 그림 도표를 그냥 지나치지 말라는 것이다. 그림 1-8에 나오는 안드로이드 액티비티 생명주기 같은 것은 앱 개발 필수 지식이다. 텐서플로 라이트 구성이나 모델추론 단계, 카메라2 API 호출 프로세스 등 많은 구조도로 표현된 그림들은 프로그램 흐름을 명확히 이해하는데 큰 도움이 된다.
본격적인 텐서플로 라이트를 활용한 딥러닝 부분은 4장부터 시작된다. 텐서플로와 텐서플로 라이트의 차이와 개발 과정과 방법, 한계점에 대해 설명하고 있고, 케라스에 대한 설명도 같이 하고 있다.
책에서는 손으로 쓴 숫자 인식, 사진을 보고 이것이 무엇인지 알아내는 이미지 추론 이렇게 두 가지 앱을 만들어 본다. 이것을 기본으로 하고, 뒤에 추가해서 실시간 이미지 처리도 해보고, 성능 개선, 최적화 기술도 다루게 된다. 모바일에서 텐서플로 라이트 응용하는 방법을 전반적으로 다 다뤄 보는 것이다. 물론 좀 더 복잡한 인공지능 기술이 들어간 앱을 기대했을 분도 있을 것이다. 그래도 일단 이 책으로 물고기 잡는 방법을 배운 것만으로 만족하자. 나중에 저자가 그런 것들만 다룬 책도 써 주길 기대해 보자.
그리고 보기에 따라서는 안드로이드 관련 설명이 텐서플로 보다 더 많게 느껴질 수 있다. 사실 안드로이드 앱 개발을 해보면 알겠지만, 간단한 프로그램은 메인 알고리즘보다 주변 설정하는 코드들이 훨씬 더 많다. 마찬가지로 텐서플로에 필요한 코드는 그리 길지 않다 보니, 그렇게 보일 수밖에 없다. 그렇지만 이것도 눈여겨보는 것이 좋다. 코드 한 줄 잘못 써서, 프로그램 작동 안 되고, 몇 시간 또는 몇 날을 헛짖 거리하는 낭비하는 경험을 해본 분은 그 이유를 잘 알 것이다.
현재 인공지능 기술이 허접하다는 분도 많다. 아직 세련되지 않은 면도 있고, 미흡한 부분도 많기는 하다. 그렇지만, 그 때문에 인공지능 배우기를 미룬다면, 어느 순간 내가 비집고 들어갈 틈이 없을 수도 있다. 인공지능 배우는데 적기가 따로 있는 것은 아니지만, 그래도 지금부터 '텐서플로 라이트를 활용한 안드로이드 딥러닝'로 인공지능 앱 개발에 입문하고, 아이디어를 더해 고가치의 프로그램을 개발하다 보면, 좋은 기회가 많이 생길 것이라 생각한다. 다시 말하지만, 준비된 자만이 기회를 잡는 것이다.