| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 게임개발
- gas
- Replication
- local prediction
- linear regression
- listen server
- Multiplay
- 언리얼 엔진
- CTF
- attribute
- Aegis
- Unreal Engine
- rpc
- 유니티
- C++
- widget
- gameplay ability system
- stride
- gameplay tag
- 언리얼엔진
- unity
- MAC
- 게임 개발
- ability task
- animation
- photon fusion2
- 보안
- gameplay effect
- UI
- os
- Today
- Total
Replicated
자연어 처리 : RNN, LSTM 본문
RNN (Recurrent Neural Network)
- 일반적인 신경망에서는 데이터를 입력하면 연산이 입력층에서 은닉층을 거쳐 출력층까지 차근차근 진행되고 이 과정에서 입력 데이터는 모든 노드를 딱 한 번식 지나가게 됨
- FFNets는 입력 데이터의 시간 순서를 무시하고 현재 주어진 데이터만 가지고 판단
- 입력 데이터의 시간 순서도 반영하여 학습하는 모델이 RNN
RNN 기본
many-to-one 구조 : 텍스트 분류
many-to-many 구조 : 개체명 인식, 품사 태깅
one-to-many 구조 : 텍스트 생성, 챗봇
LSTM : RNN의 단점 보완
Seq2Seq
- 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력
- 인코더-디코더 구조
- 챗봇, 기계 번역, 내용 요약, Speech to Text
Attention mechanism
- 입력 문장이 길면 번역 품질이 떨어지는 현상에 대한 대안
Transformer
- 2017년 구글 발표, 기존의 Seq2Seq 구조인 인코더-디코더를 따르면서도 어텐션만으로 구현한 모델 (RNN 안씀)
- 오늘날 대부분의 LLM은 Tranformer 기반
RNN은 이전 은닉층의 결과가 다음같에 다시 같은 은닉층의 결과로 들어가도록 연결
- 입력과 출력을 시퀀스 단위로 처리하는 시퀀스 모델
- 입력: 번역하고자 하는 문장 (단어의 시퀀스)
- 출력: 번역된 문장 (단어의 시퀀스)
RNN에서 은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드가 셀
- 메모리 셀 또는 RNN 셀 이라고도 표현
- 현재 시점 t에서 메모리 셀이 갖고 있는 값은 과거의 메모리 셀들의 값에 영향을 받음
- 메모리 셀이 보관하고 있는 값을 은닉 상태(hidden state)라고 함
RNN은 입력과 출력의 길이를 다르게 설계 가능
- 일대다 : 텍스트 제네레이션, 이미지 캡션
- 다대일 : 텍스트 분류, 감정 분류
- 다대다 : 텍스트 번역 챗봇
RNN의 활용 분야
- 시퀀스 데이터를 다루는데 적합
- 배열 또는 시계열 데이터의 형태를 갖는 데이터에서 패턴 인식에 좋음
- 기본적인 구조의 RNN을 바닐라 RNN (Keras 는 SimpleRNN 제공)
keras.layers.SimpleRNN
model = keras.Sequential([
keras.layers.SimpleRNN(units=10, return_sequences=False, input_shape=[4,1]),
keras.layers.Dense(1)
])
- units : RNN 레이어의 출력 벡터(은닉상태 벡터)의 차원(크기)을 결정
- return_sequences : False는 마지막 타임 스텝의 은닉 상태만, True는 전체 시퀀스의 은닉 상태를 모두 반환
input_shape의 정의 형태
- timesteps(시퀀스 길이) : 하나의 샘플이 가지는 시간 단계의 수
- input_dim : 각 시간 단곈에서의 입력 데이터 벡터의 차원(특징 수)
RNN의 단점
- 시간 격차가 크면 기울기 소실되어 정보 전달이 잘 안됨
LSTM(Long Short term Memory Network)
- RNN의 기울기 소실 문제를 해결하기 위해 제안
- LSTM은 RNN의 특별한 한 종류로, 긴 의존 기간을 필요로 하는 학습을 수행할 능력을 갖음
- 반복 모듈의 구조가 다름. 4개의 레이어가 특별한 방식으로 서로 정보를 주고 받도록 설계
- 이전의 정보 중 필요한 것을 취사선택하고 현재 입력과 결합하여 출력 정보를 생성
- 과거 기억을 보존하되 필요가 없어진 기억을 지워버리는 기능을 추가
Forget Gate
- 이전 단계에서 얻은 정보를 버릴지 말지를 결정
- 불필요한 정보의 축적을 방지하고 중요한 정보에 집중할 수 있도록 도움
Input Gate
- 새로운 정보가 주어졌을 때 이 정보를 셀 상태에 어떻게 업데이트 할 지를 결정
Output Gate
- 현재 셀 상태를 바탕으로 어떤 정보를 출력할지를 결정
Cell State
- 일종의 컨베이어 벨트, 과거 정보를 미래로 전달하는 역할
LSTM의 장단점
- 길이가 긴 입력에 대해서도 효과적으로 처리할 수 있도록 함
- 게이트의 도입으로 계산 복잡도가 증가 -> 모델 학습 시간의 증가
- RNN과 마찬가지로 입력값을 순차적으로 처리하기 때문에 대량의 데이터를 빠르게 처리하는데 한계(병렬처리 불가)
- 길이가 매우 긴 입력에 대해서는 여전히 한계가 있음
'학부 > 딥러닝' 카테고리의 다른 글
| Hugging face (0) | 2025.12.07 |
|---|---|
| 자연어 처리 : Seq2Seq, Attention, Transformer (0) | 2025.12.07 |
| 자연어 처리 : Word representation (0) | 2025.12.07 |
| 전이 학습 (Transfer Learning) (0) | 2025.12.07 |
| Keras CNN - Argumentation (0) | 2025.10.25 |