메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

코딩셰프의 3분 딥러닝, 케라스맛

Keras 코드로 맛보는 ANN, DNN, CNN, RNN, AE, GAN, UNET

한빛미디어

집필서

절판

  • 저자 : 김성진(코딩셰프)
  • 출간 : 2018-01-01
  • 페이지 : 384 쪽
  • ISBN : 9791162240397
  • 물류코드 :10039
  • 초급 초중급 중급 중고급 고급
4.3점 (12명)
좋아요 : 38

케라스 코드로 맛보는 딥러닝 핵심 개념! 

 

간결하고 직관적인 인공신경망 API를 제공하는 케라스는 구글 텐서플로, 마이크로소프트 CNTK, 아마존 MXNET, OpenCL PlaidML, 시애노 등의 딥러닝 엔진에서 지원하는 인기 인공지능 툴입니다. 이 책은 딥러닝 인공신경망 구현에 케라스를 사용합니다. 케라스로 주요 인공신경망인 ANN, DNN, CNN, RNN, AE, GAN, UNET을 구현하는 방법을 알아봅니다. 따라서 인공지능과 딥러닝 인공신경망의 구현에 관심이 있는 누구나 이 책의 대상 독자입니다.

 

* 이 책의 ‘3분’은 ‘3분 만에 배운다’는 뜻이 아닙니다. ‘3분 음식처럼 쉽고 유용하게 배운다’는 뜻입니다.

 

 

상세이미지(733).jpg

 

 

 

김성진 저자

김성진

초등학교 때 프로그래밍으로 도 대회에서 대상을 수상했다. 그때 열정을 살려 서울대학교 컴퓨터공학부에서 박사 학위를 받고 21년간 삼성전자에 다니면서 프로그래밍 역량을 높였다. 2015년에 미국으로 건너가 하버드 대학교에서 인공지능 소재 탐색 분야의 박사후연구원으로 근무했다. 2018년부터는 LG전자에서 인공지능 분야에 수석연구위원(상무)을 지냈고, 최근 인공지능을 스페이스 분야까지 확장하는 뷰메진의 CTO로 영입되었다. 페이스북에서 『케라스로 구현하는 딥러닝』 커뮤니티(fb.com/groups/keras.py)를 운영하고 있다.

0장. 프롤로그

__0.1 인공지능과 인공신경망

__0.2 케라스 소개

 

1장. 케라스 시작하기

__1.1 우분투에 케라스 설치하기

__1.2 윈도우에 케라스 설치하기

__1.3 케라스 사용

__1.4 마치며

 

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

__2.1 ANN 원리

__2.2 필기체를 구분하는 분류 ANN 구현

__2.3 시계열 데이터를 예측하는 회귀 ANN 구현

__2.4 마치며

 

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

__3.1 DNN 원리

__3.2 필기체를 분류하는 DNN 구현

__3.3 컬러 이미지를 분류하는 DNN 구현

__3.4 마치며

 

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

__4.1 CNN 원리

__4.2 필기체를 분류하는 CNN 구현

__4.3 컬러 이미지를 분류하는 CNN 구현

__4.4 마치며

 

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

__5.1 RNN 원리

__5.2 문장을 판별하는 LSTM 구현

__5.3 시계열 데이터를 예측하는 LSTM 구현

__5.4 마치며

 

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

__6.1 AE의 원리

__6.2 완전 연결 계층을 이용한 AE 구현

__6.3 합성곱 계층을 이용한 AE 구현

__6.4 마치며

 

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

__7.1 GAN의 원리

__7.2 확률분포 생성을 위한 완전 연결 계층 GAN 구현

__7.3 필기체를 생성하는 합성곱 계층 GAN 구현

__7.4 마치며

 

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

__8.1 UNET 원리

__8.2 UNET을 이용한 컬러 복원 처리

__8.3 마치며

 

9장. 케라스 응용

__9.1 이미지 데이터 수 늘리기

__9.2 미리 학습한 모델 사용하기

__9.3 실전에서 유용한 케라스 고급 기능들

__9.4 전문 사용자를 위한 케라스 확장 기능

__9.5 마치며

이론보다는 실전! 몸으로 먼저 익히는 <3분> 딥러닝 시리즈! 

새로운 프로그래밍 언어나 라이브러리를 학습하는 가장 좋은 방법은 무엇일까요? <3분> 시리즈는 긴 설명을 읽기보다는 직접 코드를 입력해가면서 배우게 해 쉽고 재미있습니다.

 

독자 옆에 앉아 빠르게 ‘함께 코딩해가며’ 설명한다는 느낌이 들도록 했습니다. 코드는 설명 흐름에 맞춰 필요한 만큼씩 보여주며, 전체 코드를 마지막에 제시합니다. 이론은 큰 그림을 이해할 정도로만 알려드리고, 코드도 세세한 부분까지 설명하지는 않습니다.

 

우선은 큰 그림과 동작하는 코드를 손에 넣으신 후, 케라스 사용법 문서와 저자가 만든 케라스 깃허브를 참고해 코드를 주물러보며 케라스와 친해져보세요.

 

