서브메뉴

본문

파이썬 날코딩으로 알고 짜는 딥러닝 (프레임워크 없이 단층 퍼셉트론에서 GAN까지)
파이썬 날코딩으로 알고 짜는 딥러닝 (프레임워크 없이 단층 퍼셉트론에서 GAN까지)
저자 : 윤덕호
출판사 : 한빛미디어
출판년 : 2019
ISBN : 9791162242001

책소개

인공 신경망 원리와 응용을
파이썬 날코딩으로 정말 깊이 이해하자!

이 책은 딥러닝 알고리즘의 원리를 깊숙이 이해하고 이를 파이썬 코딩만으로 구현하는 데 주안점을 둔다. 이를 위해 가장 간단한 신경망 구조부터 복잡한 응용 구조까지 다양한 딥러닝 신경망 예제의 실제 구현 과정을 소개한다. 그 과정에서 독자는 딥러닝 알고리즘을 텐서플로 같은 프레임워크 없이도 개발하는 능력을 갖추게 된다. 딥러닝 알고리즘을 깊이 이해하면 역설적으로 프레임워크를 이용할 때의 장단점을 더 확실히 알 수 있다. 나아가 자신만의 새로운 딥러닝 신경망을 개발하는 밑거름이 될 것이다.
[예스24에서 제공한 정보입니다.]

출판사 서평

난도는 중상 이상이다,
정말 깊은 이해를 원하는 대상 독자만 봐달라!
이 책의 대상 독자는 크게 두 부류다. 첫 번째는 텐서플로 같은 프레임워크를 사용해 딥러닝에 입문했지만 여전히 딥러닝 알고리즘의 동작 원리를 제대로 이해할 수 없어 답답함을 느끼는 기존 딥러닝 개발자다. 두 번째는 딥러닝을 새로 배워보려 하지만 기왕이면 수박 겉 핥기식 공부보다는 딥러닝 알고리즘을 제대로 이해하는 공부를 하고 싶은 딥러닝 입문자다.

프레임워크를 이용하지 않고,
파이썬 날코딩만으로 딥러닝 문제를 풀어보자!
이 책의 목표는 독자가 딥러닝 알고리즘의 원리를 깊이 있게 이해하여 활용 능력을 갖추도록 돕는 데 있다. 각 장은 이론을 제시한 후에 파이썬으로 예제 프로그램을 구현하고 실험을 수행하는 과정을 차근차근 소개한다. 이들 예제 프로그램을 꼼꼼하게 설명한다. 또한 실험 과정을 재현하고 변형해 활용하기 쉽게 구성했다. 예제 프로그램을 살펴보면서 그동안 편리한 프레임워크에 가려져 이해하지 못한 채 지나쳤던 딥러닝의 동작 원리를 확실하게 알게 된다. 이렇게 길러진 이해를 토대로 프레임워크 없이도 직접 딥러닝 신경망을 개발하는 능력을 갖추게 될 것이다. 동시에 역설적으로 숨은 동작 원리를 간파하게 됨으로써 프레임워크를 더 잘 이용하게 된다.


※ 이 책은 총 5부로 구성되어 있으며, 다루는 내용은 다음과 같다.

1부 : 단층 퍼셉트론
가장 간단한 신경망 구조인 단층 퍼셉트론 구조를 소개하면서 신경망 출력을 이용해 풀어야 할 세 가지 문제 유형의 해결 방법을 살펴본다. 1장에서는 전복 고리 수 추정 신경망 예제를 통해 ‘회귀 분석 문제’의 해결 방법을, 2장에서는 펄서 여부 판정 신경망 예제를 통해 ‘이진 판단 문제’의 해결 방법을, 3장에서는 철판의 불량 상태 분류 신경망 예제를 통하여 ‘선택 분류 문제’의 해결 방법을 각각 소개한다.

2부 : 다층 퍼셉트론
기본적이면서도 실전적인 다층 퍼셉트론 구조를 소개하면서 객체지향 모델 구조와 복합 출력의 처리 방법을 다룬다. 4장에서는 지금까지의 예제들을 다층 퍼셉트론으로 다시 풀어내며, 5장에서는 객체지향 구조로 프로그램을 재구성하면서 꽃 이미지 분류 신경망 예제를 소개한다. 6장에서는 오피스31 이미지의 다차원 분류 예제를 사용해 복합 출력을 다루는 방법을 살펴본다.

