ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [도서 리뷰] 코딩셰프의 3분 딥러닝, 케라스맛
    [Review]/Book 2018.02.15 18:48

    한빛미디어의 10번째 도서 리뷰이다. 

    중간에 과정이 살짝 문제가 있어서 이미 있던 책을 받을 뻔 했지만, 잘 해결되어 현재 이 책을 받게 되었다.

    사실 요즘 강화학습에 관심이 있던 차였고, 그 중 케라스가 유용하다는 이야기를 들어 공부할 책을 찾고 있었다. 이미 한 두권의 책을 보았지만, 너무 개념잡기가 어렵고, 실습하기도 어렵다고 여기던 중 이 책을 만나게 되었다.

    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-200 | Flash did not fire | 2018:02:15 10:00:00

    3분카레를 연상케 하는 표지이다.

    사실 표지를 봤을 땐, 3분이면 다 읽을 정도의 짧은 분량인가 했었다.(온라인에서만 보고 책 두께를 실제로 보지 않았으므로..)

    근데, 그러한 의미가 아니라, 그만큼 쉽고 빠르게 배울 수 있다는 뜻이라는 걸 나중에 알게 되었다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/40sec | F/1.7 | 0.00 EV | 4.2mm | ISO-160 | Flash did not fire | 2018:02:15 10:01:08

    이 책은 2018년 1월 1일에 발행한 책이다. 2018년 첫 책이고 따끈따끈한 책.

    이전에 비슷한 표지를 작년에 본 것은 아마도 텐서플로맛에 대한 책이었나보다.

    그 밖에 부제로 Keras 코드로 맛보는 ANN, DNN, CNN, RNN, AE, GAN, UNET이라고 되어있다.

    딱 이만큼의 내용만 제대로 쉽게 다뤄보겠다는 뜻이 보였다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-200 | Flash did not fire | 2018:02:15 10:01:55

    이 책의 대상 독자는 앞서 언급한 부제에 대해 관심이 있는 누구나 라는 것이다. 즉, 관심이 있으면 사전 정보 없이도 접할 수 있게 되어있다.

    그리고 실습하는 개발 환경은 3대 OS를 다 다룬다. 윈도우, 리눅스, 맥. 아주 일반적이고 또한 최신 버전을 다룸으로써 가급적 실용적인 측면을 강조하였다. 그리고 실습 책의 많은 경우가 그렇듯이 이 책 역시 github에 예제소스를 공유하고 있다. 물론 한빛미디어에도 해당 소스가 올라와 있다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-200 | Flash did not fire | 2018:02:15 10:02:28

    이 책의 구성은 간단하다. 프롤로그로 시작하여, 케라스를 시작할 수 있도록 환경 구성하고 HelloWorld에 해당하는 코를 실행하는 부분까지 다루는 장, 그 이후부터는 한 장에 하나씩 ANN, DNN, CNN 등 순차대로 다룰 수 있도록 하였다.


    그 밖의 구성을 포함한 목차는 다음과 같다.

    CHAPTER 0. 프롤로그

    CHAPTER 1. 케라스 시작하기

    CHAPTER 2. 케라스로 구현하는 ANN(인공신경망)

    CHAPTER 3. 케라스로 구현하는 DNN(심층신경망)

    CHAPTER 4. 케라스로 구현하는 CNN(합성곱신경망)

    CHAPTER 5. 케라스로 구현하는 RNN(순환신경망)

    CHAPTER 6. 케라스로 구현하는 AE(오토인코더)

    CHAPTER 7. 케라스로 구현하는 GAN(생성적 적대 신경망)

    CHAPTER 8. 케라스로 구현하는 UNET(유넷)

    CHAPTER 9. 케라스 응용


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-200 | Flash did not fire | 2018:02:15 10:02:40

    그리고 이 책을 마친 이후에는 어떤 책이 더 깊은 학습에 도움을 주는지 한빛미디어 책 내에서 고를 수 있도록 하였다.

    나름 한빛미디어 생태계와 독자의 로드맵까지 신경쓴 두가지 토끼를 잡은 케이스라 할 수 있을 것 같다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-200 | Flash did not fire | 2018:02:15 10:03:32

    여느 인공지능 책이 그렇듯이 이 책도 프롤로그에는 인공지능의 역사에 대해 간단하게 다룬다.

    그리고 각 챕터에는 학습목표를 두어 어떤 것을 목표로 이 챕터를 구성했는지 확인시켜주는 것을 볼 수 있다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-160 | Flash did not fire | 2018:02:15 10:04:31

    케라스에 대해서 간단한 설명을 프롤로그에서 언급한다.

    특히 지원하는 단계에 대해 Layer로 표현함으로, 각 도구와의 관계에 대해서 알 수 있도록 하였다.

    지원하는 GPU와 CPU도 미리 알고있어야 환경적인 구성에서 헛다리 짚지 않고 제대로 구성할 수 있으므로 필요한 내용이다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-160 | Flash did not fire | 2018:02:15 10:05:02

    프롤로그를 지나 첫번째 장을 맞아 우분투 및 윈도우에서 케라스를 설치하는 방법에 대해 나온다.

    맥은 별도로 언급되지 않는데, 리눅스와 비슷한 방법으로 진행하면 될 것으로 보인다.

    중요한건 케라스 설치과정에 있는 순서도이다. 이 순서도 대로 진행하면 문제없이 진행될 것으로 보인다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-160 | Flash did not fire | 2018:02:15 10:05:41

    설치과정을 정상적으로 진행했다면, Hello world에 해당하는 간단한 예제를 연습할 수 있다.

    x->y에서

    0->1

    1->3이라면..

    2,3,4는 각각 어떤 값이 y값으로 오게 될지에 대해 학습하고 예측하는 연습이다.

    다행히 위의 예처럼 2개의 학습만 시켰음에도 불구하고 5,7,9라는 값과 근사한 값이 나왔다.

    물론 실제 실행시에는 4.9973793과 정확히 같은 값이 아니라 조금 다른 값이 나온다. 이게 정확하게 정해진 값이 계산되는 일반 프로그래밍이 아닌 기계학습의 일환이기 때문에, 이렇게 나오는 것 같다.

    만약 이렇게 나온 값을 정수 이상으로 반올림하는 형식을 취한다면 아마도 원하는 결과가 바로 나올것이다.

    이런 실습을 한번 맛보고 나면 이후의 ANN, DNN 등 앞으로 실습하게 되는 많은 과정도 흥미있게 접근하게 된다.


    samsung | SM-G955N | Normal program | Center-weighted average | 1/60sec | F/1.7 | 0.00 EV | 4.2mm | ISO-160 | Flash did not fire | 2018:02:15 10:06:45

    이 책은 개발자 친화적인 책이다. 이론보다는 실습에 강한 사람들을 대상으로 하는 느낌이다.

    그렇기 때문에 다른 책들 보다는 더 쉽게 느껴진다. 사실 인공지능, 머신러닝, 딥러닝 등은 수식이 너무 어렵고 복잡하여 이해하기 어려운데, 일단 코드로 접하고 시작하다보니 그 갭이 많이 줄어드는 느낌이 든다.

    이러한 측면에서는 매우 잘 구성하였다는 생각이 든다.


    마지막으로 이 책의 장점과 아쉬운 점을 정리해본다.

    - 실습위주의 구성으로, 개발자 친화적이다.

    - ANN, DNN, CNN 등의 딥러닝 용어를 각 챕터에 대입함으로, 용어에 대한 부담감을 줄여주기 위해 노력했다.

    - 전체적으로 분량이 적지만, 핵심요소만 쉽게 접근하여 초보자 입장에서 쉽게 다가갈 수 있도록 하였다.

    - 실습 단계에서 특별히 오류가 발견되지 않았으며, 각 단계의 목적을 정확히 명시함으로 트러블 슈팅 및 다른 환경에서도 처리가 가능하도록 하였다.

    - 컬러 구성이다.


    아쉬운 점은 다음과 같다.

    - 실습위주이기 때문에 수식을 원하는 사람은 얻을 정보가 별로 없다.

    - 하나의 큰 프로젝트를 목표로 하여(예를들면 오목 학습 등) 진행하는 것이 아니기 때문에, 다 읽어도 완성에 대한 성취감보다는 학습에 대한 성취감만으로 만족해야 한다.

    - 주피터 노트북 등 기타 응용 도구에 대한 설명은 자세히 언급되어 있지 않아 돌발상황 발생시 해결이 어렵다.


    이 책을 평가해 보면 다음과 같다.

    가격: 8 / 10

    내용: 8 / 10

    디자인: 9 / 10

    구성: 9 / 10


    저자: 김성진

    대상자: 인공지능과 딥러닝 인공신경망의 구현에 관심있는 누구나

    가격: 30,000원

    전체 페이지: 384페이지


    이 리뷰는 "한빛미디어"를 통해 도서를 제공받아 작성하였습니다.


    댓글 0

Designed by Tistory.