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

한빛출판네트워크

밑바닥부터 시작하는 딥러닝

파이썬으로 익히는 딥러닝 이론과 구현

한빛미디어

번역서

판매중

  • 저자 : 사이토 고키
  • 번역 : 개앞맵시(이복연)
  • 출간 : 2017-01-03
  • 페이지 : 312 쪽
  • ISBN : 9788968484636
  • 물류코드 :2463
초급 초중급 중급 중고급 고급
5점 (6명)
좋아요 : 1151

직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서 

 

이 책은 라이브러리나 프레임워크에 의존하지 않고, 딥러닝의 핵심을 ‘밑바닥부터’ 직접 만들어보며 즐겁게 배울 수 있는 본격 딥러닝 입문서입니다. 술술 읽힐 만큼 쉽게 설명하였고, 역전파처럼 어려운 내용은 ‘계산 그래프’ 기법으로 시각적으로 풀이했습니다. 무엇보다 작동하는 코드가 있어 직접 돌려보고 요리조리 수정해보면 어려운 이론도 명확하게 이해할 수 있습니다. 딥러닝에 새롭게 입문하려는 분과 기초를 다시금 정리하고 싶은 현업 연구자와 개발자에게 최고의 책이 될 것입니다.

 

★ 누구를 위한 책인가?

_ 외부 라이브러리는 최소한만 이용하고 파이썬을 사용해 딥러닝 프로그램을 처음부터 구현합니다.

_ 파이썬이 처음인 사람도 이해할 수 있도록 파이썬 사용법도 간략히 설명합니다.

_ 실제 동작하는 파이썬 코드와 독자가 직접 실험할 수 있는 학습 환경을 제공합니다.

_ 간단한 기계학습 문제부터 시작하여 궁극에는 이미지를 정확하게 인식하는 시스템을 구현합니다.

_ 딥러닝과 신경망 이론을 알기 쉽게 설명합니다.

_ 오차역전파법(backpropagation)과 합성곱(convolution) 연산 등 복잡해 보이는 기술을 구현 수준에서 이해할 수 있도록 설명합니다.

_ 하이퍼파라미터 결정 방식, 가중치 초깃값 등 딥러닝을 활용하는 데 도움이 되는 실용적인 기술을 소개합니다.

_ 배치 정규화, 드롭아웃, Adam 같은 최근 트렌드를 설명하고 구현해봅니다.

_ 딥러닝이 왜 뛰어난지, 층이 깊어지면 왜 정확도가 높아지는지, 은닉층이 왜 중요한지와 같은 ‘왜’에 관한 문제도 다룹니다.

_ 자율 주행, 이미지 생성, 강화학습 등, 딥러닝을 응용한 예를 소개합니다.

 

★ 누구를 위한 책이 아닌가?

_ 딥러닝 분야의 최신 연구에 대해서는 자세히 다루지 않습니다.

_ 카페(Caffe), 텐서플로(TensorFlow), 체이너(Chainer) 등의 딥러닝 프레임워크 사용법은 설명하지 않습니다.

_ 딥러닝, 특히 신경망에 관한 아주 상세한 이론까지는 담지 않았습니다.

_ 딥러닝의 정확도를 높이기 위한 튜닝은 자세히 설명하지 않습니다.

_ 딥러닝 성능을 높여주는 GPU 기술은 구체적으로 다루지 않습니다.

_ 주로 이미지 인식을 다룹니다. 자연어 처리, 음성 인식 등의 사례는 다루지 않습니다.

 

저자

사이토 고키

1984년 나가사키 현 쓰시마 태생. 도쿄공업대학교 공학부를 졸업하고 도쿄대학대학원 학제정보학부 석사 과정을 수료했다. 현재는 기업에서 컴퓨터 비전과 기계학습 관련 연구·개발에 매진하고 있다. 오라일리재팬에서 『실천 파이썬 3』, 『컴퓨터 시스템의 이론과 구현』, 『실천 기계학습 시스템』 등을 번역했다.

역자

개앞맵시(이복연)

고려대학교 컴퓨터학과를 졸업하고 삼성소프트웨어멤버십을 거쳐, 삼성전자 소프트웨어센터와 미디어솔루션센터에서 자바 가상 머신, 바다 플랫폼, 챗온 메신저 서비스 등을 개발했다. 주 업무 외에 분산 빌드, 지속적 통합, 앱 수명주기 관리 도구, 애자일 도입 등 동료 개발자들에게 실질적인 도움을 주는 일에 적극적이었다. 그 후 창업 전선에 뛰어들어 소셜 서비스, 금융 거래 프레임워크 등을 개발하다가, 무슨 바람이 불어서인지 책을 만들겠다며 기획·편집자(자칭 Wisdom Compiler)로 변신했다.

