- AI Dev - 인공지능 개발자 모임
- 추천도서
< 목차 >
- 1. 신경망 기초
- 2. 케라스 설치와 API
- 3. 합성곱 신경망을 활용한 딥러닝
- 4. 적대적 생성 네트워크와 웨이브넷
- 5. 단어 임베딩
- 6. 순환 신경망
- 7. 기타 딥러닝 모델
- 8. AI 게임 플레이
얼마전에 나온 딥러닝 책인데 CNN뿐만 아니라 GAN, DQN 같은 최신 기법들도 다루고 있습니다. 이론에 대한 설명도 자세한 편이고 코드 해설도 잘 되어 있습니다. 다만 초보자들이 보기에는 좀 어려울 것 같고 딥러닝에 대해 어느정도 알고 있는 사람에게 적당할 것 같습니다.
자연어처리와 관련되어 단어 임베딩과 RNN에 대한 부분도 있습니다. 특히 다른 책들과 달리 Word2vec에 대해서 자세히 나와있는게 장점입니다.
Word2vec는 단어를 기계가 이해할 수 있는 벡터로 변환하는 방법입니다. Skip-gram와 CBOW(Continuous Bag of Words) 모델이 있는데 그중에서 Skip-gram에 대해서 간단하게 살펴보겠습니다.
I love green eggs and ham.
위와 같은 문장이 있을때 각 단어를 양옆의 주변 단어로 다음과 같이 묶을 수 있습니다.
([I, green], love)
([love, eggs], green)
([green, and], eggs)
그 다음 아래처럼 학습을 위한 데이터셋을 만듭니다.
((love, I), 1)
((love, green), 1)
((love, Sam), 0)
((love, zebra), 0)
I나 green은 love의 주변이 있고(1), and와 Sam은 zebra의 주변에 없다(0)는 뜻입니다. 이 데이터를 가지고 신경망에 넣어 학습을 합니다. 그리고 여기서 만들어지는 신경망의 가중치(weight)가 바로 각 단어의 벡터값이 됩니다.
이런 방식으로 많은 데이터를 학습하게 되면 다음과 같이 주변에 있는 단어들은 서로 비슷한 벡터값을 가지게 됩니다.
love -> (0.8, 0.7, 0.1, 0.2)
like -> (0.6, 0.5, 0.2, 0.1)
eggs -> (0.1, 0.2, 0.4, 0.5)
ham -> (0.2, 0.1, 0.5, 0.6)
오... 지금 3분 딥러닝 케라스 보고있는데 겹치는 부분이 많을까요...