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

한빛출판네트워크

케라스로 구현하는 딥러닝

예제를 따라 하며 배우는 딥러닝 인공신경망

한빛미디어

집필서

판매중

  • 저자 : 김성진(코딩셰프)
  • 출간 : 2022-04-01
  • 페이지 : 488 쪽
  • ISBN : 9791162245415
  • 물류코드 :10541
  • 초급 초중급 중급 중고급 고급
4.9점 (19명)
좋아요 : 2

예제를 따라 하며 배우는 딥러닝 인공신경망 

 

이 책은 케라스로 인공신경망을 구현하는 방법을 알려준다. 복잡한 수식 없이 실무에 적용할 수 있는 실용적인 예제로 다양한 딥러닝 모델(ANN, DNN, CNN, RNN, AE, GAN, UNET, RL, QAI)을 다룬다. 인공신경망의 기본 개념부터 심화 기능, 강화학습, 양자인공지능까지 다양한 딥러닝 알고리즘을 맛볼 수 있다. 코드로 딥러닝에 대한 감을 익히고 빠르게 결과물을 만들고 싶은 분께 추천한다.

 

 

 

케라스로 구현하는 딥러닝(700).jpg

김성진 저자

김성진

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

<기본 편>


0장. 프롤로그

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

____0.1.1 인공지능의 역사 

____0.1.2 머신러닝과 딥러닝  

____0.1.3 인공신경망 개요  

__0.2 케라스 소개  

____0.2.1 케라스 2의 주요 특징  

 

1장. 케라스 시작하기

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

____1.1.1 아나콘다 파이썬 배포판 설치  

____1.1.2 아나콘다를 이용한 케라스 설치  

____1.1.3 케라스에서 GPU 사용을 위한 CUDA/cuDNN 설치  

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

____1.2.1 아나콘다 파이썬 배포판 설치

____1.2.2 아나콘다를 이용한 케라스 설치  

__1.3 주피터 설치하기  

__1.4 케라스 사용하기  

____1.4.1 실습 내용 소개  

____1.4.2 텍스트 모드 실습  

____1.4.3 주피터 모드 실습  

__1.5 케라스 기능  

__1.6 마치며

 

2장. 케라스로 구현하는 ANN

__2.1 ANN 원리  

____2.1.1 ANN 개념  

____2.1.2 ANN 구조  

____2.1.3 ANN 활용  

____2.1.4 ANN 구현 방법 및 단계  

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

____2.2.1 분류 ANN을 위한 인공지능 모델 구현  

____2.2.2 분류 ANN에 사용할 데이터 가져오기  

____2.2.3 분류 ANN 학습 결과의 그래프 구현  

____2.2.4 분류 ANN 학습 및 성능 분석  

__2.3 결과 데이터를 예측하는 회귀 ANN 구현  

____2.3.1 회귀 ANN 모델링

____2.3.2 학습과 평가용 데이터 가져오기  

____2.3.3 회귀 ANN 학습 결과 그래프 구현  

____2.3.4 회귀 ANN 학습 및 성능 분석  

__2.4 마치며 

 

3장. 케라스로 구현하는 DNN

__3.1 DNN 원리  

____3.1.1 DNN 개념과 구조  

____3.1.2 경사도 소실 문제와 ReLU 활성화 함수  

____3.1.3 DNN 구현 단계  

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

____3.2.1 기본 매개변수 설정  

____3.2.2 DNN 모델 구현  

____3.2.3 데이터 준비  

____3.2.4 학습 및 성능 평가  

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

____3.3.1 데이터 가져오기  

____3.3.2 DNN 모델링  

____3.3.3 학습 효과 분석  

____3.3.4 학습 및 성능 평가  

__3.4 마치며

 

4장 케라스로 구현하는 CNN

__4.1 CNN 원리  

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

____4.2.1 분류 CNN 모델링  

____4.2.2 분류 CNN을 위한 데이터 준비  

____4.2.3 분류 CNN 학습 효과 분석  

____4.2.4 분류 CNN 학습 및 성능 평가  

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

____4.3.1 분류 CNN 패키지 가져오기  

____4.3.2 분류 CNN 모델링  

____4.3.3 분류 CNN을 위한 데이터 준비  

____4.3.4 분류 CNN의 학습 및 성능 평가를 위한 머신 클래스  

____4.3.5 분류 CNN의 학습 및 성능 평가 수행  

__4.4 마치며 

 

5장 케라스로 구현하는 RNN

__5.1 RNN 원리  

____5.1.1 RNN의 개념과 구조  

____5.1.2 LSTM 구조 및 동작  

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

____5.2.1 라이브러리 패키지 가져오기  

____5.2.2 데이터 준비

____5.2.3 모델링  

____5.2.4 학습 및 성능 평가  

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

____5.3.1 라이브러리 패키지 가져오기  

____5.3.2 코드 실행 및 결과 보기  

____5.3.3 학습하고 평가하기 

____5.3.4 LSTM 시계열 데이터 회귀 모델링  

____5.3.5 데이터 가져오기  

__5.4 마치며 

 

6장 케라스로 구현하는 AE

__6.1 AE 원리  

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

____6.2.1 완전 연결 계층 AE 모델링  

____6.2.2 데이터 준비  

____6.2.3 학습 효과 분석  

____6.2.4 완전 연결 계층 AE의 동작 확인  

____6.2.5 학습 및 성능 평가  

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

____6.3.1 합성곱 AE 모델링  

____6.3.2 데이터 준비 및 학습 효과 분석

____6.3.3 합성곱 AE 결과 시각화  

____6.3.4 합성곱 AE 학습 및 성능 평가  

__6.4 마치며

 

7장. 케라스로 구현하는 GAN

__7.1 GAN 원리  

____7.1.1 GAN의 목적과 개념  

____7.1.2 GAN의 구조  

____7.1.3 GAN의 동작 원리  

____7.1.4 GAN의 동작 사례  

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

____7.2.1 패키지 가져오기  

____7.2.2 데이터 생성 클래스 만들기  

____7.2.3 GAN 모델링  

____7.2.4 머신 구현하기  

____7.2.5 코드 수행과 결과 보기  

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

____7.3.1 공통 패키지 가져오기  

____7.3.2 사용자 정의 손실 함수 만들기  

____7.3.3 합성곱 계층 GAN 모델링  

____7.3.4 합성곱 계층 GAN 학습하기  

____7.3.5 합성곱 계층 GAN 수행하기

__7.4 마치며

 

8장 케라스로 구현하는 UNET

__8.1 UNET 원리  

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

____8.2.1 패키지 가져오기  

____8.2.2 UNET 모델링 

____8.2.3 데이터 준비  

____8.2.4 UNET 처리 그래프 그리기  

____8.2.5 UNET 학습 및 결과 확인  

__8.3 마치며

 

 

<심화 편>

 

9장 케라스 확장 기능

__9.1 이미지 데이터 증강하기  

____9.1.1 응용 코드 구현  

____9.1.2 세부 모듈 구현  

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

____9.2.1 응용 코드 구현  

____9.2.2 세부 모듈 구현  

__9.3 간단한 신규 계층 만들기  

____9.3.1 Lambda 계층이란?  

____9.3.2 파이썬 Lambda 기능 이용  

