독서 (서평+독후감)/IT | 기술 | 공학

(서평) 개발자를 위한 실전 선형대수학 (마이크 X 코헨) - 한빛미디어

야곰야곰+책벌레 2023. 10. 18. 12:27
반응형

  알고리즘을 만들다 보면 자연스럽게 수학 공식들이 필요하다. 풀어가는 과정을 모두 코딩으로 구현하면 과정도 만만치 않고 오류가 생길 가능성도 높아진다. 그리고 무엇보다 시간이 오래 걸린다. 알고리즘의 속도는 곧 성능이다. 최근에는 라이브러리 형태로 이런 것들을 제공해 주는 경우가 많아졌다. 그래서 손쉽게 구현이 가능하다. 하지만 범용 라이브러리 기능에는 필요하지 않은 기능까지 포함되어 있는 경우가 많다. 더 타이트한 성능 개선을 위해서는 내부를 정확하게 알아 둘 필요가 있다.

  선형대수학의 기본과 이를 파이썬으로 활용하는 방법을 다루는 이 책은 한빛미디어의 지원으로 읽어볼 수 있었다.

  벡터와 행렬을 다뤄 본 지가 언제인지 기억이 나질 않을 정도로 세월이 흘렀다. 고등학교 수학 2에서 그리고 대학교에서 다뤘을 정도다. 사회에 나와서는 복잡한 알고리즘을 사용할 일이 거의 없어 삼각함수 정도만으로도 해결이 되는 경우가 많았다. 최근에 알고리즘을 다루려다 보니 다시 행렬과 만나게 되었다. 기억을 더듬어 겨우 몇 가지 구현했을 정도다.

  선형대수학은 알고리즘에서 가장 많이 다루는 수학이다. 펜을 들고 일일이 증명해 나가면 쾌감은 있겠지만 빠른 세상에 빠르게 적응하려다 보니 코드와 함께 풀어보는 편이 수학을 활용하는 방법까지 느낄 수 있게 된다. 그리고 빠르게 연산을 해주니 확인도 어렵지 않다. 그러면에서 파이썬은 좋은 선택인 듯했다.

  파이썬의 기본 지식을 조금만 가지고 있다면 따라 하기는 어렵지 않다. 오히려 선형 대수학의 지식이 더 많이 필요할 것 같다. 책을 보며 바로 코드로 옮기는 작업보다는 펜으로 한번 식을 적어보고 코드로 옮기는 편이 좋을 것 같다. 머릿속으로 정리가 안 되는 코드는 결국 남지 않으니까. 

  벡터와 행렬에 대한 개념과 기본적인 활용 방법을 알려주고 후반부로 갈수록 어려워진다. 상관계수 분석이나 선형판별분석 같은 것은 조금 어렵지만 파이썬을 이용하면 쉽게 구현할 수 있다. 물론 그 개념을 완벽하게 이해하는 건 이렇게 빠른 시간에는 어려울 것 같다. 

  각 장이 끝나면 연습문제가 있는데, 풀어보는 것이 많은 도움이 된다. 쉽지는 않았다. github에 답안 코드가 있어서 매번 참고하며 구현해 봤다. 마치 매트랩을 쓰는 듯한 편리한 plot 화면은 왜 파이썬을 써야 하는지 알 것 같았다. 매장 매장 어려우면서도 신기해하며 즐겁게 봤던 것 같다.

  물론, 몇 권의 책을 더 봐야 할 것 같다 (파이썬을 제대로 공부해 볼까란 생각도 들었다)

반응형