머신러닝/딥러닝 학습시 수학 공부법
이 창 신
2017.10.13
예고
프로그래밍을 위한 별도의 수학을 다루기 전에, 이미 배웠던(물론
안배웠거나 오래됐을 수도 있습니다) 수학인 집합, 명제, 함수 등이
프로그래밍에 어떻게 쓰이는지 살펴봅니다. 머신러닝/딥러닝
학습에 나오는 행렬, 미적분과 확률 통계 등은 배운 것과 배울 것이
섞여 있을 수도 있습니다. 앞으로 어떤 수학 공부를 하면 좋을지도
말씀드리고 싶고요. 더불어, 최근 번역 작업과 미국 생활에 대한
얘기도 하려 합니다.
목차
과거
집합
명제
함수
현재
미분
선형대수
미래
학습법
LATEX
끝으로
집합의 표현
원소 나열법(extentional definition)
A = {1, 2, 3} (1)
int [ ] a = {1 , 2 , 3}
조건 제시법(intentional definition)
A = {x|1 ≤ x ≤ 3} (2)
?
집합의 관계
원소가 집합에 속한다
1 ∈ A (3)
Set<Integer > a = Set . of (1 , 2 , 3)
a . c o n t ai n s (1)
부분 집합
B ⊂ A where B = {1, 2} (4)
Set<Integer > b = Set . of (1 , 2)
a . c o n t a i n s A l l (b)
논리 연산(부울 대수)
∼ (p ∨ q) =∼ p∧ ∼ q (5)
int a = 4
int b = 3
! ( a != 3 && b != 4)
a == 3 | | b == 4
함수의 정의
정의역(domain), 공역(codomain), 치역(range)
f : X → Y (6)
int f u n c t i o n ( S t r i n g x ) { return x . length ( ) ; }
f u n c t i o n ( ” t e s t ” )
함수의 유형
단사(injective)
x1 = x2 => f (x1) = f (x2) where ∀x1, x2 ∈ X (7)
전사(surjective)
f (X) = Y (8)
전단사(bijective)와 역함수(inverse)
y = f (x) ⇐⇒ f −1
(y) = x (9)
예)
y = f (x) = ax + b
⇒ y − b = ax
⇒
y
a
−
b
a
= x
⇒ f −1
(x) =
x
a
−
b
a
(10)
역함수 구현
코드 수준에서
double f u n c t i o n ( double x ){ return 2.0 ∗ x + 3 . 0 ; }
double i n v e r s e ( double x ){ return x /2.0 − 3 . 0 / 2 . 0 ; }
저장된 값을 바탕으로
Map<Integer , Double> f = Map. of (1 , 2.0 , 2 , 4.0)
// . . .
Map<Double , Integer > i = Map. of ( 2 .0 , 1 , 4.0 , 2)
편미분(partial derivative)
다변수 함수에서 한변수로만 미분
https://www.youtube.com/watch?v=oZyvmtqLmLo&feature=
youtu.be
f (x, y) = x + 2y ⇒
∂f
∂x
=
∂x
∂x
+
∂2y
∂x
= 1 + 0 = 1
∂f
∂y
=
∂x
∂y
+
∂2y
∂y
= 0 + 2 = 2
(11)
연쇄 미분(합성 함수 미분)
https://docs.google.com/presentation/d/
1CF-vEPzMSkVKnePO__AewGfzmui2aGMr8HhI9diD2t8/edit#
slide=id.g27be483e1c_0_42 (10쪽)
h = g · f ⇒
h(x) = (g · f )(x) = g(f (x))
⇒
∂h
∂x
=
∂g
∂f
∂f
∂x
(12)
예) f (x, y, w) = (xw − y)2 일 때 xw − y = t 라 하면 f (t) = t2
∂f
∂w
=
∂f
∂t
∂t
∂w
=
∂t2
∂t
∂(xw − y)
∂w
= 2tx = 2(xw − y)x (13)
벡터
벡터: 수를 1차원(직선)으로 나열한 것
v = (1, 2) (14)
벡터 공간: 벡터의 기본 연산(합과 정수배)이 정의된 공간, 선형
공간
x + y = (x1, x2) + (y1, y2) = (x1 + x2, y1 + y2) (15)
cx = c(x1, x2) = (cx1, cx2) (16)
벡터 공간의 차원: 기저 벡터의 개수(좌표 성분의 개수)
행렬
행렬: 수를 2차원(직사각형)으로 나열한 것
a11 a12
a21 a22
(17)
행렬의 곱셈:
a11 a12
a21 a22
b11 b12
b21 b22
=
a11b11 + a12b21 a11b12 + a12b22
a21b11 + a22b21 a21b12 + a22b22
(18)
행렬은 사상(寫像, mapping)이다.
f (x) = Ax = y (19)
a11 a12
a21 a22
x1
x2
=
a11x1 + a12x2
a21x1 + a22x2
=
y1
y2
(20)
학습법
복습: 정석, 선형대수, 공업수학, 확률통계, 미적분, ...
따라 쓰기
LATEX
TeX Live: MacTeX
한글: kotex 패키지 사용
끝으로
수학은 ()의 언어이다