____9.3.3 Lambda 계층 전용 함수 이용  

____9.3.4 백엔드 함수 이용  

____9.3.5 엔진 전용 함수 이용  

____9.3.6 케라스의 확장 기능 이용  

__9.4 학습 가능한 신규 계층 만들기  

____9.4.1 관련 패키지 가져오기  

____9.4.2 새로운 계층의 클래스 만들기  

____9.4.3 사용 데이터 준비하기  

____9.4.4 신규 계층이 포함된 모델링 만들기  

____9.4.5 모델의 학습과 성능 평가  

__9.5 케라스의 확장된 기능 이용하기  

____9.5.1 텐서플로 가져오기와 내장 케라스 사용하기  

____9.5.2 완전 연결층 인공신경망 모델링  

____9.5.3 데이터 준비  

____9.5.4 학습 진행 및 효과 분석 단계  

____9.5.5 주 함수 구현 및 실행  

__9.6 마치며 

 

10장. 케라스로 구현하는 RL

__10.1 강화학습 원리  

____10.1.1 강화학습의 정의 및 주요 용어  

____10.1.2 강화학습 최적화 기본 방법  

__10.2 정책 반복법을 이용하는 강화학습 사례  

____10.2.1 Gym을 이용한 강화학습 환경 구성하기  

____10.2.2 무작위 행동에 따른 상태, 보상 그리고 종료 여부 관찰하 기 

____10.2.3 반환값 구하기  

____10.2.4 가치함수 구하기  

____10.2.5 행동가치함수 구하기  

____10.2.6 새로운 정책 구하기  

____10.2.7 새로운 정책 사용하기  

__10.3 Q-Learning을 이용하는 강화학습 사례  

____10.3.1 패키지 가져오기 및 초기화  

____10.3.2 주어진 정책에 따른 시행 함수 만들기  

____10.3.3 Q-learning 만들기  

____10.3.4 Q-learning 실행하기  

__10.4 딥러닝 기반 Q-Learning을 이용하는 강화학습  

____10.4.1 관련 패키지 가져오기

____10.4.2 Q 함수를 위한 뉴럴넷 구성하기  

____10.4.3 텐서플로 기능을 이용한 Q 함수 뉴럴넷 학습 코드 작성  

____10.4.4 객체지향 방식으로 Q 함수 뉴럴넷 모델을 학습시키기  

____10.4.5 추가 Q 함수 뉴럴넷 모델을 이용한 학습  

____10.4.6 시도와 동시에 학습이 진행되게 만들기  

__10.5 마치며 

 

11장. 케라스로 구현하는 QAI

__11.1 양자컴퓨팅과 양자인공지능의 기초  

____11.1.1 양자비트 상태 표현과 측정  

____11.1.2 단일 양자비트 연산자  

____11.1.3 다중 양자비트 표현 및 연산  

____11.1.4 블로흐 구면과 지정 양자상태 회전  

__11.2 양자컴퓨팅 알고리즘 구현  

____11.2.1 기본 양자회로 만들기  

____11.2.2 입력을 반전시키는 양자회로  

____11.2.3 두 상태를 중첩하는 양자회로  

____11.2.4 두 개 양자비트를 입력으로 하는 CNOT 연산 

____11.2.5 벨 상태 만들기

__11.3 양자인공지능 알고리즘 구현

____11.3.1 매개변수가 있는 가변양자회로 알고리즘

____11.3.2 하이브리드 양자인공지능 학습하기

__11.4 마치며

 

코드로 빠르게 배우는 개발자용 딥러닝 입문서

 

『케라스로 구현하는 딥러닝』은 인공지능의 한 가지 방식만을 깊이 다루기보다는 누구나 인공지능을 쉽게 익힐 수 있도록 다양한 기초 방법을 실습하여 딥러닝의 큰 그림을 그릴 수 있도록 만들었다. 

저자가 독자 옆에 앉아 빠르게 ‘함께 코딩해가며’ 설명한다는 느낌이 들도록 했으며, 코드는 설명 흐름에 맞춰 필요한 만큼씩 보여준다. 조각 코드로 공부한 다음 마지막에 전체 코드를 제시하여 한 번 더 정리할 수 있다. 이론은 큰 그림을 이해할 정도로 설명하고, 코드도 세세한 부분까지 설명하지는 않는다. 큰 그림과 동작하는 코드를 손에 넣은 후, 케라스 사용법 문서와 저자가 만든 케라스 깃허브를 참고해 코드를 주물러보며 케라스와 친해질 수 있다.

 

 

★이 책의 구성

 

이 책은 기본 편(0~8장)과 심화 편(9~11장)으로 구성되어 있다. 기본 편에서는 기본적인 인공신경망을 이해하고 구현하는 내용을 학습한다. 심화 편에서 응용을 포함하여 심화된 인공신경망 활용 방법을 알아본다.

 

 

<기본 편>

 

0장. 프롤로그

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

1장. 케라스 시작하기

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

2장. 케라스로 구현하는 ANN

ANN(인공신경망)은 두뇌의 신경망을 흉내 낸 인공지능 기술이다. ANN은 입력 계층, 은닉 계층, 출력 계층으로 구성된다. 이 장에서는 ANN 구성에 필요한 요소를 이해하고 예제를 살펴보며 ANN 구현 방법을 익힌다.

3장. 케라스로 구현하는 DNN

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

4장. 케라스로 구현하는 CNN

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

5장. 케라스로 구현하는 RNN

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

6장. 케라스로 구현하는 AE

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

7장. 케라스로 구현하는 GAN

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

8장. 케라스로 구현하는 UNET

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

 

 

<심화 편>

 

9장. 케라스 확장 기능

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

10장. 케라스로 구현하는 RL

RL(강화학습)은 행동 정책을 학습하는 인공신경망이다. 강화학습은 최고의 보상을 얻기 위해 인공지능 에이전트가 적절한 행동을 스스로 결정할 수 있도록 만드는 방식으로 바둑, 게임, 로봇 제어 등에 활용되고 있다. 이 장에서는 RL의 개념을 이해하고 예제를 통해 구현 방법을 배운다.

11장. 케라스로 구현하는 QAI

QAI(양자인공지능)는 양자컴퓨터를 이용하여 구현하는 인공지능이며 양자컴퓨터는 양자 효과를 활용하는 컴퓨팅 환경이다. 양자컴퓨터는 양자중첩과 양자얽힘 현상을 이용하여 계산을 빠르게 할 수 있다. 이 장에서는 QAI에 대한 기본 내용을 배우고 양자 프로그래밍 방법을 익힌다.

 

 

★ 대상 독자

 

실습 중심으로 딥러닝에 대한 감을 익히고 빠르게 결과물을 내고 싶은 개발자에게 추천한다. 더불어 인공지능, 인공신경망 구현에 관심이 있다면 누구나 이 책의 대상 독자이다.

 


추천사

 

이 책은 구성이 매우 알찬 딥러닝 입문서이다. 책에 나와 있는 다양한 예제를 따라 하다 보면 딥러닝에 대한 깊은 이해 없이도 아주 강력한 딥러닝 툴을 손쉽게 사용할 수 있다. 

_ 최준일 KAIST 교수

 

