반응형

공부/밑바닥부터 시작하는 딥러닝 7

[밑시딥2] Chapter 7. RNN을 사용한 문장 생성

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다. 7.1 언어 모델을 사용한 문장 생성 언어 모델을 여러 장에 걸쳐서 다뤄왔다. 언어 모델은 다양한 애플리케이션에서 활용할 수 있는데 대표적으로 기계 번역, 음석 인식, 문장 생성이 있다. 이번 장에서는 문장 생성을 구현하고자 한다. 7.1.1 RNN을 사용한 문장 생성의 순서 앞 장에서는 LSTM의 계층을 이용해 언어 모델을 구현했고, 이는 아래 그림과 같다. 또 이 시계열 데이터를 모아 처리하는 Time LSTM도 구현하였다.   그렇다면 이제 문장을 생성시키는 순서를 이해해보자. 늘 사용하던 "you say goodbye..

[밑시딥2] Chapter 6. 게이트가 추가된 RNN

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다.  6.1 RNN의 문제점 RNN은 장기 의존 관계를 학습하기 어렵다. 왜냐하면 BPTT에서 기울기 소실 혹은 폭발이 일어나기 때문이다. 6.1.1 RNN 복습 RNN 계층은 시계열 데이터 xt를 입력하면 ht를 출력하는데 이 ht는 RNN의 은닉 상태라고 하며 과거 정보를 저장한다. 또한 RNN 특징으로는 바로 이전 시각의 은닉 상태를 이용하는 것이다. 6.1.2 기울기 소실 또는 기울기 폭발   RNNLM이 위 문제에서 올바르게 대답하려면 현재 맥락에서 "Tom이 방에서 TV를 보고 있음"과 "그 방에 Mary가 들어옴"이..

[밑시딥2] Chapter 5. 순환 신경망(RNN)

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다.  5.1 확률과 언어 모델5.1.1 word2vec을 확률 관점에서 바라보다  CBOW 모델을 복습하면 우리는 t 번째 단어를 '타킷', t-1, t+1을 '맥락'으로 취급하여 아래와 같이 수식으로 나타냈다.   그런데 여태까지 맥락을 항상 '좌우 대칭'으로 생각했지만, 이번에는 맥락을 왼쪽으로만 한정지어 생각해보자.   맥락을 왼쪽으로 한정지을 경우 위와 같은 수식으로 나타낼 수 있다. CBOW 모델의 학습으로 수행하는 일은 손실함수를 최소화하는 가중치 매개 변수를 찾는 것인데, 본래 목적은 맥락으로부터 타깃을 정확하게 추..

[밑시딥2] Chapter 4. word2vec 속도 개선

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다.  4.1 word2vec 개선 ①   3장에서 구현한 CBOW모델은 단어 2개를 맥락으로 이용해 하나의 단어(target)을 추측했다. 그러나 이 때에는 말뭉치를 7개만 사용했는데 실제로는 더 거대한 말뭉치를 사용하게 되는데 이 때 문제가 발생한다.   만약 100만개의 말뭉치 데이터를 사용한다고 하면 많은 뉴련으로 인해 두 계산의 병목 현상이 생긴다. 1. 입력층의 원핫 표현과 가중치 행렬 Win의 곱 계산2. 은닉층과 가중치 행렬 Wout의 곱 및 Softmax 계층의 계산 1번은 입력층의 원핫 표현과 관련된 문제이며, ..

[밑시딥2] Chapter 3. word2vec

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다.  3.1 추론 기반 기법과 신경망 단어를 벡터로 표현하는 방법은 크게 두 부류로 나눌 수 있다. 하나는 '통계 기반 기법' 이하 A와 나머지는 '추론 기반 기법' 이하 B라 한다. 이번 장에서는 이전 시간에 학습했던 A의 문제를 지적하고 그 대안으로서 사용하는 B의 이점을 알아보자. 3.1.1 통계 기반 기법의 문제점 A의 문제점은 대규모 말뭉치를 다룰 때 발생한다. 기존까지는 적은 말뭉치를 통해 A를 처리했지만, 현업에서 쓰는 말뭉치는 100만이라는 수를 훌쩍 넘는다고 한다. 만약 어휘가 100만 개라면, A는 100만 *..

[밑시딥2] Chapter 2. 자연어와 단어의 분산 표현

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다. 2.1 자연어 처리란? 우리가 일상생활에서 평소에 쓰는 한국어, 영어와 같은 말을 자연어라고 한다. 따라서 자연어 처리(Natural Language Processing, NLP)란? 말 그대로 '자연어를 처리하는 분야'이며, 사람의 말을 컴퓨터에게 이해시키기 위한 기술이다. 2.2 시소러스 시소러스란 사전적 정의로는 '뜻이 같은 단어(동의어)'나 '뜻이 비슷한 단어(유의어)'가 한 그룹으로 분류된 것을 뜻한다. 이러한 시소러스는 자연어 처리에서 '상위와 하위' 혹은 '전체나 부분'등 조금 더 세세한 관계까지도 정의할 수 있..

[밑시딥2] Chapter 1. 신경망 복습

본 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 읽고 공부 및 학습 내용을 정리한 글입니다. 언제든지 다시 참고할 수 있도록, 지식 공유보단 개인적인 복습을 목적으로 포스팅하였습니다. 1.1 수학과 파이썬 복습 1.2 신경망의 추론 1.3 신경망의 학습 1.4 신경망으로 문제를 풀다 1.5 계산 고속화 1.6 정리신경망은 입력층, 은닉층(=중간층), 출력층을 지닌다.완전연결계층에 의해 선형 변환이 이뤄지고, 활성화 함수에 의해 비선형 변환이 이뤄진다.완전연결계층이나 미니배치 처리는 행렬로 모아 한꺼번에 계산할 수 있다.오차역전파법을 사용하여 신경망의 손실에 관한 기울기를 효율적으로 구할 수 있다.신경망이 수행하는 처리는 계산 그래프로 시각화할 수 있으며, 이를 통해 순전퍼와 역전파를 이해하는 데 도움이 된..

반응형