각 절의 마지막에는 주석이 거의 없는 전체 코드가 등장합니다. 주~욱 훑어보며 배운 걸 정리하고 제대로 이해했는지 점검해보시기 바랍니다. 각 코드 블록에 해당하는 본문 설명의 위치를 숫자로 연결해뒀으니 특정 코드가 이해되지 않을 때 활용하시기 바랍니다.

 

 

★ 주요 내용

  • 케라스 시작하기
  • 케라스로 구현하는 ANN(인공신경망)
  • 케라스로 구현하는 DNN(심층신경망)
  • 케라스로 구현하는 CNN(합성곱신경망)
  • 케라스로 구현하는 RNN(순환신경망)
  • 케라스로 구현하는 AE(오토인코더)
  • 케라스로 구현하는 GAN(생성적 적대 신경망)
  • 케라스로 구현하는 UNET(유넷)
  • 케라스 응용하기

 

★ 이 책의 구성

이 책은 케라스를 이용해 딥러닝 인공신경망을 만들어 인공지능을 구현합니다. 1장은 케라스를 시작하는 데 필요한 기초를 다룹니다. 2장부터는 최신 인공지능 구현 방법인 주요 인공신경망을 예제로 이용해 다룹니다. 2장~5장에서 다루는 ANN, DNN, CNN, RNN은 지도학습 방식의 인공지능입니다. 6장과 7장에서 다루는 AE와 GAN은 비지도학습 방식이고 8장의 UNET은 고급 지도학습 방법입니다. 9장은 8장까지 배운 내용을 응용하고 확장하는 방법을 다룹니다. 

 

예제는 쉽게 인공지능 구현 방법을 익히고, 추후 실무에 쉽게 재사용할 수 있게 하는 데 주안점을 두어 작성했습니다.  

 

_0장. 프롤로그

인공지능과 딥러닝 인공신경망의 개요를 알아봅니다. 그리고 인공신경망을 구현하는 케라스를 간단히 소개합니다. 

 

_1장. 케라스 시작하기

케라스는 인공지능을 파이썬으로 구현하는 라이브러리입니다. 케라스를 설치하는 방법과 간단한 인공신경망을 구현하는 예제를 다룹니다. 

 

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

ANN(artificial neural network)은 두뇌의 신경망을 흉내 낸 인공지능 기술입니다. ANN은 입력 계층, 은닉 계층, 출력 계층으로 구성되어 있습니다. 초기에는 기술적인 한계로 은닉 계층을 한 개만 포함하여 주로 총 3개 계층으로 ANN을 구성했습니다. 이 장에서는 ANN 구성에 필요한 요소를 이해하고 예제를 살펴보며 ANN 구현 방법을 익힙니다.

 

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

DNN(deep neural network)은 은닉 계층을 여러 개 쌓아서 만든 인공신경망입니다. 다수의 은닉 계층을 이용하는 DNN은 ANN에 비해 더 우수한 성능을 내며 적용 분야도 다양합니다. 이 장에서는 DNN의 구성에 필요한 요소를 이해하고 케라스로 구현하는 방법을 익힙니다.

 

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

CNN(convolutional neural network)은 영상 처리에 많이 활용되는 합성곱(convolution)을 이용하는 신경망 기술입니다. 합성곱에 사용되는 필터들은 학습을 통해 이미지 내의 특징점들을 자동으로 추출해냅니다. CNN은 이런 과정을 통해 기존에 수작업으로 찾던 특징점을 스스로 찾게 됩니다. 이 장에서는 CNN의 원리를 이해하고 케라스로 구현하는 방법을 알아봅니다.  

 

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

RNN(recurrent neural network)은 계층의 출력이 순환하는 인공신경망입니다. 재귀를 이용해 자기 계층의 출력 정보를 입력 신호로 다시 사용해 신경망의 성능을 높입니다. 특히 문자열, 음성 등 시계열 정보의 예측에 많이 활용됩니다. 이 장에서는 RNN의 기본 개념을 이해하고 예제를 구현해봅니다.  

 

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

AE(autoencoder)는 비지도학습 인공신경망입니다. 비지도학습은 레이블 정보가 없는 데이터의 특성을 분석하거나 추출하는 데 사용됩니다. 비지도학습의 대표적인 방식인 AE의 목적은 입력 데이터의 특징점을 효율적으로 찾는 겁니다. 이 장에서는 AE의 원리를 이해하고 케라스로 구현하는 방법을 익힙니다.

 

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

GAN(generative adversarial network)은 경쟁을 통한 최적화를 수행하는 생성적 인공신경망입니다. GAN 내부의 두 인공신경망이 상호 경쟁하면서 학습을 진행합니다. 두 신경망 중의 하나는 생성망이고 다른 하나는 판별망입니다. 이 장에서는 GAN의 개념을 소개하고 케라스로 구현하는 방법을 다룹니다.   

 

_8장. 케라스로 구현하는 UNET(유넷)