대학원에서 '인문과 기술'이라는 융합 과목을 강의하면서 기술을 잘 모르는 비개발자, 타 전공자에게 인공지능 기술을 익히는 데 도움되는 책이 없을까 찾고 있던 차에 좋은 책이 나와서 기쁘다. 인공지능을 알고 싶고 구현하고자 하는 일반인에게도 일독을 권한다. 

_ 김용석 성균관대학교 교수

 

이 책의 10장, 11장의 강화학습과 양자인공지능은 수준이 높은 최신 기술이지만, 책을 따라가다 보면 꽤 많은 문턱을 지나갈 수 있다. 많은 분이 이 책으로 AI의 현재와 미래에 대한 인사이트를 얻기 바란다.

 _ 김민수 신한AI 상무

 

최근 인공지능이 널리 사용되면서 특히 딥러닝 분야에 관한 관심이 폭발적으로 늘었다. 많은 사람이 딥러닝을 어디서부터 어떻게 시작을 해야 할지 어려움을 느끼고 있는데, 이 책은 딥러닝에 입문하는 개발자의 답답함을 시원하게 해소해 준다. 

_ 고영웅 한림대학교 소프트웨어융합대학 교수

 

이 책은 여러 분야를 넘나들며 저자가 다년간 산학연에서 쌓은 실전 노하우를 친절하고 재미있는 설명과

피부에 와닿는 예제로 풀어낸다. 입문자는 물론 시간에 쫓기는 현장의 프로그래머에게도 큰 도움이 되리라고 확신한다. 저 또한 미국 변리사로서 발명가, 프로그래머와 토론하고 특허화하는 데에 코드의 이해가 필요한데 이 책으로 큰 도움을 받았다.  

_ 김상훈 Meta Inventor LLC 대표, 미국 변리사

 

코딩은 개략적인 설명을 이해하는 것도 중요하지만, 실제로 만져보고 다뤄보는 것만큼 이해도를 높이는 일은 없다. 인공지능 실무를 하든 하지 않든 인공지능이 궁금하다면, 일단 이 책을 따라 해보면서 이해도를 높여보기를 추천한다. 

 _ 송진영 빅인사이트 데이터 분석가

 

많은 기업이 인공지능에 기반을 둔 기술을 이용한다. 이러한 때에 누구나 쉽게 딥러닝을 접할 수 있는 이 책의 가치가 더욱 빛나는 것 같다. 처음 딥러닝을 시작하는 개발자나 다시 한번 내용을 정리하고 싶은 개발자에게 유용한 책이 될 것이다.  

_ 김성철 前 IBM Watson Research 연구원, 現 PsychoGenics 책임 데이터 과학자

이 책은 제목에서처럼 주요 인공신경망을 케라스로 구현하는 방법에 대해서 알고 싶고, 

실전 예제를 통해서 효과적으로 프로젝트를 개발하고자 하는 중급 이상의 개발자들에게 추천한다.

특히 각 장의 예제는 주옥같다. 예제의 수준도 수준이지만, 함수형/객체 지향형 방법으로 구현되어 있으며,

코드 재사용을 고려하여 작성할 뿐만 아니라, 예제 설명에서도 진심이 느껴진다.

 

Python 초급이나 머신러닝의 배경지식이 없다면 쉽지 않다. 

하지만 예제만으로도 이 책은 충분한 가치가 있다고 확신한다. Python 개발 실력이 느는 것은 덤이다. ^^

 

책의 구성은 기본 편과 심화 편으로 나누어 전체 11개 챕터로 구성되어 있으며, 

기본 편에서는 케라스 소개(인공지능과 머신러닝, 텐서플로2, 케라스 설치법)와 

케라스로 구현하는 ANN(Artifical Neural Network, 인공신경망), DNN(Deep Neural Network, 심층신경망), 

CNN(Convolutional Neural Network, 합성곱신경망), RNN(Recurrent Neural network, 순환신경망), 

AE(AutoEncoder, 오코인코더), GAN(Generative Adversarial Network, 생성적적대신경망), UNET(유넷)을 설명하고 있으며, 

심화 편에서는 케라스의 확장 기능(이미지 데이터 증강, 학습한 모델 사용, 신규 계층 추가, 학습 가능한 신규 계측 사용), 

케라스로 구현하는 RL(Reinforcement Learning, 강화학습), QAI(Quantum Artifical Intelligence, 양자인공지능)를 설명한다.

 

인공 신경망은 모두 다룬다고 해도 과언이 아니다. 특히, 마지막 양자 인공지능은 정말 어렵다. ㅠㅠ

다루는 분량에 비해 지면의 부담으로 개념 설명이 적은 것은 살짝 아쉽다. 하지만 우리에겐 이 책만 있는 게 아니니까 ㅎㅎ,

예제만 봐도 핵이득이다.

 

각 장은 먼저 해당 알고리즘에 대한 개념과 용어를 설명하고, 알고리즘의 구현 방법과 단계를 설명한다. 

같은 결과지만 다른 방법(함수형/객체 지향형)으로 구현한다. 

이어서 알고리즘으로 구현 가능한 예제를 3개 정도 설명하는데, 저자의 경험을 토대로 Python 꿀팁과 

사용되는 라이브러리(넘파이, 판다스, 맷플롯립, 사이킷런, 아규먼트 처리, ...)의 용도와 활용법도 반복적으로 친절하게 설명한다. 

알고리즘에 대한 예제 설명은 두말하면 입 아플 정도로 진심이다.

 

기존 이론 위주의 책이 대다수라면 예제 위주로 구성되어 있어서 참신하게 다가왔다.

이 책을 모두 이해한다면 인공신경망과 Python 두 마리 토끼를 잡았다고 볼 수 있을 것이다.

이론에 익숙해지고, 실전에 들어가기 전, 또는 실전에 들어가서도 보면 좋은 책이라는 생각이 든다.

 

책 표지 디자인도 좋았으며, 책 내용에 대한 디자인도 아주 좋았다. 전체적으로 완성도가 매우 높고, 

보기가 편했으며, 눈에도 잘 읽혔다. 굿 굿 굿

책을 읽으면서 가장 마음에 드는 문구로 이번 리뷰를 마무리하고자 한다.

 

AI를 두려워하고 멈춰 서 있을 것인가? AI와 함께 앞으로 나아갈 것인가?

 

 

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

사실 그동안 케라스+딥러닝 조합의 책들을 많이 보았다.

 

이 책에서는 ANN, DNN, CNN, RNN, AE, GAN, UNET, RL, QAI를 구현하는 방법을 다루고 있어서 목차에서부터 눈길을 끌었다. 입문자부터 볼 수 있는 책들에서 전반부(기본편)의 내용을 다룬 것은 많이 접했지만 후반부(심화편) 내용은 보지 못했기 때문이다. 그래서 강화학습(RL)과 QAI에 집중해서 훑어보았다.

 

KakaoTalk_20220928_111401021_02.jpg

 

각 챕터마나  먼저 원리를 설명하고, 필요한 개념을 설명한다. 실제 구현에서도 각 단계에 따라 코드와 설명이 있고, 마지막에 전체 코드를 훑어보며 정리할 수 있게 되어있다. 그리고 '마치며'를 통해 학습한 내용을 간략하게 정리한다. 코드와 설명이 함께 제공되고 있기 때문에 저자의 깃허브를 방문하면 더 도움이 된다. 친절하게 학습하는 방법까지 설명해두었다. 코드에서 이해가지 않는 부분이 있으면 설명을 찾아갈 수 있게끔 표시해두었다. 이런 세심함이라니....

 

