리뷰

[리뷰] 딥러닝을 위한 수학

손혜정 2022. 8. 24. 23:55

요샌 딥러닝 모델을 만들다 보면 라이브러리가 너무 친절해서 수학을 고민해볼 필요가 많이 없다.

그런데 사실 수학적인 기본이 탄탄해야 디테일한 성능을 높일 수 있다..

중요하긴 한데, 어디서 어떻게 시작해야할지 잘 모르던 찰나에 좋은 책이 나온 것 같다. 읽어보고 싶었다.

 

 

첫 시작은, 심층학습의 가장 기본인 확률에 대한 장이다.

분명 읽기 전에 확률 어렵지 않다고 생각하고 시작했는데, 오랜만에 수학적으로 다시 접근하니 아찔했다.ㅎ..

가장 기본이 되는 이론들과 함께 유명한 수학 문제를 소개해 줘서 딱딱한 수학책 느낌은 아니다.

(확률을 예로 들면 몬티 홀 딜레마, 생일 역설 등 수학책과 상관 없이 일상 생활에서도 들어본 문제가 나온다)

 

 

그리고 이러한 수학 문제를 직접 코드로 구현을 하고 증명을 한다.

심층 학습 모델의 코드를 작성하기 위해 근본이 되던 수학을, 이번엔 수학을 위해 코딩을 해보니 좀 새로운 느낌이 든다.

확률을 3부까지 나눠서 다루고, 그 다음으로 통계 장이 따로 존재한다.

확률에서 베르누이, 푸아송 분포,.. 베이지안 정리까지 다시 훑어본다. 베이지안의 경우엔 현업에서도 종종 나오는데

(Uncertainty 관련된 분야에서도 자주 나왔던 것 같다) 필요하다 생각하는 부분이 잘 정리되어 있는 것 같다.

 

통계는 데이터 분석, 판단 분야에서 중요하다는 생각이 든다.

모델을 만들때 데이터가 무척 중요하다고 생각하기 때문인데, 데이터가 편향 되어있는지, 표준 오차가 어느정도 되어있는지 확인하고 실제로 그 값을 구하는 방법과 이를 어떻게 표현할지 알아본다.

 

 

선형대수 단원에서는 '텐서 산술 연산'을 다루는데, 내적, 외적의 표현 방법, 의미, 계산에 대해 알려준다. 인상깊었던 부분은 실제로 심층 모델을 만들 때, 이 방법이 어떻게, 왜 쓰이는지에 대해 설명을 해주어 각 층의 신경망이 의미하는 바가 어떻게 되는지 생각해볼 수 있다.

또한 초기에 종종 헷갈리는 벡터곱과의 차이, 실제 코드에서도 어떻게 표현하는지 차이를 알려준다.

거리를 계산하는 방식이 어떻게 사용이 되고 왜 그렇게 계산하는지? 벡터들간의 관계는? 등 심층학습 각 단계에 포함되어 있는 수학의 의미와 계산 방법에 대해 집중하여 설명해주기 때문에 딥러닝에서의 수학적 기본 개념을 쌓기에 좋은 것 같다.

 

미분 적분 챕터에선 대부분 수학 설명으로 이루어져 있고, 심층학습의 주된 행렬 미분이 8장에서 나온다. 

9장 부터는 신경망의 작동 방식에 대해, 데이터가 각 층에서 어떤 연산을 거쳐 최종 출력이 되는지에 대해 수학, 그림, 설명으로 설명해줘서 친절하다는 생각이 들었다.

 

아직 끝까지 읽진 못했지만, 딥러닝 모델을 다루면서 수학을 다시 보고 싶은데 어디서 봐야할지 잘 모르겠을 경우에, 수학이 부족하다고 느끼는 분들께 필요한 책이라는 생각이 든다.