밑바닥부터 시작하는 딥러닝 2 - 파이썬으로 직접 구현하며 배우는 순환 신경망과 자연어 처리 밑바닥부터 시작하는 딥러닝 2
사이토 고키 지음, 개앞맵시 옮김 / 한빛미디어 / 2019년 5월
평점 :
장바구니담기




'밑바닥' 시리즈는 딥러닝을 공부하는 사람이라면 '수학의 정석'같은 도서입니다. 1편과 비슷하게, 외부 라이브러리에 의지하지 않고 직접 구현하는 것이 특징입니다.  


특히 `밑바닥부터 시작하는 딥러닝2`은 자연어처리와 시계열 데이터 처리에 초점을 맞춰서 RNN, LSTM, attention을 소개하고 직접 구현해봅니다. 


최근에 Hot한 transformer에 대한 내용이 8.5.2장에 살짝 맛보기로 등장합니다. 만약 `밑바닥`4탄이 나온다면 Attention과 transformer 내용이 나오지 않을까? 라고 추측해봅니다. 



1장은 numpy를 사용한 행렬 복습과 신경망에 대해서 복습합니다. 손실함수, 연쇄법칙, 순전파, 역전파, 노드에 대한 class와 함수를 직접 구현합니다.


새롭게 알게된 점은 계산 가속을 위한 '16비트 반정밀도 부동소수점 연산 방법'과 GPU를 사용하는 numpy인 'cupy'입니다. 


2장은 말뭉치를 처리하고 단어 사이의 유사도와 차원에 대해 배웁니다. 특히 '통계 기반 기법'으로 행렬에 SVD를 적용하여 단어의 분산 표현을 얻는 방법에 대해 배웁니다. 


3장, 4장은 word2vec와 CBOW 모델에 대해 배웁니다. 2장과는 달리 '추론 기반 기법'으로, 특히 자연어 처리는 굉장히 많은 차원의 단어들의 유사도를 가지고 다음에 올 단어를 예측해야 하기 때문에 3장은 핵심 단원이라고 할 수 있습니다. 4장에는 Embedding 계층의 도입과 네거티브 셈플링을 통해 word2vec의 속도 개선을 목표로 하는 작업을 수행합니다. 


5장에는 RNN을 배웁니다. 기본적인 RNN의 모델, 계층을 직접 구현하고 테스트해봅니다. RNN에서의 순전파와 역전파를 그림으로 설명합니다. 



6장에는 LSTM과 GRU에 있는 게이트 구조를 추가한 RNN에 대해서 배웁니다. 시간적으로 멀리 떨어진 장기의존 관계를 잘 학습할 수 있도록 합니다.(RNN의 단점을 개선하려고 합니다.)


특히 게이트의 역할을 '물의 흐름을 멈추거나 배출하는 것'으로 비유한 그림이 이해를 도왔습니다. output, input, forget 게이트의 역할과 수식에 대한 설명을 코드와 함께 보여주었습니다. 




7장에는 RNN을 사용해 문장을 생성하는 방법에 대해 배웁니다. 말뭉치를 학습한 언어 모델을 사용해 새로운 문장을 만듭니다. 추가적으로 seq2seq라는 새로운 언어 모델에 대해 배웁니다. 하나의 시계열 데이터를 다른 시계열 데이터로 변환합니다. 


8장에는 Attention에 대해 배웁니다. 가장 어려우면서, 이 책의 가장 핵심이라고 생각합니다. 더욱 강력한 seq2seq라고 할 수 있고, seq2seq의 단점인 '고정 길이 벡터를 출력하는 Encoder'을 보완한 모델(물론 Decoder도 같이 보완)입니다. 


놀랍게도 seq2seq와 Attention 메커니즘(모델)은 뉴욕대학교 조경현 교수님이 제안되었다고 합니다. ㅠㅠ(너무 자랑스러운...)



------------


책을 다 읽고 총평을 하자면,

딥러닝을 사용한 자연어 처리의 기본 개념을 다 담고 있는 책이라고 할 수 있고, transformer를 공부하기 전에 '자연어 처리가 이렇게 발전해 왔구나~'를 깨달으면 좋을 것 같습니다. 


특히 class 하나하나를 구현하는 점이 가장 마음에 들었습니다. 마치 하나의 딥러닝 프레임워크를 구축하는 것 같았습니다. 이 책이 나온 지는 꽤 오래되었기 때문에 `밑바닥부터 시작하는 딥러닝 3`도 2020년 11월에 출간되었습니다. `밑바닥부터 시작하는 딥러닝 3`을 구매하진 않고 서점에서 잠깐 읽었는데  딥러닝 프레임워크를 밑바닥부터 구축한다고 합니다. 조만간 3편도 구매하여 읽어보려 합니다. 


'나는 자연어 처리 말고 vision만 할꺼야!'라며 등한시한 적이 있었는데 이 책을 읽고 나서 그 시절이 후회가 됩니다. `밑바닥부터 시작하는 딥러닝 2` 강추 드립니다.




<이 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원 받아 작성되었습니다>





댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo