시작하기 앞서...
기계학습과 딥러닝을 공부할수록 개념적으로만 알아서는 제대로 활용하기가 쉽지 않다는 것을 깨달았다. 알고리즘의 작동 원리만 안다고 그것의 장단점을 구분하고 어떤 상황에서 어떻게 사용할지만 안다고 제대로 코드를 짤 수 있는 것이 아니었다. 결국에는 수학적인 식을 바탕으로 알고리즘이 구축되며 그것을 기반으로 코드가 구현되기 때문에 제대로 파라미터를 조정하고 코드로 해당 알고리즘들을 구현하기 위해서는 가장 밑바탕에 있는 수학에 대해서 이해가 더 필요하게 되었다
머신러닝에서 사용되는 수학은 문과생이자 수포자인 나도 어느정도 이해하고 따라가기 어렵지 않았으나 딥러닝으로 넘어가면서부터 수학이 너무 중요해져서 딥러닝 함수의 파라미터 값을 조정하는 것은 수학 없이 하기 어려워져서 부득이하게 기초부터 다시 쌓아 올라가자는 마음으로 이 과정을 시작하게 되었다
자료들을 읽어보고 나름대로 종합해서 판단한 결과, 최소한으로 갖추어야 하는 수학적 소양은 선형대수(Linear Algebra)와 미적분(Calculus)인 것 같았다. 크게 이 두 가지만 알아도 기계학습과 딥러닝을 공부할 때 80%는 충분히 따라갈 수 있지 않을까 생각이 들었다. 이에 더해 통계적 수학(분포, 추론 등)에서 사용되는 수학을 알면 남은 20%가 채워지는 듯 했다
하지만 고등학교 공부를 다시하기에는 이를 고등학교 차원에서는 행렬이나 미적분, 벡터 등 주요 개념들을 배우기는 하는데 그 범위가 상당히 넓고 직접적으로 연결하여 공부하기에는 시간도 부족하고 비용이 커서 효과적으로 공부를 하기가 어려운 문제가 많았다. 스탠포드 대학교의 커리큘럼 등을 조사한 결과 위의 두 가지는 한국에서 말하는 대학수학과 공업수학에서 커버하는 범위의 수학이었다. 하지만 이는 이과생 친구들도 버거워하는 사람들도 많았던 걸로 기억해서 책을 사고 바로 공부하러 들어가는 것도 갑자기 높은 장벽을 넘겠다는 불로 날아드는 불나방 같은 느낌이 들었다.
수포자를 위한 대학수학 공부를 찾다보니 생각보다 많은 인강에서 나와 같은 목적은 아니지만 비슷하게 교차지원이나 군제대후 복습 등 여러 이유로 수학을 대학에서 다시 공부해야 하는데 배우지 않았거나 까먹었거나 여러 이유로 공부를 하고자 하는 사람들이 많은듯 했다. 또 그런 사람들을 위한 인터넷 강의도 있어 한 군데서 나도 시작하게 되었음 (이 업체와 저는 아무 상관 없습니다)
본격적으로 기계학습 알고리즘을 다시 복습하는 12월 20일까지(정해놨음 시작을!) 기초가 되는 것들을 마치려고 계획을 세웠다. 중고등 기초 수학, 대학수학까지는 하려고 하며 시간이 가능하면 선형대수학을 추가적으로 하려고 한다. 선형대수학은 프로그래머를 위한 선형대수학이라는 책을 바탕으로 하려고 하며 아주 기본적인 내용은 NumPy에서 선형대수학을 설명했을 때 소개했었던 그 교재로 기초적인 지식은 쌓아둔 상태이다.
2017/10/09 - Python 기초 - NumPy로 선형대수 표현하기 (1)
그럼 문과생을 위한 딥러닝 수학 기초를 하나씩 정리해 나가야겠다....
문과생을 위한 딥러닝 수학 - 쌩기초편 (1)
다항식과 연산
1. 단항식과 다항식
(1) 단항식 : 곱으로만 이루어진 식
- 차수 : 곱하여진 문자의 개수
x제곱y는 3차식 x x y 총 3개의 문자 - 계수 : 특정한 문자를 제외한 나머지 부분
2xy -> xy의 계수는 2. 미지수 앞에 달린 수를 계수라고 부름
- 항 : 다항식을 이루고 있는 각 단항식
x + 2y + 1 에서 x, y 각각을 1차식 항이라고 부름, 1은 상수항 - 동류항 : 특정한 문자 부분이 같은 항
x제곱 + 2x제곱 -3x제곱 은 동류항끼리 계산이 가능 x제곱으로 묶으면 x제곱(1 + 2 -3)이 되어 0*x제곱 -
차수 : 가장 큰 차수
다항식에서는 차수는 가장 큰 차수를 가진 것으로 말함
4x제곱y -5y제곱 + 4xy - x + 5는 가장큰 차수가 4x제곱y이므로 3차식이라고 함
2. 다항식의 연산
(1) a + b = b + a
(2) (a+b) + c = a + (b+c)
(3) ab = ba
(4) (ab)c = a(bc)
(5) m(a+b) = (a+b)m = ma + mb
(6) (a+b)÷c = (a+b)×(1/c) = (a+b)/c
덧셈의 교환법칙을 사용해서 동류항끼리 계산이 가능
3. 유리식의 연산
(1) 분모가 같을 때 합ㆍ차 :
A/C ± B/C = (A±B)/C
(2) 분모의 다를 때 합ㆍ차 :
A/C ± B/D = (AD±BD)/CD
(3) 유리식의 곱셈 :
A/B × C/D = AC/BC
(4) 유리식의 나눗셈 :
A/B ÷ C/D = A/B × C/D
4. 무리수
(1) 분모 또는 분자가 일 경우,
을 곱한다
(2) 분모 또는 분자가 일 경우,
을 곱한다
5. 지수 법칙 (a≠1, a>0)
'Data Science > 문과생을 위한 딥러닝 수학' 카테고리의 다른 글
문과생을 위한 딥러닝 수학 - 핵심편 (1) (1) | 2018.06.20 |
---|---|
문과생을 위한 딥러닝 수학 - 기본편 (4) 절댓값 함수, 가우스 함수 (0) | 2018.01.11 |
문과생을 위한 딥러닝 수학 - 기본편 (3) 유리함수, 무리함수 (0) | 2018.01.10 |
문과생을 위한 딥러닝 수학 - 기본편 (2) 지수함수, 로그함수 (0) | 2018.01.08 |
문과생을 위한 딥러닝 수학 - 기본편 (1) 1차함수, 2차함수 (0) | 2018.01.04 |
문과생을 위한 딥러닝 수학 - 쌩기초편 (4) 연립방정식, 부등식 (0) | 2017.11.18 |
문과생을 위한 딥러닝 수학 - 쌩기초편 (3) 방정식 (0) | 2017.11.09 |
문과생을 위한 딥러닝 수학 - 쌩기초편 (2) 곱셈공식과 인수분해 (0) | 2017.11.07 |
댓글