메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[도서리뷰] 파이썬 날코딩로 알고 짜는 딥러닝

kyungla***

|

2019-08-10

파이썬 날코딩으로 알고 짜는 딥러닝

이 책은 딥러닝 알고리즘의 원리를 깊숙이 이해하고 이를 파이썬 코딩만으로 구현하는 데 주안점을 둔다. 이를 위해 가장 간단한 신경망 구조부터 복잡한 응용 구조까지 다양한 딥러닝 신경망 예제의 실제 구현 과정을 소개한다.

  • 저자 : 윤덕호
  • 출간 : 2019-07-15

SAM_8257.JPG

 

어떤 책이 나한테 가장 좋은 책일까요?
저는 저한테 가장 많은 영향을 준 책, 특히 사고의 전환 필요성을 환기시켜주는 책을 가장 좋아합니다. 물론 나에게 모르는 것을 많이 알려주는 책도 좋아하구요.

 

이번에는 "파이썬 날코딩로 알고 짜는 딥러닝"  책을 읽었습니다. 요즘 딥러닝 관련 책들이 많이 나오고 있죠. 나오는 책들과 트렌드를 볼때 생각이 많아집니다. 비개발자 취업 준비생 입장에서는 딥러닝 공부 방향을 어떻게 잡아야 하느냐라는 페이스북 글을 며칠전에 읽었는데, 저의 책 후기가 어떠한 영향을 미칠지 조심스러워집니다. 머신러닝의 트렌드가 Auto ML 로 많이 바뀌는 과정에서 어느 정도까지 공부하는 것이 적절할까? 라는 질문을 늘 저한테 하고 있구요. 그래서 이번 책 후기는 책 내용뿐만 아니라, 딥러닝에 대한 제 생각도 조금씩 넣어보기로 했어요.

 

SAM_8258.JPG

 

이번 날코딩 책은 일단 양이 어마어마합니다. 거의 똑같은 취지의 파이썬 날코딩 책으로 "밑바닥부터 시작하는 딥러닝" 책이 있죠. 딥러닝을 처음 시작한다면 김성훈 교수님 강의와 함께 전 이 밑바닥 책을 추천드립니다. 300 페이지랑 700 페이지랑의 책 두께가 실로 엄청납니다. 사실 밑바닥 책도 그 깊이가 결코 낮은 수준이 아닙니다. 그러면 도대체 700 페이지는 어떤 내용을 담고 있길래, 양이 이만큼 늘어났을까요? 늘어난 만큼 그 깊이가 비례해서 늘어났을까요?

 

SAM_8259.JPG

 

책의 목차를 보면, 하나의 짧은 주제에 대해서 2~5 페이지씩 할애하고 있습니다. 한 페이지의 글자도 밑바닥보다 많습니다. 똑같은 내용을 2~3배 더 많게 적고 있다는 이야기입니다. 그리고, 이 책의 가장 중요한 특징 중 하나인 캐글에 대해서 이야기하지 않을 수 없습니다. 보통 데이터 분석쪽으로 일하거나 어느 정도 실력이 쌓이면 캐글 이라는 것을 한번씩 듣게 됩니다. 캐글이 실제 기업의 문제로 순위 경쟁을 하는 문제 풀이 대회이므로, 보통 책에서 다루는 일반적인 딥러닝 문제와는 사뭇 다릅니다. 그 점에서 이 책의 의도가 좋습니다. 우리가 생각할 때 도메인(각 산업분야) 지식이 없어서 못 풀 것 같은 문제들을 기본 예제로 삼고 있습니다. 이점에서 이 책을 읽으면서 저도 좀 고민이 되었습니다. "이는 오히려 딥러닝 같은 데이터 기반의 인공지능 기법이 문제 내용을 이해하지 못해도 문제를 풀 수 있다는 중요한 사실을 확인하는 기회가 될 것이다"라고 저자가 이야기 하듯이, 도메인 지식이 얼마나 중요할까요? 저는 지금까지 매우 중요하다고 말하고 다녔는데(특히 auto ml 로 트렌드가 변하면서 모델링보다는 전처리 같은 앞단과 시각화 같은 마무리단이 비개발자 영역에서는 더 중요하지 않을까 생각했다), 저자의 이말에 동의할 수 있을까? 하는 마음에서 책을 읽어내려갔습니다.

 

SAM_8261.JPG

 

위 이미지에서 보듯이 전반적으로 그림보다는 설명글이 더 많습니다. 적절하게 그림으로 보조 설명하기도 하지만, 밑바닥보다는 그림이 적다는 느낌입니다. 중간 중간에 설명 그림이 더 있었으면 좋겠다는 생각이 들었습니다. 페이지 양이 밑바닥 책보다 늘어난 만큼 정보가 늘어났다기 보다는 설명을 더 상세하게 한다는 편이 맞는 것 같습니다.

 

SAM_8262.JPG

 

