hojun_9724.log
로그인
hojun_9724.log
로그인
딥러닝 기반 자연어 처리 기초 주요 개념
HojunJang
·
2024년 3월 5일
팔로우
0
NLP
Sequence-to-sequence
입력된 시퀀스(문장)을 다른 시퀀스로 변환하는 모델로, 인코더 RNN, 디코더 RNN으로 구성
인코더 - 입력을 처리
자연어 이해
입력 시퀀스를 받아서 Context vector로 변환
auto encoding
디코더 - 출력을 처리
자연어 생성
Context vector로 출력 시퀀스 생성
대다수 auto regressive방식으로 출력
RNNs
시계열을 다루는 데(시계열) 좋은 방식(시계열성 특성을 가짐)
딥러닝에 좋은 이유이기도 함
앞뒤의 데이터가 같은 파라미터를 공유하고 있다
손실함수
RNN에서의 손실을 최소화 시키는 함수
시간 순서 역전파
RNN이 시계열적 특성을 가지므로 역산하여 각 시간 단계에서의 가중치를 역산
One-to-one
전통적인 Neural Network와 동일
One-to-many
한개의 입력으로 여러개의 Sequence생성
Many-to-one
텍스트마이닝에서 감정분석과 관련해 사용
Many-to-many
기계학습, 형태소 분석 학습, 번역 등등
BRNN(Bidirectional RNN)
양방향 학습
DRNN(Deep RNN)
적층 구조 학습
장점과 단점
장점
모든 길이의 시퀀스 입력으로 처리가능
시간에 따라 가중치를 공유하여, 입력 시퀀스가 길어져도 모델 크기가 증가하지 않음
과거 정보를 고려하여 다음 시간의 출력을 계산함
단점
매번 시간에 따라 출력 계산 -> 병렬처리가 불가능하여 계산속도 느림
(Long term dependency) 시퀀스가 길어지면 오래전 정보를 반영하기 어려움
현재 상태에 대한 미래 입력을 고려할 수 없음
Gradient vanishing / exploding
너무 작아지거나/커져서 가중치 값이 너무 커지는 문제 발생
모델이 분안정해짐
시퀀스 데이터의 장기 의존성을 제대로 학습하지 못하게 됨
극한과 유사하게 생각하면 이해 됨
LSTM(Long Short - Term Memory)
RNN에서 발생하는 Long term dependenct problem 완화 방법으로 cell state와 gate라는 매커니즘 도입
필요한 정보만을 선택적으로 업데이트하거나 삭제하는 방법을 도입(정보를 잘 기억 후 활용)
forget gate
어떤 데이터를 버릴지 결정
sigmoid함수로 범위 제한하여 결정
Input gate
어떤 새로운 정보를 cell state에 저장할지 결정
새로운 후보 cell state를 생성, 이후 후보 cell state정보 중 일부가 cell state에 저장
Cell state
cell state 업데이트로 forget gate를 통해 결정된 정보를 잊어버린 다음 input에서 결정된 정보를 추가
Output gate
다음 hidden state가 무엇을 출력해야 하는가?
output gate값고 현재 시간의 cell state를 통해 현재의 hidden state 역산 가능
GRU(Gated Recurrent Unit)
LSTM의 변형으로 구조가 더 간단함
두 개의 게이트(update, reset)과 하나의 상태(hidden state만을 가짐)
구조가 단순함으로 계산 효율성이 높음
Long-term dependenct에 LSTM보다 취약
update gate
얼마나 업데이트할지 결정
reset gate
얼마나 '잊어버릴지' 결정
hidden state
후보 hidden state를 통해 현재 hidden state를 업데이트
요약
HojunJang
일단 취업하고 싶어요
팔로우
이전 포스트
텍스트 전처리(1)
다음 포스트
Attention
0개의 댓글
댓글 작성