◆ 출판사 ◆

루비페이퍼


◆ 책소개 ◆

딥러닝도 모르겠는데 수학은 손놓은 지 오래다?
이 책을 한마디로 설명하자면 ‘수학 기초와 파이썬으로 배우는 머신러닝과 딥러닝 기초’라고 할 수 있습니다. 기초 수학을 설명한 후 여기서 파생하는 머신러닝과 딥러닝의 주요 개념인 회귀, 신경망, 경사하강법, 합성곱 신경망, 순환 신경망, 강화 학습 등을 설명합니다. 그리고 각 개념을 구현하는 파이썬 코드도 함께 소개합니다.


◆ 목차 ◆

Chapter 1. 딥러닝을 배우기 전 알아 둬야 할 머신러닝과 신경망 이야기
Q 생각해보기
1.1 어떤 동작을 ‘똑똑’하다고 할까
1.1.1 일반적인 시스템 개발과 인공지능 시스템 개발의 차이
1.1.2 데이터를 ‘학습’한다는 의미
1.1.3 지금까지의 인공지능 연구와 성과
1.2 머신러닝의 사고방식
1.2.1 지도 학습, 비지도 학습, 강화 학습
1.2.2 머신러닝의 장점과 한계
1.2.3 가볍게 살펴보는 머신러닝 사례
1.3.3 작은 크기의 신경망부터 구성
1.3 신경망
1.3.1 신경망과 딥러닝
1.3.2 신경망의 동작 살펴보기
1.4 파이썬 기초
1.4.1 개발 목적에 적합한 프로그래밍 언어 선택하기
1.4.2 파이썬의 특징
1.4.3 파이썬 개발 환경 설치
1.4.4 파이썬의 숫자 타입과 산술 연산자
1.4.5 변수, 리스트, 튜플
1.4.6 조건문과 반복문
1.4.7 함수, 클래스, 객체
1.4.8 스크립트 파일 사용
1.4.9 라이브러리 사용
연습 문제 ①, ②

Chapter 2. 수열, 통계, 확률 근거에 따라 결정하는 방법
Q 생각해보기
2.1 대량의 데이터를 다루는 수열과 집합
2.1.1 수열 표현과 점화식
2.1.2 수열의 합과 시그마
2.1.3 수열을 다루는 리스트와 리스트 내포
2.1.4 집합
2.1.5 평균, 분산, 표준편차
2.1.6 데이터의 표준값
2.1.7 데이터의 분포
2.2 답이 정확한지 확인하는 확률
2.2.1 확률의 개념
2.2.2 확률변수와 확률분포
2.2.3 결합확률과 조건부확률
2.2.4 베이즈 정리
2.3 대량의 데이터에서 추정하는 방법
2.3.1 표본 추정
2.3.2 표본을 추출할 때 사용하는 난수
2.3.3 확률분포 추정
연습 문제 ③, ④

Chapter 3. 벡터와 행렬 - 다양한 입출력을 한꺼번에 처리
Q 생각해보기
3.1 데이터를 일렬로 정리하는 벡터
3.1.1 스칼라, 벡터, 행렬, 텐서
3.1.2 벡터의 합, 차, 크기
3.1.3 벡터의 내적
3.2 다차원 데이터를 다루는 행렬
3.2.1 행렬의 덧셈과 곱셈
3.2.2 전치행렬과 역행렬
3.2.3 행렬의 사상과 연립방정식
연습 문제 ⑤, ⑥

Chapter 4. 함수와 미분 - 최적값에 수렴하는 방법
Q 생각해보기
4.1 입력으로 출력을 결정하는 함수
4.1.1 대응표와 함수의 그래프
4.1.2 지수함수와 로그함수
4.1.3 오차의 최솟값 계산
4.2 미분으로 그래프의 접선 계산
4.2.1 접선의 기울기
4.2.2 복잡한 함수의 미분
4.2.3 미분 가능 함수
4.3 여러 개 변수를 미분하는 편미분
4.3.1 편미분과 기울기 벡터
4.3.2 다변수 함수의 최솟값 계산 조건
연습 문제 ⑦, ⑧

Chapter 5. 예측과 최적화 - 학습으로 결과 도출
Q 생각해보기
5.1 데이터로 예측하는 회귀분석과 로지스틱 회귀
5.1.1 1차함수를 이용한 예측
5.1.2 회귀분석
5.1.3 다중회귀분석과 확률적 경사하강법
5.1.4 로지스틱 회귀
5.2 신경망의 손실함수 최적화
5.2.1 역전파
5.3 학습 모델 평가
5.3.1 교차 검증
5.3.2 과대적합을 막는 학습
연습 문제 ⑨, ⑩