3부 : 합성곱 신경망
합성곱 신경망과 정규화 기법, 거대 심층 구조를 살펴보면서 은닉 계층 구성에 이용되는 12가지 계층의 기능과 구현 방법을 살펴본다. 7장에서는 이미지 처리에 특화된 합성곱 신경망에 이용되는 4가지 계층을 소개한다. 8장에서는 다섯 가지 정규화 기법을 살펴본다. 이 가운데 L1 손실 및 L2 손실을 가중치 학습 과정에 반영해 처리하는 과정을 소개한다. 또한 드롭아웃, 잡음 주입, 배치 정규화 기법을 각각 별도 계층으로 구현한다. 9장에서 인셉션 모델이나 레스넷 모델 같은 거대 심층 구조를 지원하는 5가지 복합 계층을 소개한다.

4부 : 순환 신경망
시간 축을 갖는 시계열 데이터 처리에 특화된 순환 신경망을 이용해 다양한 종류의 데이터를 다루는 과정을 살펴본다. 10장에서 오토마타 생성 문장 판별 신경망 예제와 함께 기본 구조의 순환 계층을 소개한 후, 11장에서 도시 소음 분류 신경망 예제와 함께 LSTM(long shortterm memory) 셸 구조의 개선된 순환 계층을 살펴본다. 12장에서는 동영상 장면 전환 프레임 판별 신경망 예제와 함께 시계열 출력을 다루는 방법을 다룬다.

5부 : 딥고급 응용 신경망 구조들
문제에 접근하는 새로운 시각을 보여주는 세 가지 딥러닝 응용 구조를 소개한다. 13장에서는 입력 재현을 목표로 삼는 방법으로 비지도학습에 활용하는 오토인코더, 14장에서는 콘텍스트 벡터를 매개로 입출력 간의 데이터 형태 차이를 극복하는 인코더-디코더, 15장에서는 경쟁 관계의 두 신경망을 이용해 데이터 생성 능력을 기르는 생성적 적대 신경망를 소개하고 각각 구체적 예제 프로그램을 제시한다.


※ 이 책을 먼저 만나본 사람들의 소감을 소개한다.

‘딥러닝’ 하면 개발자는 어떤 프레임워크를 쓸지를 제일 먼저 떠올릴 것입니다. 그런데 이 책은 케라스나 텐서플로와 같은 프레임워크를 사용하지 않고, 직접 신경망을 구현해보면서 딥러닝을 이해할 수 있게 구성되어 있습니다. 더불어 엠니스트 같은 기본적인 데이터부터 음성과 비디오와 문맥까지 활용해 예제를 진행하기 때문에 현업에 유용합니다. (다만 딥러닝을 처음 접해보는 사람에게 약간 어려울 만한 부분도 존재합니다. 논문이나 기반 지식이 더 소개되었다면 이해하는 데 더 도움이 되지 않았을까 하는 아쉬움이 있습니다.) 『밑바닥부터 시작하는 딥러닝』처럼 예제 위주로 진행하며 직접 성능을 개선시키는 점에서 여타 딥러닝 관련 서적과 차별점이 있다고 생각합니다.
_베타리더 강찬석 (LG전자)

시중에 동화책 같이 진입 장벽이 낮은 딥러닝 입문 책이 많습니다. 동화책을 건너뛰고 제대로 된 딥러닝 교과서를 원한다면 이 책은 최고의 바이블이 될 겁니다. 심도 있는 이론과 적절한 실제 데이터셋까지 제공해, 머신러닝 전문가를 꿈꾸는 사람이라면 만족스러운 책이 될 겁니다.
_베타리더 다람쥐

이 책은 딥러닝 프레임워크 없이 신경망을 구현하여 딥러닝을 제대로 이해하는 데 그 취지가 있습니다. 좋은 프레임워크가 많아 굳이 파이썬 날코딩을 할 이유를 못 느낄 수도 있지만, 프레임워크만 쓰면 오히려 원리를 모른 채 코드만 실행시키는 형편없는 모델러가 될 수 있습니다. 그런 의미에서 이 책이 매우 반가웠습니다. 한 줄 한 줄 쉽게 풀어서 설명하려는 의도가 보여 매우 읽기 편했고 딥러닝의 원리를 조금이나마 들여다볼 수 있었습니다.
_베타리더 박규리 (딥러닝 모델러)