UNET(U-shaped network)은 저차원과 고차원 정보를 모두 사용하여 이미지의 경계를 비롯한 특징을 추출하는 인공신경망입니다. 차원 정보만 이용해 고차원으로 복원해나가는 AE와 달리 고차원 특징점도 함께 이용해 디코딩을 진행해 이미지의 특징 추출에 용이합니다. 이 장에서는 UNET의 개념을 이해하고 구현 방법을 익힙니다.    

 

_9장. 케라스 응용

케라스를 이용하여 실제 문제에 인공지능을 활용할 때 생기는 문제를 효율적으로 처리하는 고급 기능을 다룹니다. 종종 학습에 필요한 데이터가 충분하지 못한 경우가 있습니다. 이런 경우는 학습 데이터 수를 늘려주거나 기존에 학습된 인공신경망을 재활용해야 합니다. 이 장에서는 인공지능 기술의 실전 활용을 위해 필요한 이미지 늘리기와 기존 망 재사용하기 방법을 익힙니다. 

 

무언가 배우는데 3분이 아까운 분들이 케라스를 통해 딥러닝 분야에 축적된 기술들을 

 

바로 바로 사용해보고 적용해 볼 수 있도록 구성되어 있습니다.

 

전체적인 구성은 깔끔하고 군살 없이 설명되어 있지만 원리적인 측면이 궁금하신 분들은 다른 책도 함께 참고하셔야 합니다.

 

업무에 당장 적용가능한 딥러닝 기술들을 찾아 활용해 보시려는 분들께 추천드리지만,

 

기초가 없다면 이 책이 어렵게 느껴지실 수 있으니 참고하세요.

 

이론이 상당히 부실합니다. 코드 설명 위주...

기계학습은 어려운 주제입니다. 근 몇년간 계속해서 4차 산업혁명과 함께 화두되고 있는 주제이며 계속해서 관련 서적이 출판되고 있지만 쉽게 접근할수 있다고 생각되는 책은 눈에 띄지 않았습니다. 구글에서는 기계학습 라이브러리인 TensorFlow 를 오픈소스로 공개하였고 이를 사용해서 알파고 제로 알고리즘을 구현한 소스도 깃허브에 공개되어 있어 누구나 열람할 수 있지만 널리 알려지고 사용되는것 같지는 않습니다. 그 이유는 역시나 이 분야를 이해하는데 요구되는 기본지식의 수준이 높기 때문이라고 생각합니다.
 
Keras는 신경망을 구현하는 고수준의 API를 제공합니다. 파이썬 기반으로 되어있으나 몰라도 코드를 이해하는데 어려움은 없어보입니다. 내용은 제목 그대로 Keras를 이용하여 ANN, DNN, CNN, RNN, AE, GAN, UNET 에 대한 맛을 보여주고 있습니다. 이 짧은 단어들의 의미는 책을 읽다보면 어떤 기법인지 그 개념을 알게될 것입니다. 
 
각 챕터별로 인공지능 기법에 대한 개념원리를 설명하고 Keras를 이용한 구현 코드를 보여줍니다. 어떤 함수를 사용고 어떤 알고리즘을 적용하고 수치값으로는 얼마를 적용한다는 내용에 자세한 이유나 그것에 대한 설명은 없습니다. 독자가 관련 내용을 알고 있다고 가정하는 것이 아니고 이런것이 있다라고 알려줍니다. 관련 분야를 공부한 사람이 아니라면 생소하고 어려운 주제들을 깊게 다루기 보다는 최소한의 정보를 제공하여 독자가 원할때 해당 내용의 이론을 학습할 수 있게 도움을 주는데서 그칩니다. 저는 작가분의 이러한 전개방식이 굉장히 마음에 들었습니다. 이 책은 어려운 주제를 다루고 있는 실용서라는 관점에서 관련 지식이 없는 사람이 책을 보고 흐름을 따라가는 것 만으로도 실제적 응용코드를 작성할 수 있기 하였으며 관련 지식을 깊게 공부할 수 있는 단서도 제공하기 때문입니다.
 
자신만의 분야에 응용하기를 원한다면 직접 모델을 고안하고 알고리즘을 선택하고 파라미터값의 수치를 조정하기 위해서 추가적인 이론의 학습이 필요할  수 있습니다. 하지만 그 전에 각 인공지능 기법의 개념을 파악하고 구현에 필요한 단계와 이론을 확인할 수 있습니다. 이 책이 기계학습에 입문하시는 분들이 지치지 않고 공부를 시작할 수 있도록 도움이 될거라 생각합니다.

최근 딥러닝, 머신러닝에 관심이 많아져 코딩셰프의 3분 딥러닝 케라스맛 책을 리뷰하게 되었습니다.

 

 

우선 첫인상은 핸디북 처럼 작고 두껍지 않은 귀여운 형태입니다.

목차에서 확인하실 수 있듯이 ANN, DNN, CNN, RNN, AE, GAN, UNET 딥러닝 모델에 대해 케라스를 이용해서 다룹니다.

 