『Effective Unit Testing』(한빛미디어, 2013)과 『JUnit 인 액션』(인사이트, 2011)을 번역했다.

 

<개발자의 앞길에 맵핵 시전>, 줄여서 ‘개앞맵시’는 역자가 어려서부터 생각한 후학 양성의 꿈을 조금 독특한 방식으로 일찍 실행에 옮긴 것이다. 현재 모습은 게임, 서버, 웹 등 주요 직군별 개발자에게 꼭 필요한 기술과 역량을 안내하는 책들을 로드맵 형태로 정리한 지도다. 필요할 때 바로 구해볼 수 있도록 판매 중인 도서만을 다룬다.

 

페이스북 | 로드맵 모음 | 스카이넷도 딥러닝부터 

 

1장 헬로 파이썬

1.1 파이썬이란?

1.2 파이썬 설치하기

__1.2.1 파이썬 버전

__1.2.2 사용하는 외부 라이브러리

__1.2.3 아나콘다 배포판

1.3 파이썬 인터프리터 

__1.3.1 산술 연산 

__1.3.2 자료형 

__1.3.3 변수 

__1.3.4 리스트 

__1.3.5 딕셔너리

__1.3.6 bool 

__1.3.7 if 문 

__1.3.8 for 문 

__1.3.9 함수 

1.4 파이썬 스크립트 파일 

__1.4.1 파일로 저장하기 

__1.4.2 클래스 

1.5 넘파이 

__1.5.1 넘파이 가져오기 

__1.5.2 넘파이 배열 생성하기 

__1.5.3 넘파이의 산술 연산 

__1.5.4 넘파이의 N차원 배열 

__1.5.5 브로드캐스트 

__1.5.6 원소 접근 

1.6 matplotlib 

__1.6.1 단순한 그래프 그리기 

__1.6.2 pyplot의 기능 

__1.6.3 이미지 표시하기 

1.7 정리 

 

2장 퍼셉트론

2.1 퍼셉트론이란? 

2.2 단순한 논리 회로 

__2.2.1 AND 게이트 

__2.2.2 NAND 게이트와 OR 게이트 

2.3 퍼셉트론 구현하기 

__2.3.1 간단한 구현부터 

__2.3.2 가중치와 편향 도입 

__2.3.3 가중치와 편향 구현하기 

2.4 퍼셉트론의 한계 

__2.4.1 도전! XOR 게이트 

__2.4.2 선형과 비선형 

2.5 다층 퍼셉트론이 출동한다면 

__2.5.1 기존 게이트 조합하기 

__2.5.2 XOR 게이트 구현하기 

2.6 NAND에서 컴퓨터까지 

2.7 정리 

 

3장 신경망

3.1 퍼셉트론에서 신경망으로 

__3.1.1 신경망의 예 

__3.1.2 퍼셉트론 복습 

__3.1.3 활성화 함수의 등장 

3.2 활성화 함수 

__3.2.1 시그모이드 함수 

__3.2.2 계단 함수 구현하기 

__3.2.3 계단 함수의 그래프 

__3.2.4 시그모이드 함수 구현하기 

__3.2.5 시그모이드 함수와 계단 함수 비교 

__3.2.6 비선형 함수 

__3.2.7 ReLU 함수 

3.3 다차원 배열의 계산 

__3.3.1 다차원 배열 

__3.3.2 행렬의 내적 

__3.3.3 신경망의 내적 

3.4 3층 신경망 구현하기 

__3.4.1 표기법 설명 

__3.4.2 각 층의 신호 전달 구현하기 

__3.4.3 구현 정리 

3.5 출력층 설계하기 

__3.5.1 항등 함수와 소프트맥스 함수 구현하기 

__3.5.2 소프트맥스 함수 구현 시 주의점 

__3.5.3 소프트맥스 함수의 특징 

__3.5.4 출력층의 뉴런 수 정하기

3.6 손글씨 숫자 인식 

__3.6.1 MNIST 데이터셋 

__3.6.2 신경망의 추론 처리 

__3.6.3 배치 처리 

3.7 정리 

 

4장 신경망 학습

4.1 데이터에서 학습한다! 

__4.1.1 데이터 주도 학습 

__4.1.2 훈련 데이터와 시험 데이터 

4.2 손실 함수 

