Book Review/CS Book Club

케라스로 구현하는 딥러닝 리뷰

Young_Metal 2022. 4. 27. 17:25

케라스로 구현하는 딥러닝 / 한빛미디어 / 김성진 저 / 정가 30,000 원

 

간단한 소개


이 책은 케라스 Keras 라는 파이썬 기반의 쉽고 가볍게 배울 수 있는 오픈소스 신경망 라이브러리로 딥러닝 초보자라도 다양한 분야의 데이터를 딥러닝 모델을 통해 개발하고 활용할 수 있게 도와주는 책이다. 케라스는 가장 유명한 프레임 워크인 구글 텐서플로우와 마이크로소프트의 CNTK, 아마존의 MXNET 등의 딥러닝 엔진에서 지원하기 때문에 앞으로도 가볍게 혹은 무겁게 개발하더라도 충분히 사용가치가 넘친다. 

 

 

 

책의 구성


책은 각장의 Step 1에서 간단하게 개념을 익히고 Step 2에서 실무에 적용할 수 있는 예제를 배우면서 전체적인 코드를 배우기 앞서 중요한 코드의 역할을 습득하고 Step3에서 전체적인 코드를 확인하며 실습을 할 수 있습니다. 

이렇게 step을 밟아가며 저자의 설명과 함께 개념을 배워서 '함께 코딩하면서' 설명을 받는 느낌이 강해 처음부터 코드를 보여주어 혼란스럽게 하지 않고, 필요한 만큼 조각 조각 알려주면서 전체적인 틀을 맞춰가며 마지막에는 큰 그림으로 동작하는 코드를 실행해보게 합니다. 

 

- 기본 편(0~8장)과 심화 편(9~11장)으로 구성되어 있습니다. 

기본편 :

0장. 케라스 시작하기

1장 케라스 시작하기 

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

3장 케라스로 구현하는 DNN (심층신경망, Deep Neural Network)

4장 케라스로 구현하는 CNN ( 합성곱신경망, Convolution Neural Network)

5장 케라스로 구현하는 RNN ( 순환신경망, Recurrent Neural Network)

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

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

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

 

심화편

9장 케라스 확장 기능

10장 케라스로 구현하는 RL

11장 케라스로 구현하는 QAI ( 양자인공지능, Quantum Artificial Intelligence)

 

주요 내용


코드 수행에 대해서 아래의 사진과 같이 회색 박스 안에 코드를 보여줍니다. 그리고 그에 대해 어떤 코드인지, 그리고 왜 이 코드를 작성했는지를 코드의 앞뒤에 설명합니다. 

Note라는 파란색 박스 안에는 내용에 추가적으로 설명을 넣습니다. 

아래의 사진과 같은 경우 조건문으로 __name__을 넣어서 검사하게 되면 동작하지 않고 명령형으로 수행할 때 동작하는 코드블록을 만들 수 있기 때문에 python에서 시스템 변수가 __main__으로 설정되어 있는지를 보고 정하게 됩니다. 

또한 그림을 넣어서 확인합니다. 

아래는 코드 설명입니다. 아래는 GAN example 7-1을 구현하기 위해 필요한 라이브러리입니다. 

import numpy as np
import matplotlib.pyplot as plt

from keras import models
from keras.layers import Dense, Conv1D, Reshape, Flatten, Lambda
from keras.optimizers import Adam
from keras import backend as K

아래의 코드처럼 GAN을 구현하기 위해 def로 함수와 class로 구현했습니다. 이렇게 구현하면 가독성도 좋고 함수형 언어라 수정하기에 편합니다. 

class GAN:
    def __init__(self, ni_D, nh_D, nh_G):
        self.ni_D = ni_D
        self.nh_D = nh_D
        self.nh_G = nh_G

        self.D = self.gen_D()
        self.G = self.gen_G()
        self.GD = self.make_GD()

    def gen_D(self):
        ni_D = self.ni_D
        nh_D = self.nh_D
        D = models.Sequential()
        D.add(Lambda(add_decorate, output_shape=add_decorate_shape, input_shape=(ni_D,)))
        D.add(Dense(nh_D, activation='relu'))
        D.add(Dense(nh_D, activation='relu'))
        D.add(Dense(1, activation='sigmoid'))

        model_compile(D)
        return D

관련 링크


https://github.com/jskDr/keraspp_2022

예제 코드

 

GitHub - jskDr/keraspp_2022: Codes in My Book - Keras

Codes in My Book - Keras. Contribute to jskDr/keraspp_2022 development by creating an account on GitHub.

github.com

 

GAN 논문

https://arxiv.org/pdf/1406.2661.pdf

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

'Book Review > CS Book Club' 카테고리의 다른 글

소문난 명강의 : 소플의 처음 만난 리액트 리뷰  (0) 2022.07.01
처음 만나는 WSL  (0) 2022.04.06