저는 딥러닝, 머신러닝에 관해 기초지식이 전무한 상태로 봤는데 이 책은 완전 입문자를 위한 책은 아니다라는 느낌을 받았습니다.

입문을 넘어선 초급자를 위한 핵심 요약 책인듯 하네요.

 

케라스 코드를 통해 모델을 설명해주는데 코드별로 자세하게 설명을 해주셔서 이해하기는 쉽게 되어있습니다. 또한 각 모델별로 특징 및 장단점들을 잘 요약해주셔서 내가 하려하는 기능에 어떤 모델을 써야 적합한지 쉽게 알 수 있을 것 같아요.

 

딥러닝에 기초지식이 있고 케라스에 입문 하시려는 분 혹은 각 모델들의 핵심을 정리하고 싶은 딥러닝 초급자에게 추천해드리고 싶습니다.

딥러닝에 대해 공부할 수 있는 경로는 날이 갈수록 다양해지고 있습니다.

양질의 강의도 손쉽게 무료로 볼 수 있고, 고수들의 코드도 공개되어 있습니다.

하지만, 그만큼 무엇부터 손을 대야 하는지 초심자 입장에서는 선택하기가 어려워지는 것도 사실입니다.

 

저도 그런 입문자 중 하나였고, 제가 선택했던 것은 구글의 텐서플로우 문서를 따라 해보는 것이었습니다.

예제는 금방 따라 했지만, 이걸 다른 곳에 적용하려면 어떻게 해야 하나 막막해졌습니다.

네임스페이스니 텐서니 짚고 넘어가야 하는 부분이 많았기 때문입니다.

 

이후 케라스를 쓰면 좀 더 쉽게 구현해볼 수 있다는 이야기를 듣게 되었고,

마침 서평 이벤트에 당첨되어 케라스에 도전하는 기회로 삼게 되었습니다.

 

이 책의 장점은 케라스의 장점과 일맥상통합니다.

다양한 딥러닝 기법을 쉽게 구현할 수 있다는 것.

그리고 더 깊은 내용을 공부하고 싶게 만드는 호기심으로 이어진다는 것입니다.

 

이미 다양한 예제로 딥러닝을 구현해봤다거나 강의를 들었던 분들에게는 너무 쉬운 내용일 수 있습니다.

하지만, 딥러닝을 어떻게 구현할 수 있는지 궁금한 입문자들에게는 입문서로 제격이라고 생각합니다.

 

코딩셰프의 3분 딥러닝 케라스맛

(Keras 코드로 맛보는 ANN, DNN, CNN, RNN, AE, GAN, UNET)

김성진 저

한빛미디어

 

0장. 프롤로그
__0.1 인공지능과 인공신경망
__0.2 케라스 소개

1장. 케라스 시작하기
__1.1 우분투에 케라스 설치하기
__1.2 윈도우에 케라스 설치하기
__1.3 케라스 사용
__1.4 마치며

2장. 케라스로 구현하는 ANN(인공신경망)
__2.1 ANN 원리
__2.2 필기체를 구분하는 분류 ANN 구현
__2.3 시계열 데이터를 예측하는 회귀 ANN 구현
__2.4 마치며

3장. 케라스로 구현하는 DNN(심층신경망)
__3.1 DNN 원리
__3.2 필기체를 분류하는 DNN 구현
__3.3 컬러 이미지를 분류하는 DNN 구현
__3.4 마치며

4장. 케라스로 구현하는 CNN(합성곱신경망)
__4.1 CNN 원리
__4.2 필기체를 분류하는 CNN 구현
__4.3 컬러 이미지를 분류하는 CNN 구현
__4.4 마치며

5장. 케라스로 구현하는 RNN(순환신경망)
__5.1 RNN 원리
__5.2 문장을 판별하는 LSTM 구현
__5.3 시계열 데이터를 예측하는 LSTM 구현
__5.4 마치며

6장. 케라스로 구현하는 AE(오토인코더)
__6.1 AE의 원리
__6.2 완전 연결 계층을 이용한 AE 구현
__6.3 합성곱 계층을 이용한 AE 구현
__6.4 마치며

7장. 케라스로 구현하는 GAN(생성적 적대 신경망)
__7.1 GAN의 원리
__7.2 확률분포 생성을 위한 완전 연결 계층 GAN 구현
__7.3 필기체를 생성하는 합성곱 계층 GAN 구현
__7.4 마치며

8장. 케라스로 구현하는 UNET(유넷)
__8.1 UNET 원리
__8.2 UNET을 이용한 컬러 복원 처리
__8.3 마치며

9장. 케라스 응용
__9.1 이미지 데이터 수 늘리기
__9.2 미리 학습한 모델 사용하기
__9.3 실전에서 유용한 케라스 고급 기능들
__9.4 전문 사용자를 위한 케라스 확장 기능
__9.5 마치며


