본문 바로가기

딥러닝

(27)
어텐션(Attention) (1) 1. 어텐션 구조1.1 seq2seq Encoder 개선■ seq2seq는 다음 예시와 같이 Encoder가 시계열 데이터를 인코딩해서, 인코딩된 정보 \( h \)를 Decoder에 전달한다.■ 이때 \( h \)는 고정 길이 벡터라서 입력 문장이 아무리 길어도, 항상 동일한 길이(크기)의 벡터가 된다.■ 즉, 고정된 크기의 벡터에 모든 정보를 압축하기 때문에 문장이 길어질수록 중요한 정보가 누락될 가능성이 크다. 다시 말해, 고정 길이 벡터는 정보 손실이 발생하기 쉬운 구조이다.■ 이 문제를 개선하는 방법으로 다음과 같이 Encoder의 모든 시점의 은닉 상태 벡터를 모두 이용하는 방법이 있다.■ 이렇게 하면 입력된 단어와 같은 수의 벡터를 얻을 수 있다. 즉, 더 이상 Encoder 출력의 결과는 ..
시퀀스 투 시퀀스(Sequence toSequence, seq2seq) 1. seq2seq■ seq2seq는 한 시계열 데이터를 다른 시계열 데이터로 변환하는 신경망 모델로 '인코더-디코더(Encoder-Decoder)' 모델이라는 신경망 모델의 일종이다.■ Encoder-Decoder 모델은 입력 데이터를 인코딩(부호화)하는 Encoder와 인코딩된 데이터를 디코딩(복호화)하는 모델로 구성된다.- 인코딩은 데이터를 어떤 형식, 규칙 등에 따라 변환하는 것을 말한다. 예컨대 문자 'A'는 ASCII에서 숫자 65로 인코딩된다.- 디코딩은 인코딩된 데이터를 원래의 데이터로 되돌리는 것을 말한다. ASCII로 인코딩된 숫자 65를 디코딩하면 문자'A'로 변환된다.■ 다음 그림은 '나는 학생이다.'라는 한글 문장을 입력 받아, 'I am a student'라는 영어 문장을 출력하..
게이트(gate)가 추가된 RNN - LSTM, GRU 1. RNN의 문제점■ RNN은 순환 경로를 통해 과거 정보를 계승할 수 있어 시퀀스 데이터(순서가 있는 데이터)인 시계열 데이터를 다루기에 적합하다. ■ 하지만, 길이가 긴 시계열 데이터를 사용할 경우 BPTT 방법으로 학습을 수행하면, 그래디언트 소실/폭발이 발생해 시간적으로 멀리 떨어진 정보를 유지하기 어렵다. 즉, 장기 기억에 취약하다.■ RNN 계층의 순환 경로는 다음과 같으며, 시계열 데이터 \( x_t \)가 입력되면 시점 \( t \)에 대한 은닉 상태 \( h_t \)를 출력한다. 이 은닉 상태 \( h_t \)에는 과거 정보가 담겨 있다.■ RNN 계층을 시간축으로 펼친 위의 그림을 보면, 은닉 상태 \( h_t \)는 이전 시점의 은닉 상태 \( h_{t-1} \)과 \( t \) 시..
순환 신경망(RNN) (2) 1. RNN 언어 모델(Recurrent Neural Network Language Model, RNNLM)■ RNN으로 만든 언어 모델을 RNN Language Model, RNNLM이라고 한다. 가장 단순한 RNNLM의 신경망 구조는 다음과 같다.■ RNN은 시점(time step)이라는 개입이 도입된 것으로, 이를 기반으로 만든 RNNLM도 시점이라는 개념이 있다. 위의 그림에서 왼쪽은 RNNLM 계층의 구성을 나타낸 것이고, 오른쪽은 이를 시간축으로 펼친 신경망이다.■ RNNLM의 흐름은 첫 번째(가장 아래) 층인 Embedding 계층에서 단어 ID를 단어의 분산 표현(단어 벡터)로 변환한다.  ■ Embedding 계층을 통해 출력으로 나온 분산 표현은 RNN 계층의 입력으로 들어가고, 이 입..
순환 신경망(RNN) (1) 1. 피드포워드(feed forward) 신경망의 문제점■ 지금까지 살펴본 신경망은 신경망의 기본적인 형태인 피드포워드 신경망이다.- 피드포워드 신경망은 다충 퍼셉트론이라고도 불리며, 은닉칭이 하나 이상인 신경망을 말한다. ■ 피드포워드 신경망은 흐름이 단방향인 신경망으로, 입력 신호가 출력까지 한 방향으로만 전달되는 구조를 가진다.■ 피드포워드 신경망은 이러한 특징으로 인해 시계열 데이터 같은 연속적인 정보를 잘 다루지 못한다. 구체적으로 시계열 데이터의 성질(패턴)을 충분히 학습할 수 없다. cf) 그래서 등장한 것이 순환 구조를 가지는 순환경 신경망(RNN)이다. 이 순환 구조를 이용해서 각 시점의 정보를 출력까지 전달한다.■ 예를 들어 CBOW는 피드포워드 신경망으로 시점이 \( t = 1, 2,..
합성곱 신경망(CNN) (2) 1. 층을 깊게 하는 이유 ■ CNN 훈련이 끝나면 활성화 맵은 다음 그림과 같이 원본 이미지들의 특징들을 추출해서 가지고 있다. 원본 이미지의 특징을 추출해서 가지고 있는 활성화 맵을 피처 맵(feature map)이라고 한다.■ CNN 도입부 레이어의 특징 맵은 당연히 중반부, 후반부의 특징 맵보다 사이즈가 크며, 위의 그림과 같이 도입부의 뉴런들은 엣지나 블롭 등의 저수준 특징을 가지고 있다. ■ 중반부의 특징 맵은 중간 사이즈이며, 뉴런들은 얼룩무늬 같은 텍스처에 반응한다. 그리고 분류하기 직전의 후반부 특징 맵은 합성곱 연산이 여러 번 적용되었으므로 사이즈가 작고, 뉴런들은 눈, 얼굴, 바퀴 같은 구체적인 특징에 반응한다. ■ 즉, 계층이 깊어질수록 학습할 문제를 계층적으로 분해해 학습하며 각..
word2vec 속도 개선 (1) 1. '단순한' CBOW 모델의 문제점■ 입력층에 타깃 단어의 주변 단어가 원핫 형태로 들어와서 입력 측의 가중치 \( W_{in} \)과의 행렬 곱으로 은닉층을 계산한다. 그다음, 은닉층에서 출력 측의 가중치 \( W_{out} \)과의 행렬 곱으로 입력으로 들어왔던 각 단어의 점수를 계산한다.■ 각 단어의 출현 확률을 계산하기 위해 출력층의 결과인 각 단어의 점수에 소프트맥스 함수를 적용하고, (범주형) 교차 엔트로피 오차를 적용하여 출현 확률과 정답 레이블을 비교해 손실을 계산한다.■ 이 손실을 최소화했을 때의 가중치 \( W_{in} \)이 단어의 분산 표현이다.■ 이 예제에서는 어휘 수가 7개라서 단어를 원핫 벡터로 표현했을 때 벡터의 원소 수(차원)는 7개였다.■ 만약, 대규모 말뭉치를 사용했..
단어의 의미를 파악하는 방법 (4) 단어의 의미를 파악하는 기법으로 (1) 사람이 수작업으로 레이블링하는 시소러스를 활용한 기법과 텍스트 데이터로부터 단어의 의미를 자동으로 추출하는 (2) 통계 기반 기법, (3) 추론 기반 기법이 있다. 1. 추론 기반 기법과 신경망■ 단어를 벡터로 표현하는 방법은 크게 '통계 기반 기법'과 '추론 기반 기법' 두 부류로 나눌 수 있다. 두 방법은 단어의 의미를 얻는 방식은 서로 다르지만, 두 방법 모두 분포 가설에 기반한다. 1.1 통계 기반 기법의 문제점■ 통계 기반 기법에서는 주변 단어의 빈도로 단어를 표현한다. 단어의 동시발생 행렬을 만들어 PPMI 행렬로 변환하고, PPMI 행렬에 SVD를 적용해 차원을 감소시킴으로써 밀집 벡터(단어의 분산 표현)를 얻는다. ■ 그러나 이런 방식은 대규모 말뭉치..