코딩두의 포트폴리오

순차데이터 처리하는 RNN 본문

Open Source Software

순차데이터 처리하는 RNN

코딩두 2024. 5. 27. 11:23

RNN 개요

이전 신경망 문제점

기본 신경망, CNN - 정적인 데이터 인지

데이터 순서, 상호작용 인식, 시간 개념이 X

 

RNN (Recurrent Neural Network)

순서대로 나열된 가변 길이 데이터 학습 신경망

ex) 자연어, 동영상, 주가 등 동적 데이터

데이터 순서대로 입력 받을 때마다 지금까지 입력된 벡터들 종합 -> 은닉벡터 생성

 

응용 RNN 

LSTM, GRU

 

활용 분야

언어 모델링, 텍스트 감정분석, 기계 번역 등

 

RNN 응용 신경망의 예

입력과 출력의 수에 따라 N:N?으로 구분

 

 

4 - 입력이 들어오면 순차적으로 데이터 출력

5 - 입력 들어옴과 동시에 출력

 

일대다 

자동화 구축 이미지 캡션 app

 

다대일

RNN -> 영화 리뷰 감성 분석

이진분류 문제 - 영화 리뷰 주어졌을 시, 양성(긍정)인지 음성(부정)인지 분류

IMDb Web에서 수집한 영화 리뷰 데이터 집합 - 리뷰 텍스트 + 레이블(양성 or 음성)

입력이 들어옴과 동시에 처리하는 모

 

Softmax function

y가 출력 (2.0, 1.0, 0.1)

합이 1로 되게끔 함수 사용하여 비중을 수정

 

One-hot Encoding

 

Feed Forward Neural Network

첫 번째 계층이 입력으로 주어지면 가중치가 곱해져서 다음 링크로 전달

같은 방식으로 마지막으로 데이터 전달

Q. 신경망을 행렬과 벡터 연산으로 이해할 수 있다면, 신경망을 이해하기가 매우 용이하다. 
     다음 신경망의 파라미터의 개수는?

워드 임베딩(Word Embedding)

CNN은 이미지 분류에 능숙

단어를 벡터화하는 기술 ->계산 가능, 신경망 모델 입력으로 사용

 

One-Hot Encoding(OHE)

단어의 종류를 미리 계산 후, 순서대로 인덱스로 부여

NNLM(Neural Network Language Model)

NNLM은 n개의 이전 단어들로부터 n+1 단어를 예측하는 모델

신경망의 입력은 원-핫 인코딩을 사용하여 얻은 원-핫 벡터로 한다.

Projection layer 이후, 하나의 Hidden layer를 거치고 Output layer에서

실제값인 다음 단어 원-핫 벡터로부터 loss를 구하고 학습된다.

이 과정에서 Projection layer의 embedding table이 학습된다.

 

단어-문서 행렬(Term-Document Matrix)

다수 문서에서 등장하는 각 단어들의 빈도를 행렬로 표현한 것

 

Word2Vec

단어 임베딩 모델 중 하나
비슷한 분포를 가진 단어들은 비슷한 의미를 가진다는 것을 이용

 

희소 벡터 vs 밀집 벡터

 

[실습]

07-순차적인 데이터를 처리하는_RNN/text_classification.ipynb

19 ~ 21 결과 이해, 참고

 

다층 형태의 RNN

 

Seq2Seq 기계 번역 - 다대다 

RNN 기반의 번역 모델: Sequence to Sequence (Seq2Seq)

시퀀스를 입력받아 다른 시퀀스를 출력
학습데이터로 대규모의 병렬 말뭉치(원문-번역문) 필요
→ 강력한 GPU, 복잡한 텍스트 전처리, 긴 학습 시간 필요

 

Seq2Seq 기계 번역 모델

 

인코더(encoder)

원문의 내용을 학습하는 RNN
원문의 모든 단어를 입력받아 문장의 뜻을 내포하는 1개의 고정
크기 텐서를 생성 → 문맥 벡터(context vector)

 

디코더(decoder)

원문 문백 벡터로부터 번역문의 토큰을 순서대로 생성하는 RNN

 

28 ~ 29 실습