__4.2.1 평균 제곱 오차 

__4.2.2 교차 엔트로피 오차 

__4.2.3 미니배치 학습 

__4.2.4 (배치용) 교차 엔트로피 오차 구현하기 

__4.2.5 왜 손실 함수를 설정하는가? 

4.3 수치 미분 

__4.3.1 미분 

__4.3.2 수치 미분의 예 

__4.3.3 편미분 

4.4 기울기 

__4.4.1 경사법(경사 하강법) 

__4.4.2 신경망에서의 기울기 

4.5 학습 알고리즘 구현하기 

__4.5.1 2층 신경망 클래스 구현하기

__4.5.2 미니배치 학습 구현하기 

__4.5.3 시험 데이터로 평가하기 

4.6 정리 

 

5장 오차역전파법

5.1 계산 그래프 

__5.1.1 계산 그래프로 풀다 

__5.1.2 국소적 계산 

__5.1.3 왜 계산 그래프로 푸는가? 

5.2 연쇄법칙 

__5.2.1 계산 그래프에서의 역전파 

__5.2.2 연쇄법칙이란? 

__5.2.3 연쇄법칙과 계산 그래프 

5.3 역전파 

__5.3.1 덧셈 노드의 역전파 

__5.3.2 곱셈 노드의 역전파 

__5.3.3 사과 쇼핑의 예 

5.4 단순한 계층 구현하기 

__5.4.1 곱셈 계층 

__5.4.2 덧셈 계층 

5.5 활성화 함수 계층 구현하기 

__5.5.1 ReLU 계층 

__5.5.2 Sigmoid 계층 

5.6 Affine/Softmax 계층 구현하기 

__5.6.1 Affine 계층 

__5.6.2 배치용 Affine 계층 

__5.6.3 Softmax-with-Loss 계층 

5.7 오차역전파법 구현하기 

__5.7.1 신경망 학습의 전체 그림 

__5.7.2 오차역전파법을 적용한 신경망 구현하기 

__5.7.3 오차역전파법으로 구한 기울기 검증하기 

__5.7.4 오차역전파법을 사용한 학습 구현하기

5.8 정리 

 

6장 학습 관련 기술들

6.1 매개변수 갱신 

__6.1.1 모험가 이야기 

__6.1.2 확률적 경사 하강법(SGD) 

__6.1.3 SGD의 단점 

__6.1.4 모멘텀 

__6.1.5 AdaGrad 

__6.1.6 Adam 

__6.1.7 어느 갱신 방법을 이용할 것인가? 

__6.1.8 MNIST 데이터셋으로 본 갱신 방법 비교 

6.2 가중치의 초깃값 

__6.2.1 초깃값을 0으로 하면? 

__6.2.2 은닉층의 활성화 분포 

__6.2.3 ReLU를 사용할 때의 가중치 초깃값 

__6.2.4 MNIST 데이터셋으로 본 가중치 초깃값 비교 

6.3 배치 정규화 

__6.3.1 배치 정규화 알고리즘 

__6.3.2 배치 정규화의 효과 

6.4 바른 학습을 위해 

__6.4.1 오버피팅 

__6.4.2 가중치 감소 

__6.4.3 드롭아웃 

6.5 적절한 하이퍼파라미터 값 찾기 

__6.5.1 검증 데이터 

__6.5.2 하이퍼파라미터 최적화 

__6.5.3 하이퍼파라미터 최적화 구현하기 

6.6 정리 

 

7장 합성곱 신경망(CNN)

7.1 전체 구조 

7.2 합성곱 계층 

__7.2.1 완전연결 계층의 문제점 

__7.2.2 합성곱 연산 

__7.2.3 패딩 

__7.2.4 스트라이드 

__7.2.5 3차원 데이터의 합성곱 연산 

__7.2.6 블록으로 생각하기 

__7.2.7 배치 처리 

7.3 풀링 계층 

__7.3.1 풀링 계층의 특징 

7.4 합성곱/풀링 계층 구현하기 

__7.4.1 4차원 배열 

__7.4.2 im2col로 데이터 전개하기 

__7.4.3 합성곱 계층 구현하기 

__7.4.4 풀링 계층 구현하기 

7.5 CNN 구현하기 

7.6 CNN 시각화하기 

__7.6.1 1번째 층의 가중치 시각화하기 

__7.6.2 층 깊이에 따른 추출 정보 변화 

7.7 대표적인 CNN 

__7.7.1 LeNet 

__7.7.2 AlexNet 

7.8 정리 

 