KakaoTalk_20220928_112105249.jpg

 

 

8장까지는 차근차근 따라가면 딥러닝 입문자라고 하더라도 무리없이 따라갈 수 있는 내용으로 보인다. 책의 크기는 크지 않지만 담을 내용은 다 담았다는 생각이다. 9장에서는 활용 시 발생할 수 있는 문제를 효율적으로 해결할 수 있는 방법을 제시하고 있다. 이미지 데이터 증강하기, 미리 학습한 모델 사용하기, 간단한 신규 계층 만들기, 학습 가능한 신규 계층 만들기, 케라스의 확장된 기능 이용하기가 그것이다. 여기에 사용된 것처럼 클래스를 상속한다든가 백엔드(backend) 함수를 이용하는 방법을 직접 구현해본 적은 없어서 신선했다. 딥러닝 보다는 케라스 자체에 대해 좀 더 파봐야 겠다는 생각이 들었다. 10장 강화학습의 Gym 같은 경우에도 만들어진 코드를 가져다가 실행해보고 원리만 살짝 살펴본 적은 있는데 친절한 설명이 곁들여져 있어서 그 의미를 더 잘 알 수 있었다. 11장 양자인공지능은 완전 처음 접하는 내용이었지만 수식과 그림으로 잘 설명되어 있다.

 

다른 책이나 강의 등을 통해 어느 정도 해본 사람도 책의 첫장부터 차근차근 따라가며 정리해보기에 좋은 책이다. 혹시라도 절판된 <코딩셰프의 3분 딥러닝, 케라스맛> 책을 갖고 계신 분이라면 10장, 11장 위주로 보면 되겠다. 그리고 개념 자체를 처음 접하는 독자라면 원리 설명 부분에서 살짝 갈증을 느낄 수도 있을 것 같다. 작은 책 안에 방대한 양을 담은 책이므로, 세부적인 궁금증은 추가 검색으로 갈증을 해소하시기 바란다.

 

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





딥러이다 머신러닝이다 뭐다 해서

이것저것 책도 들춰보고 유튭도 보고 했지만 막상 본격적으로 해보려니 너무 어려웠다..ㅜㅠ

특히 텐서플로가 제일 유명하고 좋대서 여러번 달려들어봤지만

역부족.

이론적인 설명을 듣는것도 힘들고

이상하게 코드는 복붙을 했는데도 잘 안돌아가고..;;

 

그래서 한동안 손놓고 있다가

 

케라스는 좀 더 쉽다던데? 라는 소리를 듣고 다시 도저언!!!!



20220920_105400.jpg


왜 '케라스로 구현하는 딥러닝' 인가?



2가지 이유가 있었다.

 

1. 온갖 영역을 다 다룬다

인공신경망, 심층신경망 등등등 케라스에 있는 모든 신경망의 내용을 예제와 함께 다루고 있었다.

 

 

2. 수학 이야기가 없다.

물론 본질적인 원리를 이해하기 위해서는 수학적인 부분도 다루면 좋겠지만

당췌 이해도 안되는 수식이 어마어마하게 나열된 책들은 정말 손이가지 않았다..ㅜㅠ



 

20220920_105520.jpg

 



그렇다고 기본 개념과 이론을 설명하지 않는 것은 아니다.

 

오히려 도식을 통해서 이해하기 쉽게 적당한 수준까지만 다룬다!



 

가장 큰 특장점!!

 

 

 

20220920_105426.jpg



예제를 따라 가기 쉽게 코드 블럭 단위로 자세한 설명을 해준다.

 

흡사 주석이 잘 되어 있는 주피터 노트북을 보는 느낌이다!

한번에 코드 덩어리를 당연하듯 막 던지는 책은 소화하기 버겁다..ㅜㅠ

 

그리고 부분부분 쭉 따라가다 보면



 

 

20220920_105438.jpg

 

 



한눈에 전체 코드를 살펴볼 수 있다.

 

위의 이미지에서도 살펴볼 수 있지만

이 책은 풀컬러다!!!

코드 가독성이 폰트 색상과 배경 배색으로 인해 편하게 볼 수 있다!!!

 

아 또한가지 장점은 Git을 통해서 제공하는 소스코드가

GPU 사용자와 CPU only 코드 둘다 제공하고 있다.

즉, 복붙하기 좋다.ㅋㅋㅋㅋ

 

사실 코드를 직접 구현하는 것보다 잘 돌아가는지 한번 붙혀 넣어보고

데이터만 내껄로 바꿔서 돌려보는게 목적 아니겠는가?



 

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

간단한 소개


이 책은 케라스 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 npimport matplotlib.pyplot as pltfrom keras import modelsfrom keras.layers import Dense, Conv1D, Reshape, Flatten, Lambdafrom keras.optimizers import Adamfrom 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

 

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

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

 

장점으로는 다양한 딥러닝 기법을 하나씩 따라하면서 배울 수 있는 점입니다.

인공지능 책들을 보면 회기 분석, RNN, CNN 정도만 주로 다뤘는데.. 

이 책은 지도학습, 비지도학습, 강화 학습, 양자인공지능 까지 다양한 학습 기법에 대해서 예제와 함께 다루고 있습니다.

 

주요 코드 부분별로 설명하고 있어 코드를 작성하고 실행하면서 공부할 수 있는 좋은 교재인데..

아쉬운점은 실전을 주로 하다보니 이론적인 부분이 조금 아쉽습니다.

 

입문서 보다는 인공지능, 딥러닝에 대해서 이론적인 배경이나 실무를 운영하는 분들이 케라스를 익히며 다른 기법을 배우기에 좋은 책이라고 생각됩니다.

 

 

제목 그대로

사용자 친화적인 케라스(Keras)로 딥러닝(Deep Learning)을 공부할 수 있는 책이다.


책표지


4월에 출간된 따끈따끈한 책이다.


발행일


책을 볼 때에는 새하얀 종이에 컬러풀한 인쇄로 보기에 아주 좋은데,

조명 아래에서 책 사진을 찍었더니 아래처럼 빛 반사가 좀 있다(사실 책 볼 때에도 조명 반사가 좀...).


구성 1


정말 친절하게도 책의 구성에 대해서 서술형으로 설명을 해주고 있다.

 

책의 목차만 가지고 전체적인 흐름을 파악하거나 각 챕터에 대해서 이해를 하기에는 어려울 때가 있는데

이렇게 친절하게 책의 구성에 대해서 이야기 해주는 것처럼 설명이 있어서 정말 좋았다. 


구성 2


책이 쉬운 것 같으면서도 어려운데,

신경망(Neural Network)의 전체적인 내용을 책 한 권에 모두 담고 있다보니 뒷부분은 사실 좀 어려웠다.


(사실 내가 딥러닝에 대해 깊이 알지 못하고 앞부분만 알고 있다보니 뒷부분이 마냥 어렵게 느껴졌을 것이다!)


신경망


처음에 책을 접했을 때 좀 당황했던 것이 "ANN"이라는 용어였다.


