딥러닝을 위한 수학

인공지능의 핵심 원리를 이해하고 파이썬으로 구현해 보는

AI의 블랙박스를 열어 보자!

딥러닝의 본질을 이해하는 데 필요한 ‘수학'을 ‘최단 코스'로 배울 수 있습니다! 이 책은 미분과 벡터, 행렬과 확률과 같은 딥러닝에 필요한 수학을 고등학교 1학년 수준부터 복습해 나가면서 설명하고 있습니다. 최단 코스로 익힐 수 있도록 꼭 필요한 수학 개념만 간추려서 설명하고 그것들의 관계를 그림으로 표현했습니다. 이론으로 배운 수학적 개념은 주피터 노트북에서 실행할 수 있도록 소스코드도 함께 제공합니다. 이 책을 통해 ‘딥러닝'의 동작 원리를 직접 체험해보기 바랍니다.

 

도서 상세 이미지

아카이시 마사노리 (赤石 雅典)

1985년에 도쿄대학공학부 계수공학과를 졸업하고 1987년 도쿄대학공학계 연구과 계수공학 석사 과정을 수료한 후 일본 IBM에 입사했다. 도쿄 기초 연구소에서 수식 처리 시스템을 연구, 개발하다 1993년 시스템 엔지니어 부문으로 옮겨 오픈 시스템의 인프라 설계 및 구축, 애플리케이션 설계 등의 업무를 수행했다. 2013년에는 스마트 시티 사업에 참여하고 2016년에는 왓슨(Watson) 사업부로 옮겨 현재까지 이르고 있다. 저서로는 《왓슨 스튜디오로 시작하는 머신러닝, 심층학습》 《실무 현장에서 사용할 수 있다! Python 자연어 처리 입문》이 있다. 교토정보대학원대학에서 ‘인공지능을 위한 수학’을 강의하고 있다. 그 밖에 기술 관련 사이트(Qiita)에 다수의 글을 기고하였다.

신상재