이 책이 날코딩으로 딥러닝을 설명하다가 보니, 소스 코드의 중복이 많습니다. 그래서 저자는 함수로 묶어서 설명합니다. 읽다가 보면, 같은 이름의 함수가 반복적으로 나온다는 것을 알 수 있습니다. 그래서 앞에서 소스 코드 자세히 설명한 다음, 뒤로 가면 중복되는 부분은 빼고, 수정한 부분만 설명하고 있습니다. 그림으로 보면 매우 복잡한 것 같지만...

 

SAM_8263.JPG

 

하나 하나 소스 코스를 상세히 설명하였으므로, 어렵다는 생각은 들지 않습니다. 다만, 파이썬 기초가 없으면 복잡할 수도 있습니다. 파이썬 초급은 공부하고, 중급 정도를 공부하시는 분들이 봐야 쉽게 이해가 갑니다. 어떻게 보면 함수가 반복되면서 여러번 반복 학습을 하는 효과도 나타납니다. 이름과 흐름은 같고, 구체적인 내용이 어떤 문제를 해결하기 위한 것이냐에 따라 함수의 내용이 조금씩 바뀝니다. 실제 데이터의 모습도 스크린 샷으로 보여주기 때문에, 캐글에서의 여러 특성들이 어떤 모습으로 수치화되었는지 살펴볼 수 있습니다. 캐글 문제의 데이터 구조와 파이썬 구조 결정 팁들도 실어 놓아서, 실제 문제를 어떻게 바라봐야하는지 알 수 있습니다. 그리고 이 책의 좋은 점 중의 하나가 설명 과정이 비슷하게 전개될때 이 함수랑 저함수랑 무엇이 같고 다른지 궁금해할 수 있는 사소한 의문점들에 대해서도 많이 기술해 놓았다는 점입니다. 스터디할 때 초보분들이 질문했던 의문점들이 이 책에 수록되어 있는 것을 보고 감탄하였습니다. 이 점에서 이 책으로 혼자 공부해도 많을 것을 얻을 수 있을 것 같다는 생각을 하였습니다. 그리고 이런 이론이 있어요라고 끝맺는 것이 아니라, 이런 것이 있는데, 저자가 보기에는 이런 문제에는 이런씩으로 적용하고, 실험 결론에 대해서도 주관적이지만, 초보에게는 길을 안내해주는 정도에서 자세한 설명을 해 놓았습니다. 그래서 나중에 설명할 좀 더 나은 모델링에서는 어떠한 결과로 더 좋게 나올지에 대한 흥미도 유발하고 있습니다.

 

SAM_8264.JPG

 

이 책의 문제점은 보시다시피, 박스 처리 부분입니다. 박스 처리한 부분들은 수학 이론의 도출 과정이 설명된 곳이 많습니다. 문과 수학만 했던 저에게는 무척 어렵습니다. 그래서 읽지 않고 넘어갔습니다. 책을 볼때 저자의 눈으로 바라보는 것도 중요하지만, 책을 꼭 저자처럼 익혀야 하는 것은 아니잖아요. 책을 나에게 맞게 재구성하는 것도 중요하다고 봅니다. 그냥 부담없이 넘어가도 괜찮을 것 같습니다. 그러나 딥러닝 회사에 데이터 분석가로 들어간다면, 이정도 수준에서는 제대로 공부해야 하지 않을까 생각도 듭니다. 논문 읽기 스터디나 구현 스터디에서는 이보다 더 높은 수준에서도 이야기하거든요.

 

SAM_8265.JPG

 

그림 양이 아쉬운 점도 있지만, 이렇게 잘 설명한 부분들도 많아서, 혼자 공부하기에도 좋습니다. 앞에서 차근차근 읽어왔다면, CNN, RNN 이론도 이해할 수 있도록 설명하고 있습니다.

 

SAM_8266.JPG

 

이 책의 장점으로 평소 이름만 들어왔던 딥러닝 모델을 좀 더 풀어서 설명하고 있다는 점입니다. 거기에 앞에서 다루었던 캐글 문제를 뒤에서 좀 더 고도화된 모델을 적용하는 방법과 그 결과에 대해서는 설명하는 부분이 좋았습니다. 그러면서 개인적인 설명으로 왜 그런 결과가 나왔는지에 대한 부가 설명한 부분이 백미로 다가왔습니다.

 

이 책은 처음 딥러닝을 접하는 분들에게는 좋은 것 같지 않습니다. 처음이라면 auto ml 이랑 api 사용법을 익혀 전반적인 흐름을 익히시는 것이 좋을 것 같습니다. 어느 정도 감이 잡히시면, 밑바닥부터 시작하는 딥러닝이나 텐서플로 2.0 케라스 같은 것으로 실제 딥러닝 모델들을 다루어 보시고, 이것도 익숙해지시고, 딥러닝 현장에서 제대로 된 운영 기술과 이론적 깊이를 원하시면 이때 이 책 "파이썬 날코딩로 알고 짜는 딥러닝" 으로 공부하시는 것이 많은 도움이 될 것 같습니다. 그리고 처음부터 이 책을 보신다면, 캐글 문제 부분, 이론적인 부분을 먼저 처음부터 끝까지 빨리 훍어 보신 다음에, 소스 코드를 처음부터 하나하나 코딩해가면서 확실히 공부하시는 것이 좋을 것 같다는 생각이 들었습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?