Chapter 6. 신경망과 딥러닝 - 정확도 향상과 이미지 인식 등의 응용
Q 생각해보기
6.1 과거 신경망의 문제점
6.1.1 기울기 소실 문제와 활성화 함수
6.1.2 가중치의 초깃값을 정하는 오토 인코더
6.1.3 과대적합과 드롭아웃
6.2 합성곱 신경망
6.2.1 이미지 데이터의 특징 표현

6.2.2 합성곱층
6.2.3 풀링층
6.2.4 합성곱 신경망의 학습
6.2.5 데이터 확장에 따른 이미지 추가와 전이 학습
6.2.6 생성적 적대 신경망
6.2.7 미니배치 학습과 배치 정규화
6.3 순환 신경망과 재귀 신경망
6.3.1 학습 데이터가 변하는 신경망
6.3.2 LSTM과 GRU
연습 문제 ⑪

Chapter 7. 강화 학습 - 스스로 학습하는 인공지능 구축
Q 생각해보기
7.1 몬테카를로 방법과 동적 계획법
7.1.1 결과 평가의 가치 추정
7.1.2 마르코프 결정 과정의 모델링
7.1.3 몬테카를로 방법을 이용한 학습
7.1.4 동적 계획법과 벨만 방정식
7.2 On-policy 학습과 Off-policy 학습
7.2.1 시간차 학습
7.2.2 Sarsa 학습
7.2.3 Q 학습
7.3 심층강화학습
7.3.1 강화 학습과 신경망의 결합
7.3.2 새롭게 등장할 심층 강화 학습 이론
연습 문제 ⑫

연습 문제 해답


◆ 출판사 서평 ◆

딥러닝을 ‘이용하는 것’과 ‘이해하는 것’의 차이
이제는 많은 사람이 인공지능과 딥러닝이라는 용어를 언급하고 실제로 딥러닝이라는 기술의 원리부터 활용 방식 등을 살펴보고 있습니다. 또한 라이브러리와 프레임워크도 다수 등장해서 개발자가 접하기도 쉬워졌습니다. 덕분에 공개된 라이브러리를 이용하면 단 몇 줄의 소스 코드만으로 딥러닝을 쉽게 경험할 수 있죠. 단, 이러한 경험을 했다고 딥러닝을 이해했다고 말할 수는 없습니다. 이용하는 것과 이해하는 것은 완전히 다른 문제니까요.
예를 들어 딥러닝 기반 프로그램을 본격적으로 사용하려면 상황에 따라 파라미터를 어떻게 조정해야 하는지 알아야 합니다. 또 만약 원하는 결과가 나오지 않거나 예상보다 시간이 오래 걸릴 땐 데이터에 문제가 있는지, 사용하는 라이브러리에 문제가 있는지, 구현 내용에 문제가 있는지 등 원인을 알아야 하죠. 이런 부분을 모르고 딥러닝을 사용한다는 건 불확실한 결과가 나오더라도 스스로 해결할 수 없으며 실전에서는 응용할 수 없다는 뜻입니다.

딥러닝에 필요한 수학만 골라 담기
딥러닝과 머신러닝에서 빠질 수 없는 것 중 하나가 바로 수학입니다. 아마 딥러닝에 관심을 가지고 관련 책을 펼쳐본 적이 있다면 알겠지만, 고등학교까지 배운 수학으로는 이해하기 어려운 부분이 많습니다. 대학교에서 수학을 깊이 공부하지 않은 비전공자는 물론이고 공대, 자연과학부에서 수학을 공부한 사람조차 난도 높은 수학 지식에 당황하기도 합니다. 그렇다고 고등학교 수학부터 다시 공부하기엔 시간도 부족하고 현실적인 어려움이 있습니다. 따라서 이 책은 딥러닝을 이용하는 데 필요한 수학 지식만을 골라 소개합니다. 또한 실무에 적용하는 것이 목적이므로 수학적 증명 과정은 과감히 생략합니다. 빠르게 필요한 수학만 습득할 수 있죠.
딥러닝에 필요한 수학이라고 하면 어쩐지 어렵고 새로 배워야 하는 최신 이론을 떠올릴 것입니다. 하지만 사실 새로운 이론은 많지 않습니다. 제가 인공지능 연구를 시작한 지 약 15~20년이 되었습니다. 20년 전만 해도 딥러닝이라는 최신 이론은 존재하지 않았죠. 당시 인공지능 연구에서는 신경망과 유전자 알고리즘을 이용했는데, 사실 요즘 사용하는 인공지능 배경 기술과 크게 다르지 않습니다. 딥러닝의 기반은 20년 전이나 지금이나 큰 차이가 없다는 뜻입니다.