기계학습 분야의 도서들이 쉬지않고 쏟아져 나오고 있습니다. 매달 신간으로 여러가지 좋은 책들이 소개 되고 있죠, 그 중 입문자를 위한 도서들이 가장 많이 출판되고 있는 것 같습니다. 오늘의 리뷰 도서도 기계학습 분야의 입문자를 위한 도서 입니다.


먼저 Keras는 python 기반의 오픈소스 신경망 프레임워크 입니다. 

그렇기에 이 책을 보시기 전에 python 선 지식이 있으면 좋습니다! 코드를 분석하고 이해하기 위해서는 필수이죠. 하지만, 실습은 하지 않고 전체적인 신경망 기법들을 훑어보고 싶다라는 분은 꼭 python 지식이 필요하진 않습니다.


위 책은 ANN, DNN, CNN, RNN, AE, GAN, UNET까지 384페이지의 도서에 모두 담으려고 노력했습니다. 도서의 각 챕터별로 각 기법들을 소개하는데, 원리 -> Keras를 이용한 구현 -> 정리 의 순서로 각 기법을 소개하고 있습니다.


도서에 대한 리뷰이기떄문에 Keras에 대한 내용을 언급하진 않겠습니다. python만 아시고 Keras는 전혀 몰라도 천천히 공부하시면 충분히 코드 분석 및 이해에 어려움을 없을 것입니다.


위 도서의 글을 매우 쉽게 쓰여져 있습니다. 입문자용으로 누구나 읽어서 쉽게 이론을 이해 할 수 있을 것 같습니다. 저자가 충분히 글을 잘 쓴 부분이 있겠지만, 얇은 페이지에 많은 내용을 담다보니 각 이론의 깊이있는 내용이 다뤄지지 않습니다. 위 기법들을 제대로 하나씩 설명하는데만 해도 굉장히 많은 페이지가 필요할텐데 말이죠. 이 도서를 참고하고자 하는 분은 각 기법을 심도깊게 공부한다기는 보다 어느 정도 각 기법의 내용을 아시는 분이 Tensorflow나, Theano, Torch처럼 Keras를 이용해 한번 가볍게 살펴본다는 취지로 접근하는게 좋을 것 같습니다.


기계학습에 입문하고자 하는 분들이 만약 이 책을 선택하였다면, Coursera의 Andrew Ng 교수님의 강의와 모두의 연구소의 기계학습 강의를 들으신 후 책을 보시는 걸 더 추천드립니다. 그게 아니라면 각 기법에 대한 챕터를 공부할 때 관련 도서나 검색을 통해 좀 더 깊게 시간을 투자해서 공부하는 것을 추천합니다.


위 책은 Keras를 통해 기계학습에 입문하시는 분들께는 좋으나 그 외에의 독자들에겐 추천하지 않을 것 같습니다. 코드 또한 잘 작성되어 있는 것 같습니다.(실제로 코드를 따로 작성해보진 않아 많은 리뷰를 해드릴 순 없을 것 같습니다.) 추가로 관련 개발환경을 처음 접하시는 분들에게는 여러 문제가 발생했을 때 해결하는 것 또한 쉽지 않을 수 있으니 참고바랍니다.


많은 도서들이 출판되고 독자들의 관심이나 외면을 받고있습니다. 하지만 여러 분야의 다양한 접근으로 도서가 출간되는 것 자체가 우리에게는 축복인 것 같습니다. 위 책도 독자들에게 큰 도움이 될 수 있길 바라며 리뷰를 마칩니다.


이 글은 한빛미디어의 도서 리뷰 활동으로 작성된 글임으로 참고 바랍니다.


 

구성

ch.0 제목 그대로 프롤로그로 가볍게 읽고 넘어가면 됨

ch.1 플랫폼 별 설치와 가장 간단한 예제 설명.

ch.2 이후로는 케라스를 사용해 다양한 기법들을 실제로 돌려보는 예제와 설명

 

장점