ANN (Artificial Neural Network, 인공신경망) 이라는 명칭은 보통

생물학적인 신경망, 즉 Neuron(뉴런)에서 영감을 얻어 발발된 통계학적인 학습 알고리즘을 지칭하는

일반적인 용어로 알고 있었다.


그런데, 이 책에서는 SNN(Shallow Neural Network, 얕은 신경망), 2-layer Neural Network,

또는 그냥 NN(Neural Network)이라고 부르는 제일 단순한 NN을 지칭하는 용어로 ANN을 사용하고 있다.


물론, 이런 내용은 책에서 잘 설명해주고 있다.


그리고 이론적인 내용도 너무나 잘 설명해주고 있다.


ANN


책에서 기대하는 대상 독자는 광범위 하다.

Deep Learning을 공부하는 모두가 대상 독자이다.


대상 독자


예제 소스 코드도 너무나 잘 제공해주고 있다.


   - https://github.com/jskDr/keraspp_2022


GitHub


책을 살펴본 개인적인 의견으로 말하자면,

이 책은 Deep Learning을 공부하면서 직접 코드로 구현을 어떻게 하는지 살펴보고 싶은 초급자에게 적합할 것 같다.


책도 그렇고, 제공해주는 예제 소스도 보면

옆에서 강사님이 친절하게 설명해주는 느낌처럼 쓰여져 있다.


이 부분이 어떤 용도인지 왜 그렇게 되는 것인지 설명해주듯이 쓰여져 있어서

혼자서 공부하기에 적합한 것 같다.



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

 

 

 

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

 

1. 장점

-> 케라스에서 제공하는 딥러닝 방법들에 대하여 이론 및 실행 코드를 통해 인공지능의 발전 순서(ANN, DNN, CNN, LSTM, AE, RL)대로 접할 수있다.

-> 코드로 모델을 제작할때 keras를 상속하여 클래스 형태로만들어 장기적으로 봤을 때 확정성 있게 만들 수 있으며 초반에는 sequential 방식으로 간략하게구현해 보지만 후반부에는 functional 방식으로 구현해 세분화하는 방식을 접할 수 있음

-> 딥러닝구조를 쉽게 경험할 수 있으며 수학적 지식만 충분하다면 초보자를 위해 코드 구현에 대한 압박을 낮춰주어 결과 빠르게 넘어 갈 수 있음

2. 단점

-> Loss funcoptimizer같은 하이퍼 파라미터조절 방법은 간단하게만 나오고 Overfitting을 방지하는 방법과 같이 취약점이나 유용한 경우에대해서는 자세하게는 안나옴

-> tensorboard사용 방식은 생략되어 있는 것 같아 아쉬움

3. 후기

 

-> 아마 딥러닝을 해본 대부분의 사람들은 DNN, CNN, LSTM과같이 자주 사용하는 기법 위주로 이용하였을 텐데 이 책의 경우 AE, UNET, RL, QAI등을 이용하는법을 배울 수 있는게 큰 특징 중에 하나이며 코드를 짤 때 처음부터 시작할 때 keras를 상속하여클래스 형태로 제작을 해 추후 개인적인 프로젝트를 진행할 때 확장성 있게 이어갈 수 있는 점이 큰 메리트라고 생각함

KakaoTalk_20220425_085944796.jpg

 

 

 2010년 중반부터 AI 가 다시 부흥하더니 최근 2 ~ 3년 간은 AI 의 열풍이다. 코딩 학원의 갯수만큼 엄청나게 많은 머신러닝 / 딥러닝 책이 출판되었다. 좋은 책들은 3 ~ 4년이 지나도 계속해서 회자되는 책들이 있는 반면, 그만큼 빠르게 잊혀가는 책도 많아졌다. 

 

 처음엔 이 책을 받고, 흔한 딥러닝 입문서이지 않을까 생각하였다. 너무나 많은 딥러닝 책이 나와 있고, 필독서라고 할만큼 유명한 책들도 꽤나 많기 때문이었다. 다만, 흥미로웠던 점은 이론은 굉장히 최소화하였다는 점과 케라스로 구현한 점이었다. 요즈음 나오는 책들은 대부분 Tensorflow 또는 Pytorch 로 구현되기 때문이다. 

 

 케라스는 Tensorflow 위에서 동작하는 라이브러리이지만, Tensorflow 보다는 좀 더 사용자 친화적으로 개발되어 사용이 편하다는 장점이 있다. 간단한 신경망의 경우에는 몇 줄 안되는 코드로 신경망을 구현할 수 있다. 좀 더 디테일한 튜닝을 진행해야 할 경우에 Tensorflow를 사용해야 하지만, 매우 간단한 모델을 만들거나 빠른 시간 내에 프로토타입을 만들어야 할 경우 Keras 가 좋은 선택지가 될 것이다. 

 

 

 이 책은 케라스를 이용해 딥러닝 인공신경망을 만들어 인공지능을 구현한다. 기본 편(0 ~ 8장) 과 심화 편(9 ~ 11장) 으로 구성되어 있으며, 책에서 배울 수 있는 인공신경망의 종류는 다음과 같다.

 

  • ANN : 두뇌의 신경망을 흉내 낸 인공지능 기술
  • DNN : 은닉 계층을 여러 개 쌓아서 만든 인공신경망
  • CNN : 합성곱을 이용하는 신경망 기술
  • RNN : 계층의 출력이 순환하는 인공신경망
  • AE : 비지도학습 인공신경망
  • GAN : 경쟁을 통한 최적화를 수행하는 생성적 인공신경망
  • UNET : 저차원과 고차원 정보를 모두 사용하여 이미지의 경계를 비롯한 특징을 추출하는 인공신경망
  • RL : 행동에 대한 정책을 학습하는 인공신경망
  • QAI : 양자컴퓨터를 이용하여 구현하는 인공지능이며 양자 컴퓨터는 양자 효과를 활용하는 컴퓨팅 환경이다.

 

이 책의 저자 김성진 님은 누구나 인공지능을 쉽게 익힐 수 있도록 다양한 기초를 실습하여 딥러닝의 큰 그림을 그릴 수 있게 만들었다고 한다. 따라서 복잡한 이론보다는 실습 위주로 구성되어 있으며 책의 목적 또한 다양한 딥러닝 모델의 개념을 익히는 것이므로 이론을 최대한 간략하게 소개한다. 

 

 

이 책의 장점은 말 그대로 쉽고 빠르게 딥러닝 모델을 구현할 수 있다는 점이다. 책에 나와 있는 다양한 예제를 따라 하다 보면 딥러닝에 대한 깊은 이해 없이도 아주 강력한 딥러닝 툴을 손쉽게 사용할 수 있다.

 

모델 구현 외적으로도 빠르게 복습을 할 수 있다는 점도 있다. 각 신경망의 특징은 어느 정도 알 수 있지만 구현하려면 막히는 경우도 종종 있는데 이 때, 이 책을 활용하면 좋을 것 같다. 

 

한빛미디어의 <AI로 일하는 기술> 이라는 책이, 인공지능에 관해 이론적으로 큰 틀을 잡을 수 있는 책이라면, <케라스로 구현하는 딥러닝> 은 딥러닝의 구현에 관해 경험적으로 큰 틀을 잡을 수 있는 책이라고 생각한다. 

 

