728x90

안녕하십니까, 간토끼입니다.

오늘은 인사이트 출판사의 이벤트로 받은 머신 러닝·딥 러닝에 필요한 기초 수학 with 파이썬에 대한 서평을 작성해보도록 하겠습니다.


확실히 머신러닝을 배우면서 느끼는 것이지만 최근 입문자도 굉장히 많아지고 있으며, 그중 비전공자의 유입이 차지하는 비중이 꽤나 커지고 있습니다.
다만 비전공자라도 머신러닝을 깊게 공부하는 것이 아닌 배워보려는 목적을 갖고 있다면 수학, 통계학에 대한 지식은 필수적으로 갖춰야 한다고 생각합니다.
(그렇지 않다면 책 속의 깔끔한 데이터와 완벽한 예제 코드만 복사+붙여넣기할 수 있는 수준을 넘어서지 못하겠죠.)
그렇기에 이 책은 머신러닝을 배워보려는 '수포자'에게 추천하는 책입니다.


Q. 이 책은 어떤 책인가요?
머신러닝, 그리고 딥러닝을 배워보고자 하는 '수포자'들을 위해 핵심적인 기초 수학의 지식을 담은 책입니다.
머신러닝을 배우고자 할 때 핵심만 꼽자면 다음과 같은 지식이 요구된다고 생각하는데요.
- 수학 : 미적분학, 선형대수학
- 통계학 : 기초통계학/수리통계학, 확률론, 회귀분석, 통계계산, 디변량통계학 ...

사실 많이 알면 알수록 좋겠지만 '초심자' 혹은 '입문자'의 입장에서 위와 같은 전공 서적들을 모두 읽기엔 버거운 것이 사실이겠죠.
저도 차근차근 공부하고 있으나 버거운 것이 사실입니다.
따라서 이 책은 위와 같은 본격적인 공부를 하기 전에 놓쳤던 수학, 통계학 기초 지식을 빠르게 훑어주면서,
이러한 수학 개념들이 머신러닝과 어떻게 연결되는지 쉽게 이해시켜주는 책이라고 할 수 있습니다.

이 책의 구성은 총 10개의 챕터로 이루어져 있는데요.입문서답게 핵심 개념 위주로 구성되어 있습니다.

먼저 머신러닝이 무엇인지, 그리고 '선형회귀'의 개념으로 소개하며 머신러닝과 회귀분석의 개념을 연결하는 것으로 시작합니다.
이후 함수 / 다변수 함수와 벡터함수 / 도함수 / 미분 / 행렬 / 최적화 - 테일러급수, 경사도벡터, 헤시안 매트릭스 등
/ 인공신경망 / 선형회귀 순으로 되어있습니다.

책을 읽으면서 놀랐던 것은 '예상했던 것보다 구성이 괜찮다'는 것이었습니다.
물론 통계학적인 개념이 없는 것은 아쉬웠으나 이 책에 통계학 개념까지 넣었다면 다소 복잡하긴 했겠죠 ^^;

그리고 수포자를 위한 책인 것치고 마냥 수포자에게 쉽진 않을 것 같습니다.
(제가 생각하는 수포자의 정의란 고등학교 수학(미적분 기초)도 어려워하는 분들을 말합니다.)

그렇다고 못하실 정도는 아니니 수포자분들이라면 조금 긴장하면서 공부하시면 좋을 것 같고,
수학을 부담스러워하지 않으시는 분들이라면 정리하는 차원에서 읽으셔도 좋고, 머신러닝 입문시 빠르게 감을 잡기 위해 읽으시는 것도 좋아보입니다.

또한 파이썬 코드를 기반으로 수학 개념을 실습하며 이해할 수 있다는 것 또한 장점입니다.
파이썬에 대해 잘 모르시더라도 부록에 파이썬 기초가 첨부되어 있으며, 사실 그냥 코드를 이해하지 못해도 '수학 개념을 눈으로 직접 보는 것'이 목적이라면 무방합니다.
그냥 코드대로만 치셔도 결과가 나오므로 코딩은 신경쓰지 않아도 됩니다.
'코딩'까지 같이 공부하실 목적이라면 더더욱 좋고요 ^^


Q. 그럼 누구에게 추천하는 책인가요?
실제로 이 책의 저자인 조준우님께선 다년 간의 강의 경험을 바탕으로 입문하려는 독자의 수준을 고려해 책의 내용을 설계하셨다고 하는데요.
저자께서 고려한 이 책의 독자층은 다음과 같습니다.
- 1차 대상 : 배경 지식이 전혀 없거나 너무 오래전에 배운 내용이라 수학의 대부분을 잊어버린 상태에서 이제 막 머신러닝에 흥미를 느끼고 시작하려는 독자
- 2차 대상 : 머신러닝에 이미 관심이 높지만 당장 구현보다는 체계적으로 내용을 이해하고 싶은 개발자들 혹은 비전공자들

위에서도 언급했지만 개인적으로 1차 대상분들이라면 조금은 긴장하고 읽으셔야 할 것 같습니다.
공부한 사람 입장에서는 어려운 개념은 아닌데, '미분' / '행렬' / '벡터' 이런 낯선(?) 키워드에 겁먹는 분들이라면 어려울 수 있습니다.
하지만 이런 난이도에 어려워하면 머신러닝 공부하는 건 더더욱 쉽지 않겠죠^^;