8장 딥러닝

8.1 더 깊게 

__8.1.1 더 깊은 네트워크로 

__8.1.2 정확도를 더 높이려면 

__8.1.3 깊게 하는 이유 

8.2 딥러닝의 초기 역사 

__8.2.1 이미지넷 

__8.2.2 VGG 

__8.2.3 GoogLeNet 

__8.2.4 ResNet 

8.3 더 빠르게(딥러닝 고속화) 

__8.3.1 풀어야 할 숙제 

__8.3.2 GPU를 활용한 고속화 

__8.3.3 분산 학습 

__8.3.4 연산 정밀도와 비트 줄이기 

8.4 딥러닝의 활용 

__8.4.1 사물 검출 

__8.4.2 분할 

__8.4.3 사진 캡션 생성 

8.5 딥러닝의 미래 

__8.5.1 이미지 스타일(화풍) 변환 

__8.5.2 이미지 생성 

__8.5.3 자율 주행 

__8.5.4 Deep Q-Network(강화학습) 

8.6 정리 

 

부록 A Softmax-with-Loss 계층의 계산 그래프

A.1 순전파 

A.2 역전파 

A.3 정리 

참고문헌 

파이썬으로 익히는 딥러닝 이론과 구현

 

새로운 지식을 배울 때 설명만 들어서는 석연치 않거나 금방 잊어버리게 됩니다. 그래서 무엇보다 ‘직접 해보는 것’이 중요합니다.