설치에 문제가 없다면 제공하는 git repository(https://github.com/jskDr/keraspp)를 통해 책의 모든 예제를 바로 바로 실행하면서 읽을 수 있다. 이쪽에 대해 거의 아무런 지식이 없었지만, 따라가는 데 아무 문제가 없었다. 예제마저도 aws s3에서 자동으로 받아 편리하게 실행할 수 있게 해 놓았다는 점에서 저자가 많은 신경을 썼다는 생각이 든다.

 

단점

기본 지식이 없으면 실행까지만 하고 자신만의 응용을 하기가 쉽지 않다. 당연히 다른 모든 프로그래밍도 마찬가지이나, 케라스가 약간 상위에 있는 프레임워크라는 점에서 아는 사람들은 더 사용하기 편하지만 모르는 사람은 오히려 더 뭔가 변경하고 바꾸기가 힘든 느낌이었다. 그런데 이 책은 그런 쪽의 설명이 조금 부족하다는 생각이 든다. 이 오히려 뭔가 자신만의 것을 하고 싶을 때 걸림돌로 작용한단 생각이 들었다.

 

설치 관련

어떤 프로그래밍이든 시작할 때 가장 큰 장벽은 설치이다. 특히 한 번에 설치할 수 있는 인스톨러가 없는 경우 시작부터 막막한 때가 있는데, 요즘엔 docker를 사용해 편리하게 설치하고 필요없으면 지울 수 있어서 예전보다는 훨씬 덜한 것 같다.

케라스의 경우는 tensorflow(https://hub.docker.com/r/tensorflow/tensorflow/) 와 달리 official docker image는 없는 걸로 보인다. 그래서 hub.docker.com에서 star로 정렬한 후 설치봤는데, 결과는 다음과 같다.

사용한 docker version은 17.12.0-ce였고, 위의 페이지에 나온 대로 docker run을 실행하면 바로 image를 받아서 동작을 시작한다.

docker_version.png

 

docker_run.png

 

import_keras.png

 

* 한빛 미디어의 도서를 제공받아 작성한 리뷰임

이번에 리뷰를 진행할 책은 '코딩셰프의 3분 딥러닝 케라스맛'이다.

근래에 블록체인에 관심이 생겨서 블록체인 관련 도서만 읽다가 오래간만에 다시 딥러닝과 관련된 도서를 읽어보았다.

 

먼저 결론부터 말하자면 이전에 '신경망 첫걸음'과 '처음부터 배우는 머신러닝' 책을 통해서 어느정도 기초적인 내용은 알고 있었던 나에게 딱 적합한 책이었던것 같다.

위 두 책은 이론적인 면에 조금 더 집중된 책이라면 이번에 읽은 책은 실전 예제에 집중된 책이었다.

 

덕분에 시리즈 제목과 표지에서 느낄 수 있는 3분카레 느낌을 책을 읽는 내내 느낄 수 있다. 간단함과 편안함뿐만 아니라 직접 만들어보는 재미까지 느낄 수 있다.

마치 조리법을 차근차근 써놓은 것처럼 코드를 차근차근 풀어가며 따라하다보면 어느새 완성되어 있는 예제를 확인할 수 있다.

 

다만, 라이브러리 사용법에 초점이 맞춰지다보니 이론적인 설명은 부족해서 내부 이론적인 내용에 더 관심이 있는 사람이라면 추가적인 자료를 찾아보는 것이 좋을것이다.

이론은 맥락상 꼭 필요한 부분만 설명되어 있는 느낌이다.

 

1장을 통해서 케라스의 설치부터 시작해서 2장 부터는 차근차근 신경망을 하나씩 살펴나간다. ANN(인공신경망), DNN(심층신경망), CNN(합성곱신경망), RNN(순환신경망), AE(오토인코더), GAN(생성적 적대 신경망), UNET 등등 하나씩 기본설명과 함께 케라스를 통해서 예제를 확인할 수 있다. 간단한 그림들이 첨부되어있어서 각 신경망들이 어떤 구조로 이루어져 있는지 큰 그림을 느낄 수 있고, 예제를 따라하다 보면 어느새 해당 신경망을 통해서 무언가 하나의 결과물을 확인할 수 있게 된다. 이론을 먼저 접근했으면 자칫 지루할 수 있는 내용들이 틀림없는데도 재미있게 따라갈 수 있다. 오히려 예제들을 따라하고 나니 세부적인 이론이 궁금해져서 찾아보게 되는 구성이다.

 

딥러닝에 대한 기초 지식이 있고, 케라스를 처음 사용해보려는 사람들에게 추천해줄만한 책이다.

(기초 지식도 없어도 되지만 큰 그림을 이해하고 예제코드를 따라하는데 더 도움이 되는것 같다.)

이 책의 경우에는 한줄 한줄 코딩의 왜 이렇게 쓰였고 어떤 경과를 초례하는지에 대해 자세히 설명해주고 처음 입문 하는 사람들에게 케라스에 대해 자세히 설명해주는 책입니다. 현재 한번 1회독 했는데 아주 손쉽게 접근할 수 있도록 도와주는 책이었습니다. 게다가 그림의 설명을 첨부해서 이해가 더 잘 될 수 있도록 도와주는 부분이 가장 장점으로 다가왔습니다. 책 내용중에 인공신경망, 심층신경망, 합성곱신경망,순환신경망,오토인코더,생성적 적대 신경망, UNET등의 자세한 설명과 더블어서 이것을 통한 케라스 응용 방법 까지 상세히 안내해줘서 처음 접하는 프로그래머나 학생들에게 아주 유익한 책으로 생각됩니다. 평소에 잘 정리 되지 않았던 인공신경망에 대한 개념과 더불어서 텐서플로를 섞어서 쓰는 기법 까지 익힐 수 있었던 가장 좋은 책으로 추천드립니다. 현재 여기에 직접 소스 코드를 치는 방법이 좋은 방법이지만 깃 허브를 통해서 사용자에게 소스 또한 제공되고 있습니다. 그렇다 보니 자연스레 깃허브를 통해서 소스를 받는 사용법도 익히게 해주고 많은 부분에서 도움이 되었습니다. 첫 딥러닝 이 책으로 시작하셔도 무난 할 것 같습니다. 단점으로는 고수 분들이 사용하기에는 약간 쉬우실 수 있다는 것이 단점입니다. 감사합니다.

바야흐로 데이터 과학과 딥러닝 도서가 무수히 난무하는 2018년의 추운 겨울.. 'ㅅ') 
작년부터 데이터 과학, 딥러닝에 관심이 좀 생겨서 이책 저책 두루두루 둘러보고 있던 중인데..

본인은 수능 세대인데도 불구하고, 수학적 지식이 협소함. 'ㅅ')!
때문에, 온갖 수학 기호가 난무하는 딥러닝 책들이 매우 어려움. 책장이 안 넘어간다...
보다 보니, 딥러닝 관련 라이브러리인 '텐서플로' 이놈을 살펴봐야 하는건 알겠는데,
정확히 뭔지는 잘 모르겠던 어느 날, 

