딥러닝을 공부하려면 선형대수학, 확률통계, 벡터미적분학이 가장 기초적인 수학과목으로 꼽히고 딥러닝을 '연구'하려면 이제 거기서 더 들어가서 해석학, convex optimization, 심화적인 선형대수학, 수리통계 등을 이야기하죠. 그리고 여기서 이제 각자의 분야에 맞게 더 필요한 수학공부들을 해나가야 하고요.
그 이유는 선형대수학에서는 기본적인 벡터, 행렬들의 연산, 벡터공간, 중요한 행렬들과 그 성질, 행렬 분해 등에 대해서 배우죠. Neural Network도 결국 파라미터들을 하나의 거대한 행렬로 볼 수 있습니다. 그리고 데이터 sample은 기본적으로 벡터로 볼 수 있기 때문에 데이터가 들어가서 내부에서 이뤄지는 연산은 행렬과 벡터의 곱셈이 됩니다. (물론 엄밀하게 tensor로 보지만..일단 이건 나중 문제고). 그리고 전통적인 머신러닝은 결국 행렬 가지고 노는 문제들 (e.g. SVD -> PAC) 이 대다수이기 때문에 선형대수학은 깊게하면 깊게 공부할수록 무조건 유리합니다.
다음으로 우리가 NN을 학습시킨다고 할 때 이는 결국 파라미터의 값을 바꿔나가는 겁니다. 이 때 현재 가장 많이 쓰이는 방법이 손실함수의 1차 미분값 (Gradient)을 활용해서 파라미터를 업데이트하는 데 이는 결국 벡터미분입니다.
또한 딥러닝 모델의 목적은 데이터 분포와 근사되는 최적의 함수를 찾는 것이라고 할 수 있습니다. 하지만 우리는 데이터 분포를 정확하게 알 수 없기에 여기에는 다양한 근사 / 추정 테크닉이 들어가고 이 과정에서는 무수히 많은 Randomness들이 들어가게 됩니다. 또한 NN을 학습시킬 때도 randomness가 존재합니다. (stochastic gradient methods) 즉 확률통계는 딥러닝 메커니즘을 이해하는데 필수적입니다.
2023.09.07
대댓글 1개
2023.09.07
대댓글 1개
2023.09.08
대댓글 1개