인공지능, 딥러닝. 그야말로 우리 시대를 관통하는 핫한 키워드다. 인공지능이라는 학문의 역사는 훨씬 오래전으로 거슬러 올라가야하지만, 인공지능이관련 전공자가 아닌 일반 대중에게까지 익숙해지게 된 데에는 최근의 기술 발전이 큰 역할을 했다. GPU로대변되는 컴퓨팅 파워의 획기적인 향상은 기존에는 불가능했던 연산을 가능하게 했고, 이는 인공지능이 실용의단계로 넘어 올 수 있도록 하였다. 여기에 컴퓨팅 파워 뿐 아니라 네트워크, 스마트폰, 사물인터넷 등 정보 통신의 발달은 과거에는 생각지도 못했던방대한 양의 데이터를 만들어 냈고, 이러한 빅데이터는 인공지능 기술 발달과 함께 서로 시너지 효과를내기에 이르렀다.
인공지능이인기를 얻으면서 함께 유명세를 얻게 된 것 중 하나는 파이썬이다. 일부에서는 인공지능을 배우고 활용하려면파이썬이 필수라는 이야기가 종종 들리기도 하는 실정이다. 파이썬이 가진 언어적 장점과 함께 즉시 활용가능한 다양한 라이브러리와 인터넷에 가득한 예제는 초보자도 쉽게 인공지능을 접할 수 있도록 하고 있긴 하다. 시중에나와 있는 인공지능 관련 도서도 파이썬을 중심으로 설명하고 있는 책이 어림잡아 7~80 % 이상으로보인다.
정말파이썬만이 정도(正道)일까?파이썬이 대세인 것은 사실이지만, 유일한 방법은 아니다.파이썬이 프로그래밍 언어 순위에서 높은 위치에 있더라도, 전통적인 강자들 역시 존재한다. C/C++, Java 는 여전히 사랑받고 있다. 인공지능 분야에서도마찬가지이다.
조시 패터슨, 애덤 깁슨의 ‘자바를활용한 딥러닝’은 제목에서와 같이 자바 개발자를 위한 책이다. 자바기반의 DL4J 라이브러리를 사용하여 딥러닝으로 인공지능을 개발하는 방법을 소개하고 있다. 이 책에서 소개하는 DL4J (https://deeplearning4j.org/)는 자바와자바 가상 머신용으로 작성된 딥러닝 라이브러리로 매우 다양한 딥러닝 알고리즘을 지원하며, 아파치 하둡과스파크를 이용한 분산 병렬 처리가 가능하다. DL4J는 아파치 라이선스 2.0을 따르는 오픈소스 소프트웨어이며, 스카이마인드 그룹을 통한 상업적지원도 가능하여, 상용 서비스 개발에도 활용이 가능하다.
이책은 본문은 총 9개의 챕터로 구성되어 있다. 책의 전반부(1~4장)에서는 딥러닝을 수행하기 위해 알아두어야 할 것들에 대해소개하고 있다. ‘인공지능은 수학이다’라는 말이 있을 정도로, 인공지능을 제대로 이해하기 위해서는 수학적인 기초가 필수적이다. 선형대수, 통계 등 머신러닝에 필요한 수학적 지식을 다시 한번 복습하며,신경망과 딥러닝의 기초 지식, 심층 신경망의 설계 원리 및 구조에 대해 다룬다. 이어지는 5장에서는 본격적으로 심층 신경망을 구축하는 방법에 대해자세히 소개한다. 문제를 제대로 풀기 위해 어떤 신경망을 선택해야 하는지와 DL4J를 사용하는 방법을 시작으로 합성곱 신경망을 이용한 손글씨 이미지 모델링,순환 신경망을 활용한 시퀀스 데이터 모델링, 오토 인코더,VAE 모델 및 자연어 처리를 위한 딥러닝 애플리케이션에 대한 내용을 담고 있다. 6장과7장은 심층 신경망에 대한 튜닝 방법을 소개한다. ‘벡터화’라는 제목을 가진 8장은 이 책의 백미라고 할 수 있다. 딥러닝에서 벡터화는 매우 중요한 부분이지만, 많이 간과되는 영역이다. 학습을 제대로 시키고 문제를 해결하기 위해서는 다루고자 하는 데이터에 따라 적절한 벡터화 방법이 필요하다. 이미지 데이터 백터화, 순차데이터 벡터화, 텍스트 데이터 벡터화를 설명하며, 그래프 구조 벡터화와 관련하여Node2Vec 변화에 대해 간략히 다루고 있다. 본문의마지막 챕터인 9장은 하둡과 스파크에서 DL4J를 사용하는방법을 소개한다. 책의 부록은 인공지능에 대한 소개, 강화학습을 위한 RL4J, 신경망과 역전파에 대한 수학적 접근 방법, DL4J라이브러리 사용법 등 90여쪽에 걸쳐 본문에서 다루지 못했지만 한번쯤 생각해 보면 좋은내용과 실습에 필요한 주요 절차를 친절히 소개하고 있다.
‘자바를활용한 딥러닝’은 딥러닝을 실무에서 사용하기 위해 알아야 할 이론적인 내용과 함께, 실전에서 활용 가능한 다양한 주제를 심도있게 다루고 있어, 딥러닝관련 전문 지식이 없는 입문자도 충분히 이 책을 통해 신경망을 구축할 수 있을 것으로 보인다. 자바를기반으로 하고 있는 만큼 자바에 대한 기본기는 필수이다. 딥러닝에 관심이 있는 자바 개발자에게 적극추천한다.