15 September 2019

머신러닝, 딥러닝 알고리즘을 사용하다보면 내부를 이해하지 못한채 사용할 때가 종종있다. 일단 사용하고는 보지만 내부 알고리즘을 이해하고 사용하면 각각의 파라메터 옵션이 어떤 것을 의미하고 좀 더 좋은 성능을 낼 수 있도록 작성할 수 있을 것이다.

이미 잘 만들어진 알고리즘을 사용하더라도 파이썬의 자기호출 기능 등을 사용하면 소스코드를 볼 수도 있지만 라이브러리에 따라 소스코드 보기가 제공되지 않을 때도 있다.

또, 딥러닝을 이론적으로 학습하고 라이브러리를 통해 배우다보면 원리를 이해하기 어렵기도 한데 이 책은 한줄한줄 작성하며 코드를 이해할 수 있도록 되어 있다.

또, 가장 중요한 부분이 소스코드가 잘 공개되어 있는지에 대한 것이 중요한데, 아래의 URL에서 이 책의 소스코드를 확인할 수 있다. KONANtechnology/Academy.ALZZA: 교재 연습을 위한 자료를 다운받으실 수 있습니다.

전복 데이터를 불러와 학습, 데이터세트를 나누고 순전파, 역전파 함수를 정의한 후 정확도를 계산해 보는 코드다.

프로그래밍 책은 코드를 돌려보면서 읽는게 가장 좋다고 생각하는데 바로 돌려볼 수 있도록 실습 코드가 잘 작성되어 있다. 수치계산은 대부분 NumPy를 사용하는데 이 책을 읽을 때 NumPy에 대한 기본적인 이해를 필요로 한다. 이런 수치계산에 대한 설명은 책에서 자세한 수식과 함께 친절하게 설명을 해주고 있으나 어느정도 난이도는 있는 편이다. 처음부터 딥러닝을 이 책으로 공부하는 것도 좋겠지만 나 처럼 라이브러리를 사용하다가 이 책을 보면 그동안 궁금했던 내용들을 해소할 수 있기도 했다. 어떤 방식이든 딥러닝을 밑바닥부터 이해하고 학습해 볼 수 있는 좋은 책이다.

그리고 중요한 이론들에 대해 짤막한 삽화를 통해 이해할 수 있도록 구성되어 있으며 다양한 예제와 데이터셋도 이 책의 장점 중 하나다. 데이터셋도 각각의 폴더에 다운로드 받을 수 있는 경로가 data폴더의 readme.md 파일에 자세하게 안내되어 있다. 또, 이미지, 소리 등 다양한 종류의 데이터셋을 활용한 점도 이 책의 장점중 하나다.

방대한 양을 다루고 있고 또 친절한 설명까지 저자의 엄청난 내공을 느낄 수 있는 책이었다.

딥러닝의 기초이론부터 내부 수학적 표현까지 이해할 수 있도록 친절하게 구성되어 있는 점이 인상적이고 딥러닝에 입문하는 사람이든 이미 다른 라이브러리나 패키지를 사용했던 사람이든 원리를 이해하고 활용할 수 있는 점이 좋았고 최근 2주동안 열심히 봤는데 앞으로도 자주 보며 참고할 것 같다.