본문 바로가기
[Review]/Book

[도서 리뷰] 텐서플로를 활용한 머신러닝

by 해피빈이 2021. 7. 25.

> 진행에 앞서

텐서플로에 대한 책이라니..

머신러닝에 대한 것은 수학이 들어가면 다시 힘들어지고를 몇 번 반복했던터라 관심을 가지지 않고 있었지만, 그래도 시대의 흐름을 무시할 수는 없기에 주기적으로 억지로나마 보기로 하고 있었는데.

지금이 바로 그 때다.

 

> 책에 대한 간단한 정보

이 책은 머신러닝, 딥러닝 입문서이다. 매닝에서 나온 번역서로서, 책의 표지만 봐도 그 느낌이 있다.

매닝(Manning)의 책은 특징이 있는데, 책의 모든 원고가 완성된 다음에 출건하고 판매하는 것이 아니라 한 챕터의 원고가 완성될 때마다 인터넷에 공개하면서 미리 판매를 시작하는 독특한 모델로 운영한다는 것이다.

은닉 마르코프 모델이나 강화학습을 텐서플로로 제대로 구현한 예는 찾아보기 쉽지 않다고 하지만, 이 책에서는 소개할 수 있었는데 바로 이러한 이유 때문이라고 한다.

 

책이 많이 두껍지는 않지만, 그렇기 때문에 쉽게 접근할 수 있어서 좋았다.

앞 표지

 

> 인상깊은 부분들

생각보다 첫 챕터의 시작이 가벼운 느낌이었다. 챕터의 시작이 가벼웠기 때문에, 술술 읽히는 느낌이었고, 그 시작의 내용은 위와 같다. 머신러닝이라는 것이 필요했던 이유와 그러면 어떤것이 필요했었나 하는 요소들의 나열, 그러한 흐름이 자연스럽게 텐서플로까지 이어지게 된 것 같다.

 

예제코드는 생각치 못하게 친절했다. 각 라인에 대한 설명이, 손글씨로 첨삭지도해주는 느낌이들어서 좋았다. 보통은 설명은 따로 위나 아래에 기록을 하기 마련인데, 그렇다면 그 설명과 코드를 왔다갔다 하면서 찾아볼 수 밖에 없지만, 이렇게 바로 첨삭으로 설명해주면, 그럴 필요가 없기 때문에 시간을 상당히 절약할 수 있게 된다.

 

연습문제도 실려 있었으며, 연습문제의 해답도 바로 기록되어 있었다. 개발 관점에서의 문제 뿐 아니라 위에서 보이는 것처럼 수학에 관한 문제도 다뤘다. 역시 머신러닝은 수학과는 빼놓을 수 없는 관계에 있기에 좋았으며, 그것으로 인해 지식이 풍부해지는 느낌을 받았다.

연속적인 함수에 대한 정의도 아마 고등학생 시절 배우지 않았을까 하는 생각이 들지만, 몰랐던 부분이기에 잘 챙겨 넣었다. :)

 

주요내용이 중요한 뒷판이다. 머신러닝의 개념과 텐서플로의 주요 역할, 그리고 기본 알고리즘으로 다루는 회기, 분류, 군집, 은닉 마르코프 모델, 또한 오토인코더, 강화학습, 합성곱 신경망, 순환 신경망, 시퀀스2 시퀀스 모델, 유틸리티에 대하여 다루고 있다.

 

이 부분은 덤으로 실제 실습하다가 좌절한 부분이다. GPU로 NVIDIA 3070 카드를 가지고 있는데, 그것을 제대로 활용하기 위해 별도의 CUDA Toolkit 11.4 버전을 설치하였지만, 동작하지 않았다. 어떠한 이유가 있을 것 같은데, 찾기가 어려워서 일단은 포기하였다.(후에 다시 도전해야겠다...) 확실히 이런 프레임워크가 중요한 실습은 환경구성 자체가 큰 과제라고 생각이 든다.

 

> 괜찮은 부분

1. 목적에 충실하게 텐서플로와 머신러닝 학습을 다뤘다.

이 책은 입문자가 텐서플로와 머신러닝을 두려워하지 않고 잘 스며들도록 학습하게 하는 데 있다고 생각을 했다. 그러한 목표를 잘 이뤘다고 생각이 든다. 머신러닝은 수학때문에라도 어려울 수 있는 개념이었지만, 텐서플로를 앞세워서 그것을 눈으로 확인시켜줌으로 해소하려 하였고, 나 또한 이 책을 다 읽은 것은 아니지만, 가볍지만 이유를 귀납적으로 잘 설명한 문장들을 읽어가면서 그곳에 언급된 키워드를 잘 주워갈 수 있었다. 입문자가 텐서플로와 친숙할 수 있도록 그 목적에 충실했다고 생각한다.

 

2. 적절한 자료로 자연스럽게 읽혀지는 흐름

수 많은 어려운 단어를 한 번에 가져오기는 힘든건 사실이다. 그래서 스토리텔링을 이용하여 잘 스며들게 하였으며, 그러한 과정에서 비교하는 도표가 도움이 되었고, 다이어그램과 그래프, 실행결과 화면 등이 적절하게 도움을 주었다. 다르게 표현하자면 지루하지 않은 구성으로 도움을 주었다고 생각이 든다. 마치 잘 포스팅된 블로그를 보는 느낌이랄까.

 

3. 계획적으로 읽을 경우 완독이 가능한 구성

전체적으로 12개의 챕터로 되어있다. 사내 혹은 교내에서 스터디를 진행한다면 적절하게 3~4달 안에 익히면서 함께 보기 좋은 구성이라고 생각이 든다. 사실 내용이 가볍지는 않지만, 얇게 만들었기 때문에, 설령 내용상 부담이 된다고 하더라도 분량은 시도를 하기에 좋다고 생각을 했다. 물론 각 퀴즈나 예제가 그것을 도와줄 것이다.

 

> 아쉬운 부분

1. 텐서플로의 설치부터 애를 먹는 사람에게 좋은 해결책을 주지는 않는다.

이 책은 친절하지만, 처음 실습 진입에 있어서는 그렇지는 않은 것 같다. 텐서플로의 설치에서 애를 먹었으며, 결국 실행까지는 잘 하지 못했던지라, 아쉬움이 남았다. GPU 관련하여 CUDA를 잘 설정하라고 되어있지만, 어떻게 확인하고 어떤부분을 고쳐야 하는지 알지 못한지라 결국 스스로의 삽질이 남아있게 되었고, 만약 그러한 부분을 잘 알려주었다면 시간을 절약했을 것으로 생각이 든다.

 

2. 연습문제의 답이 바로 보인다.

연습문제는 중간중간 나온다. 연습문제를 풀려고 보면 바로 아래에 답이 있어서 볼 수 밖에 없게 된다. 이럴바에는 미니QnA와 같이 구성을 했더라면, 이런 질문에는 이런 답을 할 수 있겠구나 하면서 볼 수 있었을텐데, 연습문제라는 형식을 취하고 있기 때문일까, 바로 답이 나오는것은 이해되지는 않았다. 사실상 전반적인 연습문제의 내용도 가벼운 질문과 대답의 형식이었기 때문에, 아주 살짝 아쉬운 부분이기는 했다.

 

> 개인적인 평점

- 가격: 7 / 10

- 내용: 9 / 10

- 디자인: 8 / 10

- 구성: 9 / 10

 

> 정보

저자: 니샨트 수클라

옮긴이: 송교석

출판사: 한및미디어

가격: 30,000원

전체 페이지: 312페이지

 

** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

반응형

댓글