How to Study Mathematics for ML

  • 1.
    머신러닝/딥러닝 학습시 수학공부법 이 창 신 2017.10.13
  • 2.
    예고 프로그래밍을 위한 별도의수학을 다루기 전에, 이미 배웠던(물론 안배웠거나 오래됐을 수도 있습니다) 수학인 집합, 명제, 함수 등이 프로그래밍에 어떻게 쓰이는지 살펴봅니다. 머신러닝/딥러닝 학습에 나오는 행렬, 미적분과 확률 통계 등은 배운 것과 배울 것이 섞여 있을 수도 있습니다. 앞으로 어떤 수학 공부를 하면 좋을지도 말씀드리고 싶고요. 더불어, 최근 번역 작업과 미국 생활에 대한 얘기도 하려 합니다.
  • 3.
  • 4.
    집합의 표현 원소 나열법(extentionaldefinition) A = {1, 2, 3} (1) int [ ] a = {1 , 2 , 3} 조건 제시법(intentional definition) A = {x|1 ≤ x ≤ 3} (2) ?
  • 5.
    집합의 관계 원소가 집합에속한다 1 ∈ A (3) Set<Integer > a = Set . of (1 , 2 , 3) a . c o n t ai n s (1) 부분 집합 B ⊂ A where B = {1, 2} (4) Set<Integer > b = Set . of (1 , 2) a . c o n t a i n s A l l (b)
  • 6.
    논리 연산(부울 대수) ∼(p ∨ q) =∼ p∧ ∼ q (5) int a = 4 int b = 3 ! ( a != 3 && b != 4) a == 3 | | b == 4
  • 7.
    함수의 정의 정의역(domain), 공역(codomain),치역(range) f : X → Y (6) int f u n c t i o n ( S t r i n g x ) { return x . length ( ) ; } f u n c t i o n ( ” t e s t ” )
  • 8.
    함수의 유형 단사(injective) x1 =x2 => f (x1) = f (x2) where ∀x1, x2 ∈ X (7) 전사(surjective) f (X) = Y (8) 전단사(bijective)와 역함수(inverse) y = f (x) ⇐⇒ f −1 (y) = x (9) 예) y = f (x) = ax + b ⇒ y − b = ax ⇒ y a − b a = x ⇒ f −1 (x) = x a − b a (10)
  • 9.
    역함수 구현 코드 수준에서 doublef u n c t i o n ( double x ){ return 2.0 ∗ x + 3 . 0 ; } double i n v e r s e ( double x ){ return x /2.0 − 3 . 0 / 2 . 0 ; } 저장된 값을 바탕으로 Map<Integer , Double> f = Map. of (1 , 2.0 , 2 , 4.0) // . . . Map<Double , Integer > i = Map. of ( 2 .0 , 1 , 4.0 , 2)
  • 10.
    편미분(partial derivative) 다변수 함수에서한변수로만 미분 https://www.youtube.com/watch?v=oZyvmtqLmLo&feature= youtu.be f (x, y) = x + 2y ⇒ ∂f ∂x = ∂x ∂x + ∂2y ∂x = 1 + 0 = 1 ∂f ∂y = ∂x ∂y + ∂2y ∂y = 0 + 2 = 2 (11)
  • 11.
    연쇄 미분(합성 함수미분) https://docs.google.com/presentation/d/ 1CF-vEPzMSkVKnePO__AewGfzmui2aGMr8HhI9diD2t8/edit# slide=id.g27be483e1c_0_42 (10쪽) h = g · f ⇒ h(x) = (g · f )(x) = g(f (x)) ⇒ ∂h ∂x = ∂g ∂f ∂f ∂x (12) 예) f (x, y, w) = (xw − y)2 일 때 xw − y = t 라 하면 f (t) = t2 ∂f ∂w = ∂f ∂t ∂t ∂w = ∂t2 ∂t ∂(xw − y) ∂w = 2tx = 2(xw − y)x (13)
  • 12.
    벡터 벡터: 수를 1차원(직선)으로나열한 것 v = (1, 2) (14) 벡터 공간: 벡터의 기본 연산(합과 정수배)이 정의된 공간, 선형 공간 x + y = (x1, x2) + (y1, y2) = (x1 + x2, y1 + y2) (15) cx = c(x1, x2) = (cx1, cx2) (16) 벡터 공간의 차원: 기저 벡터의 개수(좌표 성분의 개수)
  • 13.
    행렬 행렬: 수를 2차원(직사각형)으로나열한 것 a11 a12 a21 a22 (17) 행렬의 곱셈: a11 a12 a21 a22 b11 b12 b21 b22 = a11b11 + a12b21 a11b12 + a12b22 a21b11 + a22b21 a21b12 + a22b22 (18) 행렬은 사상(寫像, mapping)이다. f (x) = Ax = y (19) a11 a12 a21 a22 x1 x2 = a11x1 + a12x2 a21x1 + a22x2 = y1 y2 (20)
  • 14.
    학습법 복습: 정석, 선형대수,공업수학, 확률통계, 미적분, ... 따라 쓰기
  • 15.
    LATEX TeX Live: MacTeX 한글:kotex 패키지 사용
  • 16.