이 책은 딥러닝의 기본을 ‘이론 설명’과 ‘파이썬 구현 코드’라는 투 트랙으로 설명합니다. 각 장은 주제 하나를 설명한 후 그것을 실습할 수 있도록 꾸몄습니다. 즉, 실행되는 소스 코드를 준비했습니다. 직접 실행해보세요! 소스 코드를 읽으면서 스스로 생각하고 그 생각을 반영해 실험하다 보면 확실하게 자기 것으로 만들 수 있습니다. 여러 실험을 해보면서 겪는 시행착오 역시 큰 자산이 될 것입니다.

  • 다른 머신러닝/딥러닝 입문서를 읽어보면 이책이 얼마나 잘 쓴책인지 알 수 있음!!

  • 딥러닝 스터디를 하면서 관련 서적이나 온라인 자료를 많이 접하고 있다. 이전에 한빛미디어의 이벤트에 응모한 적이 있는데 생각지도 않게 이벤트에 당첨이 되어 책을 몇 권 받게 되었다. 그 중 한권이 바로 이 책이다. TensorFlow를 이용하면 딥러닝을 정말 믿을 수 없이 간단하게 구성할 수 있지만, 공대생이라면 추상화된 라이브러리 뒤에서 어떠 일이 일어나고 있는지 궁금하기 마련이다. 이 책은 그런 궁금증이 있는 사람들을 위한 책이다. 머신 러닝 입문자라면, 딥러닝 첫걸음, 김성훈 교수님의 모두를 위한 머신러닝을 배운 뒤에 읽으면 좋을 것 같다.

    나는 책을 읽을 때 머릿말을 꼭 먼저 읽는 편인데, 저자와 역자의 의도나 책의 구성에 대해서 이해할 수 있기 때문이다. 역자가 정말 친절하다. 딥러닝 분야에서 용어 간 번역에 대해 통일된 것이 아직 없는데, 역자가 친절히 용어정리를 해서 제공하고 있다. 그리고 중요한 용어의 경우는 역자가 각주를 달아 다른 문헌에서는 어떻게 번역하고 있는지 알려준다. 이뿐만 아니라, 딥러닝을 배우는데 도움이 되는 로드맵도 제공하고 있다. ‘딥러닝 첫걸음’을 읽으면서 불만이었던 부분을 해소해주고 있어서 정말 마음에 드는 부분이었다.

    이 책은 입문서로서는 상당히 자세하게 이론에 대해서 설명하고 있다. 특히, 6장에서는 학습 관련 기술들을 소개하고 있는데 매개변수 최적화 방법(SGD, Momentum, AdaGrad, Adam), 매개변수 초기화 방법(Xavier, He method), 오버피팅 방지법(Weight decay, drop-out), 하이퍼파라미터 최적화 방법 네가지로 분류하여 직관적으로 이해할 수 있도록 설명하고 있다. 더 구체적인 설명은 레퍼런스 논문들을 참고하면 될 것 같다.

    매개변수 최적화 방식 비교

    가장 마음에 들었던 챕터는 5장이다. Backpropagation 방법을 그래프 계산으로 설명하고 있는데 편미분으로 식을 유도하는 것보다 쉽고 재미있었다. 식이 복잡해도 ‘국소적 연산’이라는 것에 주목하면 Backpropagation을 쉽게 유도해낼 수 있다는 것이 인상적이었다. TensorFlow의 신경망은 TensorBoard를 통해 시각화하여 확인할 수 있는데, 이 신경망의 모습이 Graph 계산식의 모습과 유사했다. 이 둘을 비교하며 공부하면 더 재미있을 것이다.

    그래프 계산식 예제

    TensorBoard를 통해 시각화한 신경망

    마지막 장인 8장에서는 Vision분야의 응용기술 및 최신 머신러닝 트렌드를 소개한다. 학습자와 평가자 두 모델을 경쟁적으로 학습시키는 기술(DCGAN)이 인상적이었다. 예제로 침실 이미지를 생성해주는 신경망이 나왔는데, 실제로 존재하는 장소라고 믿을만큼 그럴듯한 결과가 나왔다. 기존 머신러닝에서 허들이 되는 부분 중 하나가 대량의 정답셋 생성이었는데, 이 분야가 잘 연구된다면 머신러닝이 더 부흥하게 될 것 같다.

    이 책은 ‘진지한’ 학습자를 위한 딥러닝 입문서이다. 이 책을 읽기 전에 머신러닝에 대해 나름 잘 알고있다고 착각하고 있었다. 배우면 배울수록 모르는게 많아진다는 것을 새삼 느끼게 해주는 책이었다. 딥러닝을 배우고자 하는 모든 사람들에게 추천해주고 싶다.

    #밑바닥부터 시작하는 딥러닝 #딥러닝 #딥러닝 책 추천

  • 자율주행 자동차에 있어서 이미지 인식은 아주 중요합니다. 따라서 저자가 이것만 강조하여 빠르게 배울 수 있는 포인트를 선정하는 것은 정말 좋은 선택과 집중의 묘미가 있습니다.

     

    얇은 책을 먼저 반복해서 공부하는 것은, 효율적인 방법이 될 만하다고 하죠. 딱 딥러닝 분야에서 이 책은 그런 역할읗 잘 보여 줍니다. 정말 인공지능 뉴스가 하루라도 빠지지 않습니다. 마치 처음 인터넷이 등장하고 윈도우95가 등장하던 그런 때가 생각납니다. 그보다는 더욱 더 파괴적인 영향력을 끼칠 것 같습니다. 그래서 미루고 미룬 딥러닝 공부라면 딱 이 책부터 해보면 시간도 절약하고 전체적인 흐름을 좀 더 깊이있게 알게 됩니다. 다른 사람에게 듣는 딥러닝은 한계가 있습니다. 그래서 직접 열공 성공하는 길은 당연히 스스로 해보는 것이죠. 

     

    파이썬 기초부터 다루고 있습니다. 넘파이, matplotlib도 다루면서 파이썬 데이터분석을 빠르게 경험합니다. 파이썬을 처음 접하는 분들도 배려하고 있습니다. 

     

    퍼셉트론 / 신경망 / 신경망 학습 / 오차역전파법 / 합성곱 신경망 / 딥러닝 

    이렇게 알짜로만 배우기 위해 조금만 노력하면 되는 것이죠. 그렇게 흥미롭고 보람을 얻을 만한 시간을 이 작은 책, 얇은 책에서 경험할 수 있습니다. 물론 이미 잘 알려진 것처럼 이 분야는 수학을 새롭게 다시 공부하는 각오가 있어야 한다고 그렇죠. 당연히 인공지능적이라면 수학이 필요하겠죠. 물론 딥러닝 학습이라는 목적성을 위해 일단 빠르게 경험하는 것조차 행운입니다.

     

    물론 저자는 특별히 "누구를 위한 책이 아닌가" 언급하면서 시작합니다. 즉, 딥러닝 분야 최신 연구, 상세한 이론, 튜닝, GPU 기술을 다루지 않고 자연어 처리, 음성 인식 등의 사례도 커버하지 않는다고 합니다. 이미지 인식은 그래도 굉장한 분야이죠. 그래서 일단 시작해보자. 그렇게 마음을 먹을 수 있습니다. 딥러닝 그 넘사벽이 완만한 동산 같이 느껴질 것입니다. 언제라도 마음 먹고 딱 주말 짧은 시간이라도 노력하면 어렵지 않게 완독을 할 것입니다. 

     

    그래서 저자에게 경의를 표하게 됩니다. 우리에게 정말 필요한 기술을 아주 쉽게 알려 주니 말이죠!!!

  •  

    딥러닝이란 자동차를 만들기위해 바퀴부터 만들어볼까!!!!

     

    이 책을 비롯해 '밑바닥부터 시작하는/배우는...' 이란 키워드가 들어있는 책을 보면 드는 생각입니다. 

     

    저의 개인적 성향일수도 있지만 아마 많은 분들도 이런 '밑바닥부터...'란 컨셉을 좋아하실 것 같습니다.

    데이터 분석과 머신러닝의 수요와 관심이 높아졌고 이를 사용하기위한 기술적 진입장벽을 낮춰주고 시간적인 편의를 제공하는

    각종 라이브러리, 프레임워크들이 많이 나오면서 많은 사람들이 사용을 하고 있습니다.

     

    저 또한, 현업에서 파이썬의 Scikit-Learn을 사용하면서 큰 혜택을 얻는 사람 중 하나지요.

    하지만, 좋은 라이브러리를 단순히 사용하는 것 뿐 아니라 '사용하는 알고리즘의 동작원리를 정말 속속들이 알고싶어!!'

    ...라는 생각은 항상 들지요. 

    '해야되는데...해야되는데...알고싶긴한데...' 하던 차에 아주아주 제가 좋아하는 스타일의 책이 나왔습니다.

    한줄씩, 한줄씩, 함수 하나씩 실행해보고 이게 뭔지 감을 잡으면서 여러번 반복해야 이해를 하는 저로서는 

    이 책의 지식전달 방향이 너무너무 저와 잘 맞는다 생각합니다.

     

    입문서는 정말 많은 것을 고려해야합니다.

    프로그래밍은 할 줄 아는데 개념을 모르는 사람도 있고, 아예 프로그래밍을 못하는 사람도 있어서

    설명 범위를 잘 잡는 것이 중요하다 생각하는데, 이 책은 아예 프로그래밍을 모르는 사람부터 고려한다는 배려가 

    느껴집니다. 파이썬 설치부터 기본 문법, 설명과 시각화에 필요한 라이브러리의 사용법부터 시작해서 

    퍼셉트론, 다층 퍼셉트론, 딥러닝으로 순차적으로 하위개념부터 상위개념을 포괄합니다.

     

    말로만 설명해선 어려운 개념도 소스코드를 첨부해 설명해나가니, 독자는 책의 진행을 따라가다보면 어느새 

    감을 잡게 됩니다. 저 또한, 그랬구요.

     

    이런 친절함과 구성 덕분에 딥러닝이란 자동차를 만드는 과정을 바퀴부터 만들어가며 이해하기 수월했습니다.

    물론, 저 스스로 더 공부가 필요합니다만 이 책으로 앞으로의 학습을 위한 토대를 잘 쌓아주었기에 과거보다 자신이 

    생겼습니다.

     

    이런 '밑바닥부터..' 시리즈가 많이 나왔으면 하는 바램입니다. 

     

  • 밑바닥부터 시작하는 딥러닝 (Deep Learning from Scratch)
     
    제목에 걸맞게 밑바닥부터 차근차근 쌓아 올려 딥러닝을 설명하는 책이다. 책은 딥러닝을 설명하기 위해 파이썬 언어를 사용하고 있는데, 심지어 파이썬 언어를 몰라도 이 책을 따라갈 수 있을 것이로 생각하며, 심지어 다른 언어를 이용해서도 비슷하게 구현하며 따라갈 수 있을 것으로 보인다. 수학적인 내용도 그림을 통해 쉽게 설명하고 있다. 경사하강법(gradient descent)를 통해 최적점(optima)을 찾아가는 과정이나, 연쇄법칙(chain rule)과 오차역전파법(backward propagation) 등을 차근차근 예시를 들어 설명하고 있어, 수학에 자신이 없더라도 딥러닝이 어떤 것인지 감을 잡을 수 있다. 책의 표지에 from Scratch라는 말이 아주 작게 쓰여 있는데, 조금 더 강조되어도 좋을 것 같다. 딥러닝을 알지 못하는 누구라도, 심지어 수학과 컴퓨터를 잘 알지 못하더라도 조금만 노력하면 이 책을 따라갈 수 있을 것이다. 책의 첫 장은 파이썬을 설치하는 법부터 간단한 문법을 다루고 있고, 두 번째 장은 퍼셉트론(대학교 논리설계 시간에 배우는 AND gate 등)부터 차근차근 다루고 있기 때문이다.
    반면, 이미 딥러닝을 하고 있거나 적어도 스탠퍼드의 cs231n, Udacity의 Deep learning강좌 등을 통해 딥러닝을 조금이나마 배운 사람들에게는 너무 쉬운 내용이라 느껴질 수 있다. 하지만 그렇다 하더라도, 책의 예제코드를 따라 쳐보는 실습은 꽤 도움이 될 것이다. 책은 Tensorflow나 Caffe등의 Deep Learning Framework들을 사용하지 않고 전파(propagation)나 손실(loss) 등을 직접 구현하는데, 이를 통해 딥러닝 기초 아이디어와 프레임워크에서는 드러나지 않는 과정들을 다시 생각하고 공부할 수 있다. 또 하이퍼파라메터(hyper parameter)의 설정이나 활성화함수(activation function)으로 사용되는 비선형함수(non-linear function)의 선택 등에 대해서 몇 가지 팁을 얻고, 애매한 부분들을 다시 정리하는데에도 도움이 될 것으로 생각한다.
    책은 크게 8개의 장로 나뉜다.
    • 첫 장은 파이썬에 대한 대략적인 소개인데, 파이썬을 이미 알고 있다면 읽지 않아도 무방한 내용이다.
    • 두 번째 장은 퍼셉트론(perceptron)을 다룬다. 논리 게이트를 사용하여 원하는 결과를 얻도록 설계하는 방법을 이야기하는데, 대학교 논리설계 수업을 들었다면 빠르게 훑어 보는 것으로 충분하다.
    • 세 번째 장부터 본격적으로 신경망이 등장한다. 앞 장에서 얘기했던 퍼셉트론을 확장하여 신경망을 설명하며, 활성화함수(activation function), 소프트맥스함수(softmax function)을 소개한다. 벡터 내적과 같은 기초적인 수학도 꼼꼼하게 설명한다.
    • 네 번째 장은 학습을 다룬다. 손실(loss function)을 왜 정의하는지, 이것과 딥러닝이 어떻게 관련이 있는지 설명한다(딥러닝은 정의한 손실을 최소화하는 과정이라고도 할 수 있으며 이를 학습이라 한다.). 손실을 줄이는 최적화 과정은 미분을 통해 이루어지는데, 수학을 어려워하는 사람들을 위해 한 절을 할애하여 미분을 자세히 설명한다.
    • 다섯째 장은 오차역전파법(backward propagation)을 다룬다. 최적화 과정에서의 미분을 빠르게 하는 방법을 설명하는데, 이를 위해 미분의 연쇄법칙(chain rule) 부터 차근차근 설명한다. 다소 복잡한 개념이지만, 예시와 함께 따라간다면 무리 없이 이해할 수 있다.
    • 여섯째 장은 모델을 설계할 때 고려해야 할 사항들을 다룬다. 흔히 사용하는 확률적경사하강법(stochastic gradient descent) 외에 어떤 방법들이 있을지, 하이퍼파라메터(hyper parameter)들을 어떻게 초기화 하여야 할지, 정규화(normalization)는 어떻게 하는지, 과적합(overfitting)을 방지하기 위한 테크닉은 어떤 것들이 있는지 소개한다.
    • 일곱째 장은 이미지를 다룰 때 주로 사용되는 딥러닝의 한가지 종류인 합성곱 신경망(convolutional neural network)를 다룬다. 패딩(padding), 스트라이드(stride), 풀링(pooling) 등의 용어를 설명하며, CNN의 동작 과정을 단계별 그림을 통해 최대한 쉽게 설명한다.
    • 마지막 여덟째 장은 실제 딥러닝을 다룰 때의 문제를 얘기한다. 세 번째 장부터 다섯째 장까지 설명한 딥러닝의 기본 아이디어로 보면, 딥러닝은 꽤 쉬워 보이지만 실제로는 그렇지 않다. 전통적인 알고리즘들과 달리 프로그래머가 내부 동작을 규정할 수 없는 상황에서 어떻게 정확도를 더 높일 수 있을지, 그리고 학습에 걸리는 시간을 어떻게 단축할 수 있을지 등의 문제를 소개한다. state of the art였던 알고리즘들을 소개하며 딥러닝의 변화와 발전을 보여주며, 책에서 다루었던 딥러닝이 어떤 문제에 활용될지를 얘기하며 책을 마무리한다.
    이 책은 아주 기본적인 내용부터 수준 높은 이야기까지 단계별 상세한 그림으로 쉽게 설명하고 있으며, 300쪽 남짓의 얇은 책이지만 아주 잘 편집된 내용과 구성으로 딥러닝을 이해하는데 필수적인 것들을 알차게 다루고 있다. 흔히 딥러닝을 공부하는 데에 필수 3서로 비숍 책(Bishop, Pattern Recognition And Machine Learning)과 머피 책(Murphy, Machine Learning: A Probabilistic Perspective) 그리고 딥러닝북(Deep Learning Book) 을 꼽는데, 이들 책의 두께와 내용이 부담스럽다면 이 책으로 딥러닝을 접해보는 것을 추천한다.

     

  • 딥러닝이라는 것을 이해하기 위해 알고 있어야 하는 기초 이론들의 개념을 설명하는 책입니다. 좀 더 자세하게는 퍼셉트론, 신경망, 딥러닝 순으로 목차가 구성되어 있습니다. 아직 전부는 읽지 못했고 4장 신경망 학습까지 읽으면서 예제 코드를 따라해 보고 있는데, 책을 읽으면서 느낀 점을 써보겠습니다.

    몇 년 전에 대학 인공지능 수업을 수강할 때 퍼셉트론을 배우긴 했는데, 그 때는 퍼셉트론으로 AND, OR를 구현하는 방법을 배우고, XOR를 구현하는 숙제를 하고 넘어갔던 걸로 기억합니다. 퍼셉트론과 신경망에 막연히 관심은 있었지만 그것들을 다루는 책들은 저한테는 이해하기 너무나 어려운 것이었습니다. 그래서 언젠가 이런 걸 쉽게 설명하는 책이 나올 거야 하고 생각하고 있었는데, 정말로 몇 년 되지 않아서 지금 리뷰하는 이런 책이 나오게 되었네요.

    이 책의 난이도는 다른 머신러닝 책들에 비해서는 굉장히 이해하기 쉬운 편이고 어려운 단어가 거의 없습니다. 처음 본 단어들은 대부분 설명이 충분히 되어 있기 때문에 읽는데 개념을 몰라서 찾아보는 일은 거의 없었습니다. 오라일리 번역서인데 저자가 일본인이라서인지 일본에서 출판된 다른 책들처럼 매우 세세하게 과정의 생략 없이 설명해주는 점이 좋았습니다.

    이 책도 다른 머신러닝 책들처럼 파이썬을 프로그래밍 언어로 쓰고 있습니다. 쉬운 행렬 계산을 위해 파이썬 넘파이 라이브러리를 씁니다. 다만 머신러닝 라이브러리 설명서라기보다는 어떤 부분에 이런 라이브러리 함수들이 필요하고 왜 그런가를 설명해 줍니다.

    3장부터는 입력층, 출력층만 있는 퍼셉트론에서 진보된 형태인 신경망을 다룹니다. 입력층, 출력층 사이에 여러 은닉층들이 있는 구조에서 출력값을 계산하는 구조를 예제 코드를 따라하면서 확인해 보니까 이해가 더 잘 되었습니다. 이 책은 특히 복잡한 구조들을 명쾌하게 드러내는 그림들이 많은 편이라서 이해에 많은 도움이 됩니다.

    예제 코드는 한빛 출판사에서도 다운로드할 수 있는데, 여기에서 내려받은 예제 코드들의 주석 역시 한국어로 번역이 되어 있어서 좋았습니다. 어떤 모듈의 경우에는 책 안에서 예제 코드 안에 포함되어 있어서 불러와 쓰면 된다고 설명하고 있는데, 이런 모듈들은 데이터를 가공해주는 역할을 하므로 책의 범위를 벗어나기 때문에 일부러 설명하지 않은 것 같습니다. 나중에 예제 코드를 분석해 보면서 데이터를 가공하는 방법도 익히면 좋을 것 같습니다.

    5장 이후에는 오차역전파법, CNN, 딥러닝 등을 다루는데 무리없이 이론들을 배울 수 있을 것 같아서 기대됩니다. 딥러닝 이전에 밑바닥이 되는 기초 이론을 배울 수 있는 장점이 있는 책입니다.

     

     

     

부록/예제소스
자료명 등록일 다운로드
예제소스 2017-01-06 다운로드
결재하기
배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

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

닫기

리뷰쓰기

닫기
* 도서명 :
밑바닥부터 시작하는 딥러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
밑바닥부터 시작하는 딥러닝
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
밑바닥부터 시작하는 딥러닝
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

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

자료실