처음 AI 에 입문하는 비전공자라면, 위의 두 책을 보는 것도 추천한다. 

 

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

 

IT뿐만 아니라 인공지능이 생활곳곳에 활용되고 자리잡아가기 시작하는 시대에 살고 있는 것 같다.

IT분야의 기술서적도 하루가 멀다하고 새로운 신간이 쏟아져 나오고 있고, 주제도 다양해지는 것 같다.


왠만한 사람들 한번쯤은 들어봤을 텐서플로나 파이토치 같은 딥러닝 라이브러리는 하루가 다르게 발전하는 딥러닝의 새로운 이론,  방법, 모델들을 흡수하며 대중화에 기폭제가 되고 있고 이젠 대학에서 IT를 전공하거나 IT업종에 종사하는 사람들 뿐만 아니라 여러 학문분야와 산업계에서도 이를 활용하는 사람이 늘어나고 있다.


하지만 머신러닝, 딥러닝으로 대표되는 현재의 인공지능 기술을 구현하는 것은 여전히 어려운 문제이다.


케라스는 이러한 여러움을 해소하고 접근성을 높여줄 수 있는 상위레벨의 인터페이스를 제공한다. 즉 케라스 자체는 계산을 집접수행하는 하위레벨의 라이브러리는 아니지만 이를 쉽고 효과적으로 활용할 수 있도록 도움을 주는 즉 이들을 한번 랩핑하는 라이브러리이다.


케라스 2.4부터는 텐서플로를 전용 벤앤드로 사용한다.


"케라스로 구현하는 딥러닝" 책은 텐서플로를 베이스로한 딥러닝 프로그래밍을 손쉽게 접근할 수 있도록 가이드를 제공하는 입문서이다.


이 책은 기본편과 심화편으로 구성되어 있고


기본편에 가장 기본적인 CNN, RNN 등을 포함하여 AutoEncoder나 GAN 그리고 UNET까지 예전에 별도의 책을 떨어져 설명하던 부분들까지 기본적인 개념을 잡을 수 있도록 수록해 놓았다.


심화편은 케라스 확장기능과 강화학습에 관한 내용도 빠짐없이 포함되어 있어 학습을 진행할 수 있다.


내 생각에는 이 책의 가장 큰 특징이자 장점은 맨 마지막장의 QAI이 아닐까 싶다. 사실 잘 모르는 영역이라 단어정도 들어본 개념인데 이 책은 양자컴퓨팅과 양자인공지능에 대한 내용도 한 챕터를 잡아놨다. 이를 통해 앞으로 전계될 가능성이 높은 양자인공지능 분야에 대한 케라스를 이용한 접근이 가능하도록 기본적인 개념과 구현에 대한 설명이 되어 있다는게 이 책의 가치를 높이는 것이 아닌가 싶다. 물론 높은 수준의 이해와 스킬을 얻기 위해서는 별도의 학습과 연구가 필요하다.


이 책은 케라스 기반의 인공지능 구현에 대해서 어디하나 빠짐없이 두루두루 경험해 볼 수 있도록 잘 가이드해주는 입문서 이다.


※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.

케라스를 몇 번 안써봐서 궁금했는데 작년에 머신러닝 해보고 연말쯤 오렌지3를 보면서 좀 소홀해졌었다 손 뗀 후 다시 하려니 부담 스럽긴 했지만 막상 해보니 그렇진 않은 책이다 ​ 케라스와 텐서플로우 를 함께 설치하여 텐서플로우를 엔진으로하는 케라스 사용 환경을 만들어주고 주피터를 설치한다 간단한 실습으로 기본 기능을 살펴보고 ANN, DNN, GAN 외의 것들을 구현해보고 있다 깃헙에 전체 파일이 공유되어있어서 실습이 가능하고 개별 코드에 대한 설명이 되어있다 ​ 과정이 복잡하지 않아서 실습하면서 익히기에 충분하다고 본다 ​ 딥러닝이면 코드가 길고 복잡할 것 같지만 그렇지 않으니 놀라울 뿐이다

이 책은 keras 기반의 정말 실용적이고 다양한 딥러닝 모델(ANN, DNN, CNN, RNN, AE, GAN, UNET, RL, QAI)들을 다루고 있다. 실무에는 도움이 많이 될 것으로 보이나, 개인적으로 읽었을 때 기초부터 차근차근 설명해주며 따라가는 느낌이 아니라 이미 알고 있는 machine learning 개념들을 읊으면서 예제들을 빠르게 휙휙 던져주는 구조이기 때문에 딥러닝 초보에게는 추천하지 않는다. 눈에 띄었던 점은 다른 책들과는 다르게 양자인공지능(QAI)을 다루고 있다는 점이다.

 

출처: https://sysout.tistory.com/90 [Emily's Tistory]

 

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

1956년 존 메카시 교수가 다트머스 회의에서 인공지능을 처음 주창한 이래, 인공지능은 발전과 정체를 거브하면서 성장했다. 3번의 혹독한 AI 겨울을 보내면서 과연 AI는 우리 인간의 삶에 필요한 것인가에 대한 의문이 들었던 것도 사실이다. 그러던 중 2006년 AI 겨울 시즌에서도 꾸준한 연구를 계속해왔던 몇 몇 연구자들 중 한 사람인 토론토 대학교의 제프리 힌턴 교수의 인공신경망의 논문은 가히 혁명이라해도지나치지 않을 것이다. 그 이후 우리는 AI 즉 인공지능이라는 말보다는 딥러닝이라는 단어를 주로 사용하게 된다. 폭발적으로 쏟아져 나오는 딥러닝 기술은 관련 라이브러리의 발전에도 큰 획을 긋게 되는데, Tensorflow에서 이제는 케라스라는 파이썬 라이브러리를 주로 사용하는 프레임워크가 되었다. 이 책은 초창기부터 케라스 커뮤니티를 이끌면서 대한민국땅에 케라스가 딥러닝 모델을 연구하고자 하는 수 많은 개발자와 연구자들에게 훌륭히 뿌리가 내릴 수 있도록 노력한 김성진 박사의 책이다. 

 

이 책은 인공신명망의 기초 개념부터 CNN, GAN, 강화학습, 그리고 양자인공지능까지 관련 코드와 함께 학습자들에게 보다 쉽게 다양한 이론들을 다룰 수 있도록 하고 있다. 인공지능의 첫 발을 디딘 초보 학습자부터 보다 체계적인 학습을 하려는 중급 학습자들까지 충분히 아우르며 학습하는데 전혀 손색이 없는 책이다. 어떻게 보면 장점이자 단점이 될 수 있겠지만, 책 한권에 다양한 모델들을 코드와 함께 설명하려다보면 아무래도 특정 모델에 대해 약해질 수 없는 깊이의 문제도 있고, 전체적인 흐름을 따라가고자 하는 독자들에게는 최신 트렌드로 가는 주요 모델을 이해하는 것 만으로도 만족할 수 있는 책이다. 문제는 깊이인가 아니면 다양한 모델의 흐름인가. 이 책은 이런 문제를 잘 피해가며 독자들에게 다양한 모델의 설명뿐만 아니라 각 모델의 핵심 코드를 통한 충분한 설명으로 해결하고 있다. 그래서 딥러닝 인공신경망을 제대로 밟아가고 싶은 학습자들에게 더할나위 없는 길라잡이가 될 것이다. 

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

