비개발 직군에게도 추천할만한 책이라고 써있는데 학습을 막 시작하려는 사람들에게는 책에 나온 설명이 불충분하게 느껴질 수 있다. 광범위한 영역을 다루다 보니 하나의 용어에 대해서는 자세히 다루지는 않는다. 예를 들어, 평균 제곱 오차를 설명하면서 L2노름에 대해 언급만 하고 지나가는데(p.108), L2노름에 대해서 알지 못하면 '이것과 이것은 서로 관계가 있는 것이구나' 하는 것을 메모해 놓고 내용을 더 자세히 찾아서 공부하는 전략을 택할 수밖에 없다. 이 책은 수학의 어떤 개념들이 어느 부분에 사용되고 있는지 큰 그림을 그리면서 봐야하는 책이고, 또 그렇게 보기에 좋은 책이다. 수학에 더 중점을 두고 보고 싶다면 한빛미디어에서 나온 <개발자를 위한 필수 수학>을 먼저 보는 것이 더 나을 것 같다.
회귀, 분류, 군집화, 신경망, 컴퓨터비전, 자연어처리, 확률적 생성 모델, 그래프 모델까지 차례로 살펴보다 보면 책의 2/3 지점에 다다른다. '금융 인공지능'도 7장의 제목에 있어서 반가워 넘겨봤는데 내용은 많지 않아서 살짝 실망도 했다. 9장 그래프 모델은 실제 산업에서 어떤 이론을 근거로 구현이 되는지를 다양하게 살펴볼 수 있어서 좋았다. 좀 더 깊게 공부하고 싶은 부분이다.
10장 운용 과학은 좀 새로웠다. 운용 과학을 5개로 요약하면 수학적 공식화, 최적화, 알고리즘, 소프트웨어, 의사결정이라고 한다. 응용 수학에서 가장 매력적인 분야라고 언급하고 있다. 이쯤에서는 수학, 경제학, 컴퓨터공학 등 여러 학문이 경계 없이 넘나드는 느낌이다. 결국 우리가 원하는 건 우리가 부딪히고 있는 현실의 문제 해결이고, 문제 해결을 위해서는 복잡한 현실을 단순하게 모델링하고 최적화해야 하므로. 본격적으로 수학에 집중하기 시작하는 챕터이기도 하다. 공부할 것이 너무나 많구나....
자연어를 다루는 강의를 할 때마다 벡터공간에 단어들이 어떻게 배치되어 있는지를 보여주고 word2vec에 샘플을 입력해 보면서 단순히 임베딩, 벡터공간, 거리(유사도)에 관한 개념만 설명해왔는데 편향성 해결을 언급한 부분이 재밌었다. 단어 벡터에서 편향을 제거하기 위해 '소프트웨어 엔지니어' 벡터에서 '남자man' 벡터와 '남성male' 벡터를 빼는 hard debiasing 방법을 소개하고 있다. 챗GPT에게 물어봤더니 하드 디바이어싱만 사용하면 벡터의 유용한 의미를 훼손시킬 우려도 있다며 다양한 방법들을 소개해준다. 적용해봐야겠다.
짧은 시간 안에 처음부터 끝까지 다 꼼꼼하게 읽지는 못했지만 한 페이지씩 모두 넘겨보긴 했다. 더 깊이 알기 위해서는 부가 자료를 찾아 좀 더 공부해야 한다. 하지만 다양한 내용을 다루고 있기 때문에 전체적인 맥락을 훑으면서 필요한 부분만 깊이 공부하는 방향으로 스터디 모임을 만들어 교재로 사용하기에는 좋은 책인 것 같다.
챕터가 끝날 때마다 [정리하기] 코너를 통해 정리를 해주는 부분도 도움이 된다.