올해 딥러닝 책을 여러 권 읽었는데,  파이토치로 실습이 안내된 책은 처음이었습니다. 

(제가 읽은 것중에는 처음이지만, 시중에 파이토치 책들은 많습니다 :-) )

케라스, 텐서플로우, 카페2 등 딥러닝 프레임워크들이 여러 개 존재하지만,

왜 파이토치를 공부하는지는

www.itworld.co.kr/news/144936 를 참고하면 되겠습니다.

 

이 책의 장점은 1. 얇고, 작아서 휴대하기 편한 사이즈의 책인데 내용도 알차다

                    2. 파이토치를 배울 수 있다.  

입니다. 

파이토치는 "페이스북이 주도하여 만든 딥러닝 모델 구현용 오픈소스 도구"입니다. 

 

목차는 다음과 같습니다.

Chapter 1. 딥러닝과 파이토치

  1.1 인공지능과 머신러닝

  1.2 지도학습, 비지도학습, 강화학습

  1.3 딥러닝과 신경망

  1.4 파이토치가 개발되기까지

  1.5 왜 파이토치인가?

  1.6 마치며

 

Chapter 2. 파이토치 시작하기

   2.1 파이토치 설치 & 환경 구성

       2.1.1 파이썬 설치

       2.1.2 파이토치 설치

   2.2 파이토치 예제 내려받고 실행 확인하기

   2.3 주피터 노트북

   2.4 마치며

 

Chapter 3. 파이토치로 구현하는 ANN

   3.1 텐서와 Autograd

        3.1.1 텐서의 차원 자유자재로 다루기

        3.1.2 텐서를 이용한 연산과 행렬곱

        3.1.3 Autograd

   3.2 경사하강법으로 이미지 복원하기

        3.2.1 오염된 이미지 문제

        3.2.2 오염된 이미지를 복원하는 방법

        3.2.3 문제 해결과 코드 구현

    3.3 신경망 모델 구현하기

        3.3.1 인공신경망(ANN)

        3.3.2 간단한 분류 모델 구현하기

     3.4 마치며

 

Chapter 4. 패션 아이템을 구분하는 DNN

     4.1 Fashion MNIST 데이터셋 알아보기

     4.2 인공 신경망으로 패션 아이템 분류하기

         4.2.1 인공 신경망으로 패션 아이템 분류하기

         4.2.2 이미지 분류 문제

         4.2.3 이미지 분류를 위한 인공신경망 구현

     4.3 성능 측정하기

     4.4 과적합과 드롭아웃

         4.4.1 데이터 늘리기

         4.4.2 드롭아웃

      4.5 마치며

 

Chapter 5. 이미지 처리 능력이 탁월한 CNN

      5.1 CNN 기초

           5.1.1 컴퓨터가 보는 이미지

           5.1.2 컨볼루션

           5.1.3 CNN 모델

       5.2 CNN 모델 구현하기

       5.3 ResNet으로 컬러 데이터셋에 적용하기

          5.3.1 ResNet 소개

          5.3.2 CIFAR-10 데이터셋

          5.3.3 CNN을 길게 쌓는 방법

       5.4 마치며

 

Chapter 6. 사람의 지도 없이 학습하는 오토인코더

        6.1 오토인코더 기초

        6.2 오토인코더로 이미지의 특징 추출하기

           6.2.1 오토인코더 구현

           6.2.2 잠재 변수 들여다보기

        6.3 오토인코더로 망가진 이미지 복원하기

           6.3.1 잡음 제거 오토인코더 구현

           6.3.2 잡음 제거 시각화하기

        6.4 마치며

 

Chapter 7. 순차적인 데이터를 처리하는 RNN

      7.1 RNN 개요

      7.2 영화 리뷰 감정 분석

           7.2.1 자연어 전처리

           7.2.2 RNN 모델 구현

      7.3 Seq2Seq 기계 번역

           7.3.1 Seq2Seq 개요

           7.3.2 인코더

           7.3.3 디코더 

           7.3.4 Seq2Seq 모델 구현하기

     7.4 마치며

 

Chapter 8. 딥러닝을 해킹하는 적대적 공격

     8.1 적대적 공격이란?

     8.2 적대적 공격의 종류

     8.3 FGSM 공격

          8.3.1 학습된 모델 불러오기

          8.3.2 공격할 이미지 불러오기

          8.3.3 공격 전 성능 확인하기

          8.3.4 FGSM 공격 함수 정의

          8.3.5 적대적 예제 생성

          8.3.6 적대적 예제 성능 확인

    8.4 마치며

 

Chapter 9. 경쟁하며 학습하는 GAN

    9.1 GAN 기초

    9.2 GAN으로 새로운 패션 아이템 생성하기

          9.2.1 학습 준비

          9.2.2 생성자와 판별자 구현

          9.2.3 GAN 학습 구현

          9.2.4 결과물 시각화

    9.3 cGAN으로 생성 제어하기

          9.3.1 cGAN으로 원하는 이미지 생성하기

          9.3.2 조건부 생성자와 판별자

          9.3.3 cGAN 학습 구현

          9.3.4 결과물 시각화

    9.4 마치며

 

Chapter 10. 주어진 환경과 상호작용하며 학습하는 DQN

     10.1 강화학습과 DQN 기초

     10.2 카트폴 게임 마스터하기

          10.2.1 하이퍼파라미터

          10.2.2 DQN 에이전트

          10.2.3 이전 경험 기억하기

          10.2.4 행동하기

          10.2.5 경험으로부터 배우기

          10.2.6 학습 시작하기

     10.3 마치며

 

대부분의 인공지능 책들이 비슷한 내용을 다루는데, 저마다의 차이는 있습니다.

1. 이해는 쉬우나, 깊이가 없는 책

2. 깊이는 있으나 이해가 어려운 책

 

이 책은 1번, 이해는 쉬우나 깊이가 없는 책에 가깝기는 하나, 이는 딥러닝 모델을 설명하는 수학적인 수식 등의 복잡한 이론들이 빠져있다는 점에서 평가한 것이지, 다루는 내용이 적다는 것은 아닙니다.

다양한 딥러닝 모델의 개념을 이론적으로 간략하게, 그러나 이해가 쉽도록 설명하고 실습 코드를 다 담았습니다. 그래서 실습을 따라하면서 이해하기가 용이합니다. 그런 의미에서 이 책은 너무 이론부터 시작하고 싶지 않고, 개략적으로 다양한 모델들을 접해보고 실습하여 시작해보고 싶은 사람들에게 추천드리는 책입니다. 

 

또한 다른 책에서는 잘 볼 수 없었던 딥러닝의 약점으로 해킹하는 '적대적 공격' 까지도,

딥러닝을 다양하게 책에 담으려는 노력이 느껴졌습니다.

그리고 이 책을 본 후, 다음에는 무엇을 공부할까 고민하는 학생들을 위해 책 초반부에 어떤 강좌와 책을 다음에 보면 좋을지 추천도 해주고 있습니다. 

 

책 표지에 귀여운 펭귄이 그려져있어 읽고싶어지는 책이다 :-)

시간이 없어 책에 있는 코드들을 하나하나 돌려보지 못했는데,

10월부터 차근차근 책에 있는 파이토치 코드들을 실행시켜보면서 저도 이 책을 통해서 딥러닝 모델들을

하나하나 다시 공부해보고자 합니다.