책소개
예제를 따라 하며 배우는 딥러닝 인공신경망 이 책은 케라스로 인공신경망을 구현하는 방법을 알려준다. 복잡한 수식 없이 실무에 적용할 수 있는 실용적인 예제로 다양한 딥러닝 모델(ANN, DNN, CNN, RNN, AE, GAN, UNET, RL, QAI)을 다룬다. 인공신경망의 기본 개념부터 심화 기능, 강화학습, 양자인공지능까지 다양한 딥러닝 알고리즘을 맛볼 수 있다. 코드로 딥러닝에 대한 감을 익히고 빠르게 결과물을 만들고 싶은 분께 추천한다.
저자소개
초등학교 때 프로그래밍으로 도 대회에서 대상을 수상했다. 그때 열정을 살려 서울대학교 컴퓨터공학부에서 박사 학위를 받고 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 마치며