그래도 구성이 상당히 괜찮습니다.
저도 학부생인지라 배우는 입장이지만 감히 평가하자면 이 책의 구성대로만 살펴봐도 머신러닝 이론에서 나오는 기초적인 수학 개념은 다 이해할 수 있습니다.
다만 통계 개념이 빠져있으므로 여기에 회귀분석, 확률론 공부 정도만 곁들여도 핸즈온 머신러닝 책 정도는 이해하기 충분합니다.

예를 들어 앞에서는 함수의 기초적인 개념을 소개와 더불어 고등학교 문과 수학 정도의 미분을 소개했다면,
일변수 함수에서 다변수 스칼라함수, 벡터함수까지 개념을 확장합니다.

기초적인 미분 개념이죠


이후 행렬 벡터의 개념을 통해 데이터를 행렬과 벡터를 이용하여 표현하는 방법을 소개했다면
Backpropagation에서 chain rule을 이용한 연산 방법을 앞에서 나온 개념을 이용해 소개하면서
기초 수학 개념이 머신러닝, 딥러닝에서 어떻게 활용되는지 유기적으로 보여준다고 할 수 있습니다.

특히 아래에서와 같이 야코비안, Gradient Vector 같은 개념은 다변수 벡터함수와 기하와 벡터정도는 이해해야 적용할 수 있습니다.
그렇기에 이 책의 중간에 나온 개념이 왜 딥러닝에 필요한지를 유기적으로 연결함으로써 보여주고 있는 것이겠죠.

인공신경망의 핵심 중 하나인 역전파알고리즘(Backpropagation)을 앞서 소개한 개념을 이용해 유기적으로 설명하고 있습니다.

보시다시피 이해하시려면 수학 공부를 하긴 하셔야 합니다.

이후 내용도 구성이 참 좋습니다.
규제(Regularization)에 대한 부분은 초심자에게 어려울 수도 있는 부분인데 가감없이 수식을 통해 직관적으로 보여주고 있더라고요.


Q. 이 책의 장점은 무엇인가요?
개인적으로 초심자, 입문자를 위한 책들은 너무 기초 위주로 쓰여 있을 뿐더러
특히 '파이썬' 등 실습을 통해 설명한다고 하는 책들은 대개 수학적인 개념보다는 실습에 비중을 둠으로써 난이도가 생각보다 낮다는 생각을 많이 하였습니다.
물론 너무 어려우면 초심자들이 읽기는 커녕 다들 도망가기 바쁠테니 어쩔 수 없는 선택일 수 있겠다고 생각은 하지만,
그럼에도 불구하고 원래 입에 쓴 게 몸에도 좋은 법이라고 '머신러닝'을 공부하기로 마음을 먹었다면 보다 힘차에 공부할 필요성이 있다고 생각합니다.

그러한 의미에서 이 책은 제가 생각한 '초심자를 위한 책'의 정의를 다시 내리게 만들어준 책입니다.
만약 제 주변에 데이터 사이언스에 입문하고 싶은 문과생이 있다면 무조건 이 책을 추천해줄 것 같습니다.
비전공자를 위한 핵심적인 수학 개념 위주로 적혀있기에 '가성비'가 좋기 때문이죠.

사실 가장 좋은 건 스튜어트 미적분학책부터 시작해서 최적화(Optimization), 선형대수학(Linear Algebra) 등 전공 서적을 펼쳐놓고 하나씩 공부하는 것이겠죠.
그러나 우리에겐 시간의 제약도 있을 뿐더러... 입문자에게 그러한 코스를 요구하기엔 무리가 있겠단 생각이 듭니다.
그렇기에 이 책을 이용하면 위와 같은 코스를 거치지 않고도 핵심 개념만 쏙쏙 이해할 수 있습니다.

사실 입문서치고 수식이 제법 많아서 전 너무 좋습니다.
코드 위주의 책은 ... 음 크게 도움은 안 된다고 생각하는 입장이어서요. 당장의 성취감(?)을 위해서는 코드 위주의 책이 좋겠지만 딱히 실속이 없습니다.
보통은 책속에 있는 코드 딱 치고 결과가 나오는 걸 보면서 오... 감탄만 하지, 배워가진 못하거든요. 자기만족이죠.

사실 수학 개념을 잘 이해하고 있으면 파이썬으로 구현하는 건 정말 어렵지 않습니다.
'구현'보다 개념의 '이해'가 훨씬 중요합니다. 수리적으로요.

그러한 의미에서 이 책을 입문서로써 강력하게 추천합니다.
코드의 구현은 정말 부수적이고, 실제론 수학 개념을 이해하는 것을 중점으로 두고 있는 기본에 충실한 책입니다.
아마 비전공자라면 이 책 정도만 읽어도 우선은 후회없는 선택을 하실 거예요.
이 책의 개념이 다 이해됐다면, '프로그래머를 위한 선형대수/해석학' 책이나 '기초통계학', '수리통계학' 등을 부가적으로 읽으시면 훨씬 좋을 것이라 생각합니다.

좋은 책을 리뷰할 수 있도록 기회주신 인사이트 출판사측에 다시 한번 감사의 말씀 드립니다.



감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)




- 간토끼(DataLabbit)
- University of Seoul
- Economics, Data Science

728x90

+ Recent posts