티스토리 뷰

Hobby/Book

[Book] 알고리즘 구현으로 배우는 선형대수

생각많은 소심남 2022. 2. 1. 00:04

(해당 포스트에서 소개하고 있는 "알고리즘 구현으로 배우는 선형대수" 책은 BJ퍼블릭으로부터 제공받았음을 알려드립니다.)

 

알고리즘 구현으로 배우는 선형대수 with 파이썬

알고리즘 구현으로 배우는 선형대수 with 파이썬 부제 행렬의 기초부터 텐서를 활용한 머신러닝과 딥러닝 적용까지 저자 장철원 출간/배본가능일 2021년 12월 24일 정가 34,000원 페이지 592쪽 판형 1

bjpublic.tistory.com

아마 공대를 처음 입학하면 제일 처음 배우는 전공기초 과목들이 있었을텐데, 전자과를 나왔던 나는 그 과목중에 선형대수학, linear algebra가 있었다. 사실 과목에서 다루는 것이 막연하게 행렬이 나오고 어떻게 곱하는지를 가르쳐주는 통에 지루해서 대충 들었었는데, 지금 돌이켜보면 그 때 수업을 안 들었던게 너무 후회가 된다. 행렬을 다루고 실제 생활에서 어떻게 사용되는지를 잘 배워뒀더라면 학과 수업이나 지금 일하는 것들이 조금 수월했을텐데 말이다.

 사실 선형대수학 수업을 들어보면 지루하긴 하다. 차원이 늘어나면서 한 식에 표현되는 숫자도 많아지고, 곱셈하나 잘못하면 전체 계산이 다 어그러지는 경우가 많아, 왠만하면 손으로 푸는 경우 끈기를 갖고 집중해야 한다. 다행히 요새는 이런 행렬 계산을 해주는 라이브러리도 많아 일일이 신경쓸 필요까지는 없지만, 그래도 선형대수에서 다뤄지는 주요 개념은 이해하고 있어야 한다. 나같은 경우는 현업에서 제어관련 논문을 보면 증명 부분이 항상 선형대수가 포함되어 있다. 그래서 이 주제가 참 어려우면서도 통계학과 같이 항상 배워야 할 분야라는 것을 느낀다.

알고리즘 구현으로 배우는 선형대수 with 파이썬

이번 포스트에서 소개하는 책은 이 선형대수 관련 알고리즘을 직접 파이썬으로 구현하는 것에 대한 내용을 담고 있다. 출판사에서는 나름 "빨간책과 초록책"이라는 의미를 부여해서 인공지능을 공부하는데 필요한 기본 주제인 통계학과 선형대수를 소개하고 있는데, 이 초록책은 선형대수에 대해서 다루고 있다.

앞에서 이야기했던 것처럼 선형대수학은 공대 전공기초 과목 중 하나이기도 하기 때문에, 이 주제를 다루는 대학 교재들이 참 많다. 이 책도 두께만 놓고 보며 여타 대학교재와 맞먹는 정도의 분량을 자랑한다. 여기서 마음에 들었던 것은 그 많은 분량속에 어떤 선형대수 함수를 파이썬으로 직접 구현하면서 예시와 이론 설명이 병행되어 있다는 점이다. 개인적으로는 뭔가를 직접 구현하면서 최종적으로 어떤 결과물이 나오는 것을 통해서 성취감을 느끼고 학습의 효과가 크다고 생각하는 편인데, 이 책은 전형적으로 그런 형태를 취하고 있다. 그래서 마지막 두 장에서는 실제 데이터를 바탕으로 학습했던 이론들을 실제 적용해보는 부분이 포함되어 있다.특히 예시 부분에서는 이해가 쉽도록 도식들도 많이 포함되어 있어 늘어난 내용만큼이나 설명이 자세하게 되어 있었다. 간단하게 책에서 다루고 있는 주제는 다음과 같다.

  • 행렬
  • 기저와 차원
  • 내적
  • 곱 연산
  • 고유값과 고유벡터
  • LU분해
  • 텐서
  • 이론적용

책의 내용이 전반적인 선형대수론에서 다뤄지는 내용들을 커버하기 때문에 선형대수를 처음 접하는 파이썬 개발자나 이미 알고 있는 사람들이 보기에도 좋다. 나는 현업에서 항상 어려움을 겪는 부분이 딥러닝 모델을 만들다가도 각 계층간의 텐서의 shape를 맞추는 부분인데, 책에서도 그림을 통해서 쉽게 설명되어 있는 부분이 괜찮았다.

선형대수 지식이 부족했던 것을 채우려고 나름 강의를 들었던게 Gilbert Strang 교수의 Linear Algebra and learning from data인데, 사실 강의 내용이 좋은줄은 알겠지만, 해당 지식을 어디에도 적용할 수 있을까 그런 막연함이 들었었는데, 그래도 나름 이 책을 통해서 그런 막연함이 조금 해소되는 듯 했다. 아마 비슷한 경험을 했던 사람이라면 관련 지식을 쌓는데 도움을 받지 않을까 생각한다.


PS: 책 관련 github도 공개되어 있으니 참고하면 좋을 듯하다

 

GitHub - bjpublic/LinearAlgebra: 알고리즘 구현으로 배우는 선형대수 with 파이썬

알고리즘 구현으로 배우는 선형대수 with 파이썬. Contribute to bjpublic/LinearAlgebra development by creating an account on GitHub.

github.com

 

댓글