출간된 범인공지능 도서 중에 현업에 가장 가까워 보이는 책이라고 생각됩니다. 술술 읽히는 가벼운 책은 아닙니다. 책의 전반에 걸쳐 캐글 예제를 다루고 있기 때문에 머신러닝의 기본 개념이나 용어 등 어느 정도 배경지식을 갖춘 입문 단계 독자에게 중급으로 넘어가는 좋은 길라잡이가 될 것입니다.
_베타리더 백재연

딥러닝을 처음 접하는 사람이 가벼운 마음으로 읽고 이해하기는 어려운 책입니다. 이 책은 다루는 주제의 배경지식이나 관련 내용을 세세하게 설명합니다. 이 책의 가장 중요한 기저는 프레임워크나 라이브러리 API를 이용하지 않고 직접 구현한다는 점입니다. 딥러닝 기술을 더 잘 이해하고, 단순 딥러닝 기술 사용자가 아니라 자신만의 문제에 활용하고 응용하려는 분께 추천합니다.
_베타리더 사지원

딥러닝을 하려면 알고리즘을 잘 알아야 합니다. 하지만 딥러닝 프레임워크에서 다 처리해주기 때문에 깊게 공부하지 않아도 딥러닝을 사용할 수는 있습니다. 그렇지만 딥러닝에 더 깊게 들어가면 한계에 부딪치게 됩니다. 이 책은 프레임워크 없이 파이썬 코드로 기존 프레임워크에서 채워주지 못하는 더 깊은 내용을 알려줍니다. 머신러닝과 딥러닝 지식과 파이썬 문법을 조금 알고 있다면 이 책을 읽기가 좀 더 수월할 겁니다. 딥러닝 알고리즘 원리와 각종 신경망 특성을 깊게 공부하고 싶은 분들에게 좋은 교재가 될 것이라 생각합니다.
_베타리더 이석곤 (엔컴)

새로운 분야를 공부하는 효과적인 방법 중 한 가지는 처음부터 한 땀 한 땀 구현해보는 겁니다. 시중에 다양한 라이브러리가 나와 있고 현업에서도 많이 사용하지만 알고리즘에 대한 이해 없이 사용하는 것은 위험합니다. 라이브러리 사용한다고 알고리즘 자체를 이해하고 있는 것은 아닐 수 있기 때문입니다. 이 책은 단층 신경망부터 순환 신경망까지 단계적으로 제공합니다. 단계별 접근이 초보자가 알고리즘을 이해하는 데 많은 도움이 될 겁니다. 알고리즘을 한 땀 한 땀 구현하면서 딥러닝의 원리를 이해할 수 있도록 구성되어 있습니다. 초보자와 입문자에게 딥러닝을 공부하는 좋은 안내서가 될 거라고 생각합니다.
_베타리더 이형도 (엠티콤)

딥러닝에 있어서 파이썬이 필수라고 해도 과언이 아니죠, 워낙 프레임워크들이 잘 되어 있어 굳이 알고리즘을 몰라도 잘 가져다가 쓰면 딥러닝 알고리즘을 구현할 수 있습니다. 하지만 더 깊게 다가가려면 한계에 부딪히죠. 그런 한계와 답답함을 이 책이 어느 정도 풀어준다고 생각합니다. 프레임워크를 쓰지 않고 퍼셉트론, 인공 신경망 원리 등을 날코딩으로 깊이 이해할 수 있습니다. 기존 도서가 프레임워크 활용법을 알려주는 데 반해 이 책은 더 깊은 이해를 제공해 좋았습니다. 다만 용어와 원리를 이해하는 데 시간이 걸렸습니다. 딥러닝 원리를 깊이 이해하고 싶으신 분에게는 딱 알맞은 책이라고 할 수 있습니다.
_베타리더 허헌 (리걸테크)
[예스24에서 제공한 정보입니다.]

목차정보

CHAPTER 0 들어가기
0.1 이 책의 구성
0.2 인공지능과 머신러닝, 딥러닝
0.3 동물의 신경세포, 뉴런
0.4 인공 신경망의 기본 유닛, 퍼셉트론
0.5 딥러닝을 위한 수학
0.6 예제 실습 환경 소개
0.7 마치며

[ PART I 단층 퍼셉트론(SLP) ]