'골빈해커의 3분 딥러닝 텐서플로맛' 이라는 책을 발견해버렸다.
일단 제목과 표지가 약간 병맛 삘이 느껴지므로 맘에 들어, 구입하고 둘러 봄.

// 표지부터 살짝 병맛이 아닌가 'ㅅ')! 개발 책 중에는 가끔 이런 책들이 있다. 희귀템.

이 책을 보며 딥러닝에 딥하게 빠져들기 위한 수련 도중, 
생각지도 못 한 루트로 '케라스' 라는 녀석을 알게 되었는데 'ㅅ')! 

'이.. 이것은 수식 표현이 적어 보여, 뭔가 끌린드아...' 하던 도중, 
또 한빛미디어에서 '코딩셰프의 3분 딥러닝 케라스맛' 이라는 책을 내놓았다.
이번에는 뭔가... 표지가 더 귀여워졌음. 'ㅅ') 오호.

// 한빛미디어 네놈들이 돈독이 올랐구나. 이런 카레 색상의 귀욤진 책을... 감사합니다.

아무래도 초심자 입장에서 책에 쓰인 용어/개념이 어려운 것은 당연하나, 
그를 보완하기 위한 저자의 설명이 친절한 편이다.
예를 들어, '필기쳬의 분류' 구현이라는 하나의 주제를
ANN(인공신경망), DNN(심층신경망), CNN(합성곱신경망) 기술로 각각 어떻게 다르게 구현하는지를, 
케라스를 사용하는 파이썬 코드와 함께 개념에 대한 설명을 자세히 해나가며 
독자의 이해를 돕는 부분이 매우 마음에 든다. 'ㅅ')

직접 실행해보고 이해 해야할 것들이 많아서, 아직 다 읽어 보지는 못 하였으나...
나 같은 딥알못 개발 입문자에게는 꽤 괜찮은 책으로 생각되어 추천한다. 'ㅅ')/
// 하지만, 책 제목처럼 3분만에 딥러닝을 배울 수는 없지... 'ㅅ'); 후후...

.

<이 책의 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원받아 작성된 글입니다.>




[ 책 소개 ]

 

케라스 코드로 맛보는 딥러닝 핵심 개념!

간결하고 직관적인 인공신경망 API를 제공하는 케라스는 구글 텐서플로, 마이크로소프트 CNTK, 아마존 MXNETOpenCL PlaidML, 시애노 등의 딥러닝 엔진에서 지원하는 인기 인공지능 툴입니다. 이 책은 딥러닝 인공신경망 구현에 케라스를 사용합니다. 케라스로 주요 인공신경망인 ANNDNNCNNRNNAEGANUNET을 구현하는 방법을 알아봅니다. 따라서 인공지능과 딥러닝 인공신경망의 구현에 관심이 있는 누구나 이 책의 대상 독자입니다.

* 이 책의 ‘3분’은 ‘3분 만에 배운다’는 뜻이 아닙니다. ‘3분 음식처럼 쉽고 유용하게 배운다’는 뜻입니다.

[인터넷 교보문고 제공]

 

자세한 정보 :  Link(한빛네트워크)

 

[ 목록 ]

 

0장. 프롤로그 
__0.1 인공지능과 인공신경망 
__0.2 케라스 소개 

1장. 케라스 시작하기 
__1.1 우분투에 케라스 설치하기 
__1.2 윈도우에 케라스 설치하기 
__1.3 케라스 사용 
__1.4 마치며 

2장. 케라스로 구현하는 ANN(인공신경망) 
__2.1 ANN 원리 
__2.2 필기체를 구분하는 분류 ANN 구현 
__2.3 시계열 데이터를 예측하는 회귀 ANN 구현 
__2.4 마치며 

3장. 케라스로 구현하는 DNN(심층신경망) 
__3.1 DNN 원리 
__3.2 필기체를 분류하는 DNN 구현 
__3.3 컬러 이미지를 분류하는 DNN 구현 
__3.4 마치며 

4장. 케라스로 구현하는 CNN(합성곱신경망) 
__4.1 CNN 원리 
__4.2 필기체를 분류하는 CNN 구현 
__4.3 컬러 이미지를 분류하는 CNN 구현 
__4.4 마치며 

