rick***
2019-08-12

딥러닝 구현 복잡도가 증가함에 따라 ‘파이써닉’하고 사용이 편리한 파이토치가 주목받고 있다. 파이토치 코리아 운영진인 저자는 다년간 딥러닝을 공부하고 강의한 경험을 살려 딥러닝의 진입 장벽을 낮출 목적으로 이 책을 집필했다. 파이토치 설치부터 CNN, RNN, 나아가 스타일 트랜스퍼, 오토인코더, GAN 등 최신 연구 결과까지 살펴본다. 같은 어려움을 겪었던 개발자의 마음으로 개념 원리와 구현을 균형 있게 구성하여 쉽게 읽을 수 있다.
0. 텐서플로우, 이제 대세는 파이토치?
구글은 머신러닝관련 프로그램을 보다 편리하게 개발할 수 있도록 텐서플로우라는 프래임워크를 개발합니다. 텐서플로우는 머신러닝을 개발에 큰 진보를 가져왔고, 이를 통해, 다양한 머신러닝 코드들이 깃허브를 통해 공개되고, 유통되면서, 관련 시장이 크게 발전하게 됩니다. 그러나 이러한 텐서플로우의 큰 강점에도 불구하고, 페이스북은 보다더 편리하게 머신러닝을 접근할 수 있도록 프레임워크를 개발해 내놓게 되는데 이것이 바로 파이토치 입니다.
1. 파이토치 왜 공부해야하지?
파이토치는 텐서플로우보다 높은 코드 생산성을 가지고 있습니다. 이것은 텐서플로우와 파이토치의 큰 차이로, 파이토치는 'Define by Run' 방식이기 때문입니다. 즉 파이토치는 연산 그래프를 정의하는 것과 동시에 값도 초기화되어 연산이 이뤄지기 때문에 연산 그래프와 연산을 분리해서 생각할 필요가 없습니다. 반면에 텐서 플로우는 '그래프를 먼저 정의하고 세션에서 실제로 값을 집어 넣어 결과를 도출'하는 방식이기 때문에 사람에 따라 직관적으로 받아들이기 어려울 수도 있고, 그래프를 정의하는 부분과 이를 돌리는 부분이 분리되어 있게 때문에 전체적으로 코드 길이가 길어지게 됩니다.
2. 파이토치 첫걸음
이 책은 파이토치를 처음 공부하는 입문자들에게 매우 편리하게 구성되어 있습니다. 머신러닝을 처음배울 때 알아야하는 설치부터, 회귀분석, 인공신경망의 원리 등을 예제 코드와 함께 차근차근 설명하는 방식을 취하고 있습니다. 즉 파이토치의 문법을 전반적으로 구조적으로 가리키기 보다는 우리가 익히 머신러닝에서 알야아 하는 지식들을 함께 가리키면서, 파이토치를 자연스렵게 배울 수 있게 도와줍니다.
3. 딥러닝, CNN, RNN
이 책의 또하나의 특징은 CNN, RNN의 원리를 매우 쉽게 파이토치를 통해서 설명해 준다는 점입니다. 사실 머신러닝에 사람들이 많은 관심을 보기고 있지만 딥러닝의 대표적은 CNN, RNN에 대한 원리를 이해시키는 것은 쉽지 않습니다. 물론 다양한 책에서 이를 다루고 있지만, 이 부분을 체계적으로 잘 설명한 책이 사실 드뭅니다. 이 책은 해당 알고리즘을 독자가 쉽게 이해할 수 있도록, 많은 장을 투자했으며, 각 세부 파트는 실습코드를 같이 병행해 설명하기 때문에, 다시 이를 재현하거나, 구현할 수 있도록 지원합니다.
즉 이 책은 파이토치를 통해 독자가 특정 딥러닝 알고리즘을 구현해야하는 사항에 매우 적합하게 구성이 되어 있습니다. 그래서 이책은 뉴럴 스타일 트랜스퍼, 오터인코더, 생성적 적대신경망(GAN)에 대해서 매우 잘 설명을 담고 있습니다.
4. 이런 독자들에 권장한다~
이 책은 파이토치의 기본적인 문법원리 보다는 딥러닝 알고리즘에 대해서 어떻게 파이토치로 구현할 수있을 지에 대해서, 그리고 그 원리는 정확히 어떻게 되어 있는지를 궁금해 하는 독자들에 더 꼭맞는 책이라고 생각합니다. 특히, 구현을 통해서, 항상 왜 이 코드가 이렇게 구성되어 있는지, 신경망에 대한 프레임워크가 지원하는 옵션이 무슨 뜻을 함의하는지를 알고 싶다면, 이 책을 꼭 추천하고 싶습니다. 그리고, 텐서플로우를 통해, 이해가 되지 않던 코드를 파이토치를 통해 좀더 쉽게 이해하고, 구현할 수 있다는 점 또한 이 책의 큰 가치라는 생각이 듭니다.