CHAPTER 1 회귀 분석 : 전복의 고리 수 추정 신경망
1.1 단층 퍼셉트론 신경망 구조
1.2 텐서 연산과 미니배치의 활용
1.3 신경망의 세 가지 기본 출력 유형과 회귀 분석
1.4 전복의 고리 수 추정 문제
1.5 회귀 분석과 평균제곱오차(MSE) 손실 함수
1.6 경사하강법과 역전파
1.7 편미분과 손실 기울기의 계산
1.8 하이퍼파라미터
1.9 비선형 정보와 원-핫 벡터 표현
1.10 구현하기 : 전복 고리 수 추정 신경망
1.11 실행하기
1.12 마치며

CHAPTER 2 이진 판단 : 천체의 펄서 여부 판정 신경망
2.1 펄서 판정 문제
2.2 이진 판단 문제의 신경망 처리
2.3 시그모이드 함수
2.4 확률 분포와 정보 엔트로피
2.5 확률 분포의 추정과 교차 엔트로피
2.6 딥러닝 학습에서의 교차 엔트로피
2.7 시그모이드 교차 엔트로피와 편미분
2.8 계산값 폭주 문제와 시그모이드 관련 함수의 안전한 계산법
2.9 구현하기 : 펄서 여부 판정 신경망
2.10 실행하기
2.11 확장하기 : 균형 잡힌 데이터셋과 착시 없는 평가 방법
2.12 실행하기 : 확장된 펄서 여부 판정 신경망
2.13 마치며

CHAPTER 3 선택 분류 : 철판 불량 상태 분류 신경망
3.1 불량 철판 판별 문제
3.2 선택 분류 문제의 신경망 처리
3.3 소프트맥스 함수
3.4 소프트맥스 함수의 편미분
3.5 소프트맥스 교차 엔트로피
3.6 소프트맥스 교차 엔트로피의 편미분
3.7 시그모이드 함수와 소프트맥스 함수의 관계
3.8 구현하기 : 불량 철판 판별 신경망
3.9 실행하기
3.10 마치며