IMG_2439.jpg

 

이 책을 선택을 한 이유는 다른 입문서와는 다르게 양자인공지능에 대한 내용이 한 챕터를 

차지하고 있어, 어떤 내용인지 궁금해서 선택을 했습니다.

 

이 책을 처음 받았을 때, 아주 두껍지 않고 적절한 두께와 크기의 책이라는 생각을 했습니다.

 

사실 입문서의 경우 너무 두꺼우면 과연 초보자들이 끝까지 읽을 수 있을까 하는 생각을 항상하고 있었습니다.

 

항상 새로운 분야를 익힐 때, 얇은 책으로 빠르게 전체를 대략적으로 훑으면서 큰 그림을 먼저 보고,

세부적으로 들어가는 것을 선호합니다.

 

이 책은 케라스 설치부터 ANN, DNN, CNN, RNN, AE, GAN, UNET, RL 의 흐름을 예제 중심으로 설명하고 있습니다.

이 흐름대로 익혀나가면 딥러닝의 전체 그림을 빠르게 볼 수 있을 것으로 생각합니다.

 

(아직 양자인공지능은 제대로 이해를 못하고 있습니다.)

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

이 책을 통해서 파이토치나 텐서플로가 아닌 케라스를 이용해 딥러닝을 구현하는 방법을 배울 수 있다. 개념과 함께 실제 코드를 작성해 보면서 딥러닝 구현 방법을 알 수 있으며, CNN부터 GAN, UNET까지 최근 딥러닝 구조까지도 구현할 수 있다. 또한 강화학습에 대한 부분과 양자인공지능에 대한 부분까지 심화적으로 다루고 있는 것이 흥미롭다. 기초적인 딥러닝에 대한 책들에서는 잘 다루지 않는 양자인공지능에 대한 개념과 코드를 배울 수 있어서 좋다.

이번에 리뷰하게 된 책은 한빛미디어 의 '케라스로 구현하는 딥러닝'이라는 책입니다.

 

이 책은 구성이 굉장히 잘 되어있습니다.

모델에 대한 설명과 그 모델을 구현해볼 수 있도록 Keras를 통한 코드를 함께 구성해 놓았습니다.

 

이 책은 실습을 중심으로 딥러닝을 익혀나갈 수 있도록 구성되어 있습니다.

다만 모델의 핵심을 간략하게 담아내기 위해 추가적인 서치가 필요한 경우가 있지만,

딥러닝을 처음 접하시는 분들도 추가적인 서치와 함께 공부해 나가신다면 효과적으로 학습할 수 있을 것이라 생각됩니다.

 

이 책은 머신러닝과 딥러닝의 역사에 대해서도 설명하고 있습니다.

거시적인 흐름을 잡고, 미시적으로 깊이있게 설명해나갑니다.

구체적인 예시를 들면

 

ANN (인공신경망) 모델의 경우

1. ANN 모델에 대한 설명

2. ANN 모델의 활용

   1) 분류 ANN

   2) 회귀 ANN

3. ANN 모델의 구현

4. 실제 데이터를 통한 학습 및 성능 분석

 

과 같이 구체적이고 자세하게 구성되어있습니다.

 

아쉬웠던 점을 굳이 뽑아야 된다면

퍼셉트론의 개념 등장 이후 XOR 문제에 대해 설명을 구성했다면 더 좋았을 것 같습니다.

1956년 인공지능이 처음 등장했지만

이후 암흑기의 과정을 걷게 되었습니다.

이 이유에는 XOR 문제가 있었는데요,

퍼셉트론은 하나의 선형 구조를 통해 패턴을 도출해 낼 수 있다는 개념 아래 구성되었지만

설명의 한계를 마주합니다.

 

이후 퍼셉트론을 여러겹 쌓는 구조를 형성함으로서 XOR 문제가 해결되었고,

이는 딥러닝이라는 이름으로 불리게 되었습니다.

 

이 책은 중요한 개념에 대한 배경지식들을 함께 설명하고 있어

Keras를 통해 딥러닝을 공부하고 싶어하는 독자들에게 유용한 학습서가 될 것이라 생각됩니다.

 

추가적으로 conda를 통한 가상환경을 어떻게 구성하는지 코드와 함께 작성되어 있어

처음 접하시는 분들 또한 도움이 될 것이라 생각합니다. 

 

케라스로 구현하는 딥러닝.jpg

 

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

 

 

케라스로구현하는딥러닝.jpg

 


이번에 읽은 책은 "케라스로 구현하는 딥러닝"이라는 책입니다. 인공지능을 개발하기 위한 프레임워크로 텐서플로와 파이토치를 대표로 들 수 있고, 텐서플로를 기반으로 상위에서 인공지능을 좀 더 용이하게 개발할 수 있는 라이브러리로 제공하고 있는 것이 케라스로 알려져 있습니다. 이 책의 작가는 프로그래밍과 평생을 함께 해온 분인 것 같습니다. 프로그래밍으로 대상 수상, 박사 학위를 수여하고, 회사에서 일하고, 이후 인공지능 분야로 박사후연구원으로도 활동하신 분입니다. 현재는 케라스 관련 커뮤니티를 운영하시는 상황이니 프로그래밍 역량과 인공지능의 전문성이 합쳐져 시너지 효과를 내는 결과물로 이 책이 나온 것이 아닐까 짐작할 수 있습니다.

이 책은 딥러닝이라는 분야에 조금 관심이 있다면 들었을만한 여러 가지 인공지능 기술들을 구현한 내용을 다루고 있습니다. ANN(인공신경망)으로부터 시작해서 DNN(심층 신경망), CNN(합성곱 신경망), RNN(순환 신경망), AE(오토 인코더), GAN(생성적 적대 신경망), UNET 등의 기술을 케라스를 이용해서 구현하고, 코드의 세부적인 해설들을 소개합니다. 케라스는 텐서플로를 기반으로 추상화되어 있어서 외부로 표출하지 않은 기능은 다루기가 쉽지 않은데, 이 부분을 확장해서 다룰 수 있는 방법도 설명합니다. 마지막에는 생소한 느낌까지 드는 양자 인공지능이라는 부분에서도 케라스를 통해 어떻게 접근할 수 있는지 알려주고 있습니다.

작가는 케라스라는 도구로 다양한 인공지능 방식을 구현하는 방법을 소개해서 누구나 쉽게 익힐 수 있는 실습 기회를 제공하고자 합니다. 최근에 머신러닝에 관련된 온라인 코스를 듣고 있는 와중에 이 책을 만나게 되어서 ANN이나 DNN, CNN, RNN 과 같은 챕터는 흥미진진하게 읽을 수 있었고, '케라스로는 이렇게 간단하게 구현이 가능하구나' 라는 경이로움까지 느꼈습니다. 그러나, 이후 아직까지 공부해 보지 못한 분야들을 접하면서는 역시나 읽어내기가 쉽지 않았습니다. 누구나 인공지능에 쉽게 접하기보다는 인공지능을 공부한 사람이 케라스로는 많은 일을 덜어가며 관련 기능을 구현해서 사용할 수 있다는 관점에서 이 책을 펼쳐보는 것이 좋을 것 같습니다. 그래서 작가는 다른 책과는 구별되게 책 초반에 '이 책을 마친 후'라는 파트를 배치시켜서 이 책을 읽기 전에 먼저 학습과 실습을 권장하는 책을 소개하기도 했습니다.

