'밑바닥부터 시작하는 딥러닝: 파이썬으로 익히는 딥러닝 이론과 구현'이라는 책을 통해서 딥러닝의 기본 이론들을 실제로 파이썬으로 구현할 수 있는 방법들을 배울 수 있었다. 기초적인 내용을 알고 있지만 tensorflow, pytorch 등을 쓰게 되면 해당 라이브러리가 제공하는 함수들을 그냥 쓰게 되고 입출력의 tensor의 shape에만 관심을 가지게 된다;;;;;;
Attention을 넘어 BERT가 대세가 되었지만 알 듯 말 듯 한 부분들이 여전했고 카카오 NLP 팀장님과 티미팅을 갖던 중 '밑바닥부터 시작하는 딥러닝 2'가 출간되었다는 이야기를 듣고 바로 구매하게 되었다. (나온지 삼 일 정도 된 시점이었다)
1권이 역전파, 손실 함수 등을 이론적으로 잘 설명하여 어떻게 코드로 구현할 지를 보여 주었다면 2권에서는 word2vec이나 attention을 논문에서 why를 자세히 설명해 주지 않는 부분에 대해서도 단계별로 구현하면서 친절하게 설명해 주고 있다.
약 400페이지 분량으로 그리 두껍지는 않지만 하나 하나 수식을 손으로 써 가면서 파이썬으로 코드를 구현해 가면서 본다면 꽤나 시간이 걸릴만한 책이다. 1권을 옆에 두고 참고하면서 보거나 1권을 다시 복습한 후에 본다면 좀 더 도움이 될 것 같지만 완벽하게 이해하는 것이 책의 설명이 쉬운 만큼 쉽지는 않다.
마지막에 Transformer를 살짝 다루기는 하지만 자세한 내용이 없어 attention을 완전히 이해한 후 논문을 보면서 다시 고민해 볼 필요가 있어 보인다.
논문이나 이런 책을 한 번 보고 이해할 수 있는 능력자들도 계시겠지만 사실 이해가 잘 안 갈 때에는 어려운 책보다는 이런 책을 몇 번이고 고시 공부 하듯이 (?) 볼 필요가 있다. 처음에는 대충 이런 내용이 있구나 보고 그 다음 자세히 보면서 이해되는 부분과 이해되지 않는 부분을 구분하게 되고 이해되지 않는 부분은 관련 레퍼런스를 좀 더 찾아서 공부를 하고 참조를 하면서 다시 이해되지 않는 부분을 읽어보는 것이다.
최근에는 BERT를 능가하는 XLNet을 구글 브레인에서 발표하였고, 일 년 후에는 word2vec이나 attention이니 하는 것들이 소용없게 될 지도 모르지만 바탕이 되는 이론을 이해하고 있다면 어떤 다른 알고리즘이 나오더라도 따라기기는 쉬울 것이다.
케라스 책도 있고 Tensorflow책도 가지고 있지만 만약 딥러닝 관련하여 꼭 필요한 책을 선택하라고 한다면 나는 주저없이 '밑바닥부터 시작하는 딥러닝 1, 2'를 갖을 것이다. 그 후에 Tensorflow나 Pytorch의 문서나 예제 코드를 보면서 어느 정도 베이스라인 성능 이상의 개발을 충분히 할 수 있어 보인다.
Attention과 관련하여 볼 때마다 SMT (Statistical Machine Translation)을 하려고 Moses라는 오픈소스로 작업을 한 적이 있다. 거기에서 LM (Language Model)을 훈련시키기 위해 n-gram으로 돌리면 source-target의 확률이 나오는데 무언가 비슷한 개념처럼 느껴져서 지금은 자세히 기억이 나지 않지만 SMT의 LM을 Attention으로 쓸 수도 있지 않을까라는 생각을 해 본다. 약 10년 전에 1.4GB의 병렬코퍼스를 훈련시키는데 3일인가 걸렸던 것으로 기억이 나는데 지금은 컴퓨팅 파워가 좋아졌으니 하루 이내에 끝날 듯 싶다.
딥러닝이 점점 다양한 모델과 복잡한 수식들이 나오기는 하지만 라이브러리들이 편하게 사용할 수 있도록 제공해 주면서 오히려 딥러닝으로 음성인식이나 이미지인식을 하기는 점점 더 쉬워져 가고 있다. 영상인식을 하는 분들이 이전에는 이미지에 대한 도메인 지식이 중요했지만 점점 이미지에 대해서 잘 몰라도 그냥 딥러닝으로 괜찮은 성능을 낼 수 있다고 한다. 비슷하게 NLP에서도 언어학 지식은 딥러닝이 나오면서 무용지물이 된 듯 하고 딥러닝 알고리즘과 다양한 파라미터 튜닝이 대세가 된 듯해서 좀 아쉽다.
'책 이야기' 카테고리의 다른 글
[영어교육] 영어학습을 위한 인공지능 챗봇 활용 및 제작 (0) | 2019.07.24 |
---|---|
[경영] 이기적 직원들이 만드는 최고의 회사 (0) | 2019.07.08 |
[개발] "데이터 중심 어플리케이션 설계" - 구글 취업을 위한 필독서(?) (0) | 2019.06.27 |