[ PART II 다층 퍼셉트론(MLP ]

CHAPTER 4 다층 퍼셉트론 기본 구조 : 세 가지 신경망의 재구성
4.1 다층 퍼셉트론 신경망 구조
4.2 은닉 계층의 수와 폭
4.3 비선형 활성화 함수
4.4 ReLU 함수
4.5 민스키의 XOR 문제와 비선형 활성화 함수
4.6 구현하기 : 다층 퍼셉트론 신경망 지원 함수
4.7 실행하기
4.8 마치며

CHAPTER 5 다층 퍼셉트론 모델 구조 : 꽃 이미지 분류 신경망
5.1 다층 퍼셉트론을 위한 클래스 설계
5.2 데이터 분할 : 학습, 검증, 평가
5.3 시각화
5.4 이미지 분류 문제와 꽃 이미지 분류 데이터셋
5.5 구현하기 : 모델 클래스
5.6 구현하기 : 데이터셋 클래스
5.7 구현하기 : 네 가지 데이터셋 파생 클래스
5.8 구현하기 : 꽃 이미지 분류 데이터셋 클래스
5.9 구현하기 : 수학 연산과 각종 부수적 기능
5.10 실행하기
5.11 마치며

CHAPTER 6 복합 출력의 처리 방법 : 오피스31 다차원 분류 신경망
6.1 오피스31 데이터셋과 다차원 분류
6.2 딥러닝에서의 복합 출력의 학습법
6.3 복합 출력을 위한 MlpModel 클래스와 Dataset 클래스의 역할
6.4 아담 알고리즘
6.5 구현하기 : 아담 모델 클래스
6.6 구현하기 : 오피스31 데이터셋 클래스
6.7 실행하기
6.8 마치며

[ PART III 합성곱 신경망(CNN) ]

CHAPTER 7 간단한 합성곱 모델 : 꽃 이미지 분류 신경망
7.1 다층 퍼셉트론의 문제점과 새로운 구조의 필요성
7.2 합성곱 계층
7.3 합성곱 연산의 패딩과 건너뛰기
7.4 풀링 계층
7.5 채널의 도입과 커널의 확장
7.6 합성곱과 풀링의 역전파 처리
7.7 합성곱 신경망의 일반적인 구성
7.8 세 가지 합성곱 연산 방법
7.9 다양한 계층의 처리를 위한 모델 확장
7.10 구현하기 : 간단한 합성곱 신경망 클래스
7.11 실행하기
7.12 마치며

CHAPTER 8 다섯 가지 정규화 확장 : 꽃 이미지 분류 신경망
8.1 부적합과 과적합
8.2 L2 손실
8.3 L1 손실
8.4 드롭아웃
8.5 잡음 주입
8.6 배치 정규화
8.7 정규화 기법 도입을 위한 계층의 추가
8.8 구현하기 : 정규화 확장 클래스
8.9 실행하기
8.10 마치며

CHAPTER 9 인셉션 모델과 레스넷 모델 : 꽃 이미지 분류 신경망
9.1 인셉션 모델
9.2 레스넷 모델
9.3 인셉션 모델과 레스넷 모델 구현을 위해 필요한 확장들
9.4 구현하기 : 확장된 합성곱 신경망 모델 클래스
9.5 구현하기 : 더미 데이터셋 클래스
9.6 실행하기 : 인셉션 모델
9.7 실행하기 : 레스넷 모델
9.8 마치며

[ PART IV 순환 신경망(RNN) ]

CHAPTER 10 기본 셀 순환 신경망 : 오토마타 문장 판별 신경망
10.1 시계열 데이터
10.2 순환 계층과 순환 벡터의 활용
10.3 순환 계층의 입출력 형태
10.4 순환 계층을 위한 시계열 데이터의 표현
10.5 순환 계층의 순전파와 역전파 처리
10.6 오토마타를 이용한 수식 표현의 생성과 검사
10.7 구현하기 : 간단한 순환 신경망 클래스
10.8 구현하기 : 오토마타 데이터셋
10.9 실행하기
10.10 마치며

CHAPTER 11 LSTM 순환 신경망 : 도시 소음 분류 신경망
11.1 순환 벡터와 기울기 정보의 소멸 및 폭주
11.2 LSTM의 구조와 동작 방식
11.3 쌍곡탄젠트 함수
11.4 LSTM 계층의 순전파와 역전파 처리
11.5 주파수 스펙트럼 분석을 이용한 음원 처리
11.6 음원 분류 데이터셋
11.7 구현하기 : LSTM 신경망 클래스
11.8 구현하기 : 음원 분류 데이터셋
11.9 실행하기
11.10 마치며

CHAPTER 12 CNN과 RNN의 결합 : 장면 전환 판별 신경망
12.1 비순환 계층에서의 시계열 데이터 처리
12.2 동영상 처리를 위한 합성곱 신경망과 순환 신경망의 결합
12.3 출력 계층과 후처리 단계에서의 시계열 데이터 처리
12.4 장면 전환 데이터셋
12.5 실행 부담을 줄이는 방법들
12.6 구현하기 : 확장된 순환 신경망 클래스
12.7 구현하기 : 장면 전환 데이터셋
12.8 실행하기
12.9 마치며

[ PART V 고급 응용 신경망 구조들 ]

CHAPTER 13 오토인코더 : 엠니스트 이미지 재현 및 분류 신경망
13.1 오토인코더의 구조
13.2 지도학습과 비지도학습
13.3 잡음 제거용 오토인코더
13.4 유사 이진 코드 생성과 시맨틱 해싱
13.5 지도학습이 추가된 확장 오토인코더 모델
13.6 확장 인코더 모델을 위한 엠니스트 데이터셋
13.7 구현하기 : 확장 오토인코더 모델 클래스
13.8 구현하기 : 오토인코더를 위한 엠니스트 데이터셋
13.9 실행하기
13.10 마치며

CHAPTER 14 인코더-디코더 : 엠니스트 이미지 숫자 읽기 신경망
14.1 인코더-디코더의 구조
14.2 인코더-디코더와 언어 처리
14.3 필기체 숫자 이미지를 영어로 읽기
14.4 필기체 숫자 이미지열을 한글로 읽기
14.5 인코더-디코더의 분리 학습 문제
14.6 구현하기 : 인코더-디코더 모델 클래스
14.7 구현하기 : 인코더-디코더를 위한 엠니스트 데이터셋
14.8 실행하기
14.9 마치며

CHAPTER 15 생성적 적대 신경망 : 회화 및 숫자 이미지 생성 신경망
15.1 생성적 적대 신경망의 구조
15.2 생성적 적대 신경망과 데이터 생성
15.3 생성적 적대 신경망의 순전파와 역전파 처리
15.4 구현하기 : 생성적 적대 신경망 모델 클래스
15.5 구현하기 : 생성적 적대 신경망을 위한 데이터셋
15.6 실행하기
15.7 마치며
[예스24에서 제공한 정보입니다.]

QuickMenu

  • TOP