활용도 높은 프로그래밍 언어, 파이썬과 함께
인공지능 연구에서 과거와 최근의 가장 큰 차이점이라면 파이썬이라는 프로그래밍 언어를 활용하게 되었다는 점입니다. 이전에는 연산 처리가 빠른 C, C++, 자바 같은 프로그래밍 언어를 사용했지만, 점차 파이썬에 있는 데이터 과학과 통계 라이브러리, 딥러닝과 머신러닝 라이브러리와 프레임워크의 활용도가 높아지고 연산 처리도 빨라지면서 최근에는 파이썬이 대세가 되었습니다.
따라서 이 책을 통해 여러분은 딥러닝에 필요한 수학과 함께 파이썬을 배우게 될 것입니다. 단, 이 책은 프로그래밍 언어 책이 아니기 때문에 세세한 설명은 생략되어 있습니다. 만약 C나 C++, 자바 같은 다른 프로그래밍 언어를 공부한 적이 있다면 파이썬을 잘 몰라도 무리 없이 읽을 수 있겠지만, 프로그래밍 언어를 처음 접한다면 더 자세히 설명되어 있는 파이썬 입문서를 추천합니다.

우리가 배울 파이썬 기초는 인공지능 연구뿐만 아니라 웹 애플리케이션 개발에도 도움이 됩니다. 실제로 파이썬은 인공지능 개발 외에 통계 분석, 웹 애플리케이션 개발 등에도 많이 사용합니다. 직접 이 책에서 설명하는 예제 코드를 작성하고 실행해보면서 파이썬이 얼마나 편리한 언어인지, 더불어 인공지능이 우리 삶 전반에 어떻게 쓰이고 왜 필요한지 직접 느껴보기 바랍니다.

딥러닝의 맥락을 잡으려면 기초부터
이제 딥러닝은 수많은 분야에서 사용합니다. 최근에는 더 빠르게 딥러닝을 구현하는 방법과 학습 정확도를 높이는 방법을 연구 중이죠. 우리가 책에서 살펴볼 내용은 그중에서도 일부, 그중에서도 기초적인 부분입니다. 인공지능이라는 기술을 처음 접하는 사람에게는 딥러닝의 개념부터 낯설 수 있습니다. 따라서 이 책은 딥러닝의 큰 그림을 볼 수 있는 기초 설명부터 시작합니다.
또한 이 책에서 배운 수식이나 프로그래밍 지식을 바탕에 두고 다른 전문 서적과 논문도 계속 읽는다면 딥러닝을 ‘딥’하게 이해할 수 있을 것입니다. 이 책을 통해 딥러닝을 ‘이해’하는 데 어떻게 도움이 되는지 그리고 딥러닝을 무엇이 필요한지 알아나가기 바랍니다.

예제 소스는 다음 주소에서 내려받을 수 있습니다.
http://bit.ly/2YKdCTq


◆ 저자소개 ◆

저자: 마스이 도시카츠 저자 : 마스이 도시카츠
마스이 기술사 사무소 대표. 정보 공학 부문 기술사이며 비즈니스 수학 검정 1급에 합격하고 공익 재단 법인 일본 수학 검정 협회 인정 트레이너로도 활동 중이다. 비즈니스와 수학 그리고 IT를 조합하여 컴퓨터를 효율적으로 사용하기 위한 지원 및 각종 소프트웨어 개발, 데이터 분석 등을 실시하고 있다. 저서로는 『집에서 배울 수 있는 보안 기본』, 『프로그래머의 뇌를 단련하는 수학 퍼즐』 『업무에 도움이 되는 데이터 분석 통계』 『엔지니어가 살아남기 위한 테크놀로지 수업』 등이 있다.

역자 : 이중민
“지속 가능한 삶이 무엇인가?”라는 고민으로 디지털 노마드가 되어 다양한 IT 기술을 탐구하고 이를 콘텐츠로 만드는 일을 공부하는 중입니다. PC 및 하드웨어 전문 리뷰 사이트인 pcBee에서 테크니컬 라이터로 활동하면서 다양한 하드웨어 및 소프트웨어 환경을 분석하고 기사를 작성하면서 전문 지식을 쌓았습니다. 이후 프리랜서 웹 마스터로 다양한 웹 사이트 개발을 경험했습니다. IT 개발과 관련한 인사이트를 계속 키우는 중입니다. 『PC 조립 관리 수리 길라잡이 2002: 세상에 단 하나뿐인 내 PC 만들기』(정보문화사, 2002)를 함께 썼고 『처음 배우는 블록체인』(한빛미디어, 2018)을 옮겼습니다.