2001년에 부산대학교 컴퓨터공학과를 졸업하고 삼성 SDS에 입사했다. 별다른 재주 없이 20년을 버틴 끝에 자칭 ‘고인 물의 전당’에 스스로 들어가 살아있는 레거시가 됐다. 일찍이 수포자였으나 초등학교 아들이 수학 문제집을 푸는 것을 보고 언젠가는 미적분을 물어볼지 모른다는 두려움에 인공지능을 핑계 삼아 수학 공부를 다시 하고 있다. 유튜브 채널 ‘번역하는 개발자’에서 자신이 번역한 책을 소개하고 번역하며 겪었던 에피소드를 공유하고 있다. 주요 번역서로는 《비즈니스 프레임워크》(로드북, 2020) 《스프링 철저 입문》(위키북스, 2018) 《인공지능을 위한 수학》(프리렉, 2018) 등이 있다.

  • [1부] 준비편
    • 실습 환경 구성
      • 소스코드 다운로드
      • 개인 PC에서 주피터 노트북 사용하기
      • 아나콘다를 사용하는 경우(윈도우)
      • 아나콘다를 사용하는 경우(macOS)
      • 비주얼 스튜디오 코드를 사용하는 경우
      • 클라우드에서 주피터 노트북 사용하기
    • 미리 알아두면 좋을 지식
      • 인공지능 관련 용어의 관계도
      • 인공지능의 포함 관계
      • 머신러닝의 포함 관계
    • 이 책에서 사용하는 수학 기호와 그리스 문자
    •  
  • [2부] 도입편
    •  
  • ▣ 01장: 머신러닝 입문
    • 1.1 인공지능과 머신러닝
    • 1.2 머신러닝이란?
      • 1.2.1 머신러닝 모델이란?
      • 1.2.2 학습 방법
      • 1.2.3 지도학습에서의 회귀와 분류
      • 1.2.4 학습 단계와 예측 단계
      • 1.2.5 손실함수와 경사하강법
    • 1.3 처음으로 만나는 머신러닝 모델
    • 1.4 이 책에서 다루는 머신러닝 모델
    • 1.5 머신러닝과 딥러닝에서 수학이 필요한 이유
    • 1.6 이 책의 구성
    •  
  • [3부] 이론편
    •  
  • ▣ 02장: 미분과 적분
    • 2.1 함수
      • 2.1.1 함수란?
      • 2.1.2 함수의 그래프
    • 2.2 합성함수와 역함수
      • 2.2.1 합성함수
      • 2.2.2 역함수
    • 2.3 극한과 미분
      • 2.3.1 미분의 정의
      • 2.3.2 미분과 함숫값의 근사 표현
      • 2.3.3 접선의 방정식
    • 2.4 극대와 극소
    • 2.5 다항식의 미분
      • 2.5.1 xn의 미분
      • 2.5.2 미분의 선형성과 다항식의 미분
      • 2.5.3 xr의 미분
    • 2.6 곱의 미분
    • 2.7 합성함수와 역함수의 미분
      • 2.7.1 합성함수의 미분
      • 2.7.2 역함수의 미분
    • 2.8 몫의 미분
    • 2.9 적분
    •  
  • ▣ 03장: 벡터와 행렬
    • 3.1 벡터
    • 3.1.1 벡터란?
      • 3.1.2 벡터의 표기 방법
      • 3.1.3 벡터의 성분 표시
      • 3.1.4 다차원으로 확장
      • 3.1.5 벡터 성분의 표기 방법
    • 3.2 덧셈, 뺄셈, 스칼라배
      • 3.2.1 벡터의 덧셈
      • 3.2.2 벡터의 뺄셈
      • 3.2.3 벡터의 스칼라배
    • 3.3 길이와 거리
      • 3.3.1 벡터의 길이
      • 3.3.2 Σ 기호의 의미
      • 3.3.3 벡터 간의 거리
    • 3.4 삼각함수
      • 3.4.1 삼각비
      • 3.4.2 삼각함수
      • 3.4.3 삼각함수의 그래프
      • 3.4.4 직각삼각형의 변을 삼각함수로 표현하기
    • 3.5 내적
      • 3.5.1 절댓값과 내적의 정의
      • 3.5.2 벡터 성분과 내적의 공식
    • 3.6 코사인 유사도
      • 3.6.1 코사인 유사도
    • 3.7 행렬과 행렬 연산
      • 3.7.1 1 출력 노드의 내적 표현
      • 3.7.1 3 출력 노드의 행렬곱 표현
    •  
  • ▣ 04장: 다변수함수의 미분
    • 4.1 다변수함수
    • 4.2 편미분
    • 4.3 전미분
    • 4.4 전미분과 합성함수
    • 4.5 경사하강법
    •  
  • ▣ 05장: 지수함수와 로그함수
    • 5.1 지수함수
      • 5.1.1 거듭제곱의 정의와 법칙
      • 5.1.2 거듭제곱의 확장
      • 5.1.3 함수로의 확장
    • 5.2 로그함수
    • 5.3 로그함수의 미분
    • 5.4 지수함수의 미분
    • 5.5 시그모이드 함수
    • 5.6 소프트맥스 함수
    •  
  • ▣ 06장: 확률과 통계
    • 6.1 확률변수와 확률분포
    • 6.2 확률밀도함수와 확률분포함수
    • 6.3 가능도함수와 최대가능도 추정
    •  
  • [4부] 실습편
    •  
  • ▣ 07장: 선형회귀 모델
    • 7.1 손실함수의 편미분과 경사하강법
    • 7.2 예제 개요
    • 7.3 학습 데이터의 표기 방법
    • 7.4 경사하강법의 접근법
    • 7.5 예측 모델
    • 7.6 손실함수
    • 7.7 손실함수의 미분 계산
    • 7.8 경사하강법의 적용
    • 7.9 프로그램 구현
    • 7.10 다중회귀 모델로의 확장
    •  
  • ▣ 08장: 로지스틱 회귀 모델 (이진 분류)
    • 8.1 예제 개요
    • 8.2 회귀 모델과 분류 모델의 차이
    • 8.3 예측 모델
    • 8.4 손실함수(교차 엔트로피 함수)
    • 8.5 손실함수의 미분 계산
    • 8.6 경사하강법의 적용
    • 8.7 프로그램 구현
    •  
  • ▣ 09장: 로지스틱 회귀 모델 (다중 클래스 분류)
    • 9.1 예제 개요
    • 9.2 모델의 기본 개념
    • 9.3 가중치 행렬
    • 9.4 소프트맥스 함수
    • 9.5 손실함수
    • 9.6 손실함수의 미분 계산
    • 9.7 경사하강법의 적용
    • 9.8 프로그램 구현
    •  
  • ▣ 10장: 딥러닝 모델
    • 10.1 예제 개요
    • 10.2 모델 구성과 예측함수
    • 10.3 손실함수
    • 10.4 손실함수의 미분 계산
    • 10.5 오차역전파
    • 10.6 경사하강법의 적용
    • 10.7 프로그램 구현 (1)
    • 10.8 프로그램 구현 (2)
    • 10.9 프로그램 구현 (3)
    • 10.10 프로그램 구현 (4)
    •  
  • [5부] 발전편
    •  
  • ▣ 11장: 실용적인 딥러닝을 위해
    • 11.1 프레임워크의 활용
    • 11.2 CNN
    • 11.3 RNN과 LSTM
    • 11.4 수치미분
    • 11.5 심화 학습법
    • 11.6 과적합 대책
    • 11.7 학습의 단위
    • 11.8 가중치 행렬의 초기화
    • 11.9 다음 목표를 향해
    •  
    • [6부] 부록
    • 그리스 문자 목록

10장의 주피터 노트북 변경 사항

10장 내용에 대한 주피터 노트북 파일인 ch10-deeplearning.ipynb에서 10.7 '프로그램 구현(1)'의 두 번째 셀의 내용을 다음과 같이 수정합니다.

x_org, y_org = mnist.data, mnist.target

==>

x_org, y_org = mnist.data, mnist.target
y_org = y_org.astype(np.int) # mnist.target이 문자 배열이기 때문에 이를 정수 배열로 변환함.

※ 주피터 노트북 파일에도 변경 사항이 반영돼 있으므로 새로 내려받아 사용하셔도 됩니다.


  • 124쪽, 본문 5번째 줄

    등고선이 언제나 수식으로 나옵니다.

    ==>

    등고선이 언제나 수직으로 나옵니다.

  • 257쪽, 수식 10.6.8을 다음 수식으로 교체

    mathdl-10608.png

  • 258쪽, 수식 10.6.20을 다음 수식으로 교체

    mathdl-10620.png

  • 258쪽, 수식 10.6.22를 다음 수식으로 교체

    mathdl-10622.png