많은 인공지능 방식을 다루기 때문에 책의 분량에 대해 고민이 컸을 것이라는 짐작을 할 수 있었지만, 딥러닝이라는 분야에서도 조금 더 복잡도가 높은 방식에 대해서는 코드와 개념을 좀 더 밀착시켜서 설명이 상세했으면 좋겠다는 생각이 들기도 합니다. 개인적인 의견이지만, 각 장마다 나오는 전체 소스 코드는 깃허브의 저장소 주소로 대체하고, 이 분량을 좀 더 상세한 설명이 추가되었으면 어땠을까 하는 아쉬움이 조금 남습니다.
케라스와의 만남도 반가웠고, 이렇게 다양한 인공지능 방식을 구현한 내용을 볼 수 있게 된 것도 즐거웠던 기회였습니다. 인공지능을 빼놓고 요즘 세상을 얘기할 수 없을 만큼 대세로 자리 잡고 있는 시점에서 이 책이 조명을 받을 수 있는 좋은 시점이 아닐까 싶습니다.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

최근 접했던 책들 중에서 '가장 읽기 편했던 책'입니다. 각 신경망의 코드를 설명할 때, 코드 동작 순서대로 부분을 잘라내어 자세히 설명하고 있어 조각 맞추기 식의 학습이 가능합니다. 전체 코드를 제시하면서 주석이나 설명을 이어나가는 방식보다 해당 도서처럼 함수 단위로 잘라내어 설명을 하는 것이 학습양은 늘어날 수 있지만 디테일한 부분까지 이해할 수 있어 개인적으로 마음에 드는 부분이었습니다.
 
딥러닝을 처음 시작하는 분들에게는 초반에 조금 버거울 순 있으나 설명이 꼼꼼하게 되어있어 금방 적응할 수 있을 것이라 생각됩니다.
 
딥러닝에 관심을 가지고 학습을 시작하시는 분이라면 해당 도서로 케라스(Keras)의 매력에 빠져 보시는 것을 추천드립니다.

 

keras-deep-learning

케라스로 구현하는 딥러닝

In TensorFlow2

예제를 따라 하며 배우는 딥러닝 인공신경망

김성진 지음 / 한빛미디어

 

이 책의 대상 독자

이 책은 케라스로 주요 인공신경망인 ANN, DNN, CNN, RNN, AE, GAN, UNET, RL, QAI를 구현하는 방법을 알아본다.

인공지능과 딥러닝 인공신경망의 구현에 관심이 있는 누구나..

 

예제 소스

예제들은 파이썬으로 구현했다.

케라스 패키지를 활용하여 객체지향 방식으로 구현하고 라이브러리로 제공해 쉽게 재활용할 수 있다.

주피터용 예제도 제공하며,

모든 예제는 깃허브에서 내려 받을 수 있다

https://github.com/jskDr/keraspp_2022

이 책의 구성

이 책은 케라스를 이용해 딥러닝 인공신경망을 만들어 인공지능을 구현한다.

기본 편(0~8)과 심화 편(9~11)으로 구성되었다.

기본 편에서는 기본적인 인경신경망을 이해하고 구현하는 내용 학습

심화 편에서 응용을 포함하여 심화된 인공신경망 활용 방법 학습

 

기본 편

0  프롤로그

1장      케라스 시작하기

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

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

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

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

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

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

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

 

심화 편

9장      케라스 확장 기능

10장   케라스로 구현하는 RL(강화학습)

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

 

케라스로 구현하는 딥러닝은 인공지능의 한 가지 방식만을 깊이 다루기보다는 누구나 인공지능을 쉽게 익힐 수 있도록 다양한 기초 방법을 실습하여 딥러닝의 큰 크림을 그릴 수 있게 만들었다.

독자 옆에 앉아 빠르게 함께 코딩해가며 설명한다는 느낌이 들도록 했다. 코드는 설명 흐름에 맞춰 필요한 만큼씩 보여주며, ‘전체 코드를 마지막에 제시한다.

이론은 큰 그림을 이해할 정도로만 알려드리고, 코드도 세세한 부분까지 설명하지 않는다.

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

각 절의 마지막에는 주석이 거의 없는 전체 코드가 등장합니다

코드를 훑어보며 배운 걸 정리하고 제대로 이해했는지 점검해보시기 바랍니다.

 

저자는 말하고 있다.

AI는 이제 여러 모습으로 우리와 많은 관련을 맺고 있다. 떼고 싶어도 뗄 수 없는 동반자 같은 관계가 된 것이다. 이 시점에서 우리가 자문할 것은 AI의 유용성이 아니고, 바로 이 질문입니다.

“AI를 두려워하고 멈춰 서 있을 것인가? 아니면 AI와 함께 나아갈 것인가?”

결정하셨나요? 자 그럼 앞으로 나아가는 길을 선택한 현명한 당신의 충실한 길잡이가 되어 드리겠습니다.

 

 

다양한 현장 문제해결의 길목에서 어떠한 AI 알고리즘을 적용하여야 할까 고민하는 개발자라면 꼭 읽어보고 해결의 실마리를 찾아 보시길 빈다.

AI 프로젝트를 시작하기 전에 이론과 예제를 통하여 훈련할 수 있는 좋은 안내서로 강력 추천한다.

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

 

 

#케라스로 #구현하는 #딥러닝 #TensorFlow2 #예제를_따라하며 #배우는_딥러닝 #인공신경망

 

 

'케라스로 구현하는 딥러닝(한빛미디어)'는 책 제목 그대로 "구현"에 초점이 맞춰져 있는 책이다. 책에서는 간략하게 인공지능과 딥러닝 인공신경망의 개요를 알아본 후에, ANN, DNN, CNN, RNN, AE, GAN, UNET을 각각 케라스로 구현해볼 수 있도록 예시 코드를 제공한다.

이 책의 대상 독자는 "실습 중심으로 딥러닝에 대한 감을 익히고 빠르게 결과물을 내고 싶은 개발자에게 추천한다. 더불어 인공지능, 인공신경망 구현에 관심이 있다면 누구나 이 책의 대상 독자이다."라고 소개하고 있다. 사실 여기에 덧붙여서 기본적인 딥러닝에 대한 이해가 있는 상태에서 이 책을 읽는 것을 추천한다. 왜냐하면 개념적인 설명보다는 코드를 통한 실습이 중점적으로 다뤄지고 있기 때문이다.

그렇기 때문에 딥러닝의 기초는 이미 알고 있지만, 이를 코드로(특히 케라스로) 구현해보고 싶은 사람에게 이 책을 추천한다. 그리고 케라스를 다루기 때문에 파이썬에 대한 기본적인 활용을 할 수 있어야만 이 책을 더욱 효과적으로 받아들일 수 있을 것이다.

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

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
케라스로 구현하는 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
케라스로 구현하는 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
케라스로 구현하는 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실