5장. 케라스로 구현하는 RNN(순환신경망) 
__5.1 RNN 원리 
__5.2 문장을 판별하는 LSTM 구현 
__5.3 시계열 데이터를 예측하는 LSTM 구현 
__5.4 마치며 

6장. 케라스로 구현하는 AE(오토인코더) 
__6.1 AE의 원리 
__6.2 완전 연결 계층을 이용한 AE 구현 
__6.3 합성곱 계층을 이용한 AE 구현 
__6.4 마치며 

7장. 케라스로 구현하는 GAN(생성적 적대 신경망) 
__7.1 GAN의 원리 
__7.2 확률분포 생성을 위한 완전 연결 계층 GAN 구현 
__7.3 필기체를 생성하는 합성곱 계층 GAN 구현 
__7.4 마치며 

8장. 케라스로 구현하는 UNET(유넷) 
__8.1 UNET 원리 
__8.2 UNET을 이용한 컬러 복원 처리 
__8.3 마치며 

9장. 케라스 응용 
__9.1 이미지 데이터 수 늘리기 
__9.2 미리 학습한 모델 사용하기 
__9.3 실전에서 유용한 케라스 고급 기능들 
__9.4 전문 사용자를 위한 케라스 확장 기능 
__9.5 마치며

[예스24 제공]

 

 

[ 읽으며 ]

 


 이번에 리뷰를 진행할 책은 '코딩셰프의 3분 딥러닝 케라스맛' 입니다. 딥 러닝을 공부하고 있는 제가 관심있던 책이였는데 좋은 기회를 주신 한빛미디어 관계자분께 다시 한번 감사 인사를 드리고 싶을 정도로 좋은 책입니다.


책에서는 ANN, DNN, CNN, RNN, AE, GAN, UNET 의 신경망에 대해서 다루고 있습니다.


먼저케라스에 대해서 궁금하신 분들이 계실텐데 케라스는 인공지능 패키지입니다.

즉, 인공지능 코딩을 쉽게 할 수 있는 파이썬 라이브러리라고 생각하시면 됩니다.



 

 

 책에서는 GPU가 있는 개발환경에서 소스코드를 진행하지만, 저 같은 경우에는 윈도우가 아닌 가상환경에 설치된 리눅스(우분투)에서 책에 나오는 예제 소스를 실행하였기 때문에 일반 keras로 진행하였습니다.

 

GPU : $ conda install keras-gpu

NON-GPU : $ conda install keras

 

GPU를 사용해서 개발을 진행하고 싶었으나 윈도우의 경우 GUDA 를 따로 설치해줘야하며, 지원하는 그래픽카드 기종을 확인하고 설치를 진행해야 한다는 점을 가만하고 실행하시면 좋을 것 같습니다.

(연산 속도에는 차이가 있으나, 책에 나와 있는 기초 예제에 대해서는 많은 차이가 없다고 판단됩니다.)

 

VMware로 구성된 우분투에서 주피터 노트북(Jupyter notebook)을 실행하여 예제 소스를 진행해보았습니다.

 


 

 

제목, 3분 딥러닝 이라는 말에 맞게 소스코드와 신경망에 대한 설명들이 굉장히 쉽게 설명되어 있었습니다.

이 책을 읽기 전, '처음 배우는 머신러닝-한빛미디어' 책으로 공부했을 때는 소스를 보면서도 중간에 생략되는 부분도 존재해서

오류를 파악하는데 한참 걸렸다면, 코딩셰프 책은 하나하나 설명이 붙어 있고 파트의 각 마지막에 소스코드가 따로 존재해서

공부를 마친 후 마무리 단계에서 코드를 치면서 공부 할 수 있는 부분이 읽는 내내 좋았습니다.

 

 

 

무엇보다도 ANN, DNN, CNN, RNN, AE, GAN, UNET를 간단하게 배울 수 있다는 점에서는 높은 점수를 주고 싶고,

기본 활용에 대한 내용 면에서는 낮은 점수를 주고 싶습니다.

 

 

책을 통해 신경망들에 기초적인 함수, 계산, 활용 등에서 배운 다음에는 예제를 배울 수 있는

 

파이썬 라이브러리를 활용한 머신러닝 - 한빛미디어

처음 배우는 머신러닝 - 한빛미디어

 

등을 보고 공부하시는 것도 좋을 것 같습니다.

 


[ 마무리 ]


python은 선행학습을 할 것!

기초적인 신경망 개념을 익히기에 좋은 책!

 

디자인    ★★★★☆ 심플해서 좋은것 같습니다.

내용       ★★★☆☆ 코드의 가독성이 굉장히 떨어진다.

난이도    ★☆☆☆☆ 누구나 따라할 수 있을 것 같아요.

 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
코딩셰프의 3분 딥러닝, 케라스맛
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
코딩셰프의 3분 딥러닝, 케라스맛
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
코딩셰프의 3분 딥러닝, 케라스맛
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실