앞서 배운 신경망은 오직 출력층 방향으로만 향함
= 피드포워드 신경망
순환신경망 RNN 활성화 함수를 통해 나온 출력이 다시 자기 자신에게 입력
ex 네이버 파파고
특징 시퀀스
n개의 단어들이 순차적으로 입력될 때, 이를 번역한 m개의 단어들을 순차적으로 나열한 것으로 순환 신경망 기법 중
n:m 방식의 기법이며 이를 다대다 혹은시 시퀀스 대 시퀀스 매칭이라고 부름
n개의 단어가 m개의 단어 시퀀스로 매칭됨
안드레이 카패시
RNN기법을 설명
되먹임 방식으로 출력
이미지 캡션 생성
합성곱 신경망을 이용하여 이미지의 특징을 파악한 뒤 이 특징을 임베딩 공간이라는 벡터 공가에 보낸 뒤,
해당 이미지를 설명할 수 있는 적절한 캡션을 생성
합성곱(특징 파악) - > 특징을 임베딩 공간으로 보냄 -> 이 임베딩 곤간의 위치를 바탕으로 이미지 설명 캡션 생성
처음에는 입력으로 x1이 제공됨. 순환 신경망의 뉴런은 이 입력에 가중치를 곱하고 활성화 함수를 적용한 뒤
출력 h1을 만들어 냄. 그리고 시간이 흘러 다음 입력이 제공될 때 x2가 들어옴. 그런데 이때는 이 입력 뿐 만 아니라 뉴런의
출력 h1이 입력과 함께 순환 에지를 통해 제공
단순한 순환 신경망 = 바닐라 RNN
모든 순간마다 U W H 연결강도 공유
tanh 𝑊ℎ𝑡−1 + 𝑈𝑥 𝑡
순환신경망 활성화 함수, 하이퍼볼릭 탄젠트 tanh()
순환 신경망의 한 층은 셀로 구성되는데, 이 셀은 다수의 유닛으로 구성
텐서플로우의 입력은 언제나 벡터로 제공
유닛의 개수 256개
W도 256개원소
순환 에지는 H만큼 필요하며 256x256개
256x256+2x256
66,048개
편향하나를 포함해 257개 연결 필요
총 파라미터
66,305
순환신경망의 역전파 단계에서 기울기가 역전파 과정에서 점점 소실되는 문제를 사라지는 경사
기울기가 조금씩 증가하여 여러단계를 거친 후 기울기가 폭발적으로 커지는 문제를 폭발하는 경사
발생하는 오차는 tanh의 미분을 통해서 역방향으로 전파함.
이 과정은 시간 순서의 역방향 이므로 BPTT라고 함.
장기 의존성 문제를 해결하는 LSTM
순환의 대상을 출력만 되먹임 시키는 것이 아니라, 셀 상태를 같이 전달.
셀 상태를 지우는 망각게이트
셀 상태 정보를 추가하는 입력게이트
셀 상태 바탕으로 출력을 결정하는 출력게이트 가 존재함
셀이 정보를 얼마나 잊어야 할지 결정하는 망각 게이트
입력게이트
두개의 신호를 생성하고 둘을 곱한뒤 셀 상태에 더함
출력게이트
기본적으로 셀 상태 값을 기반으로 함
시그모이드 함수를 이용해 얻은 Ot를 곱해 출력의 정도를 조정함
LSTM의 셀 상태 정보는 장기 기억을 위한 상태 정보임.
but LSTM은 복잡한 연결 구조를 가지며 이에 따라 사용되는 연결강도에 의해 파라미터의 수 대폭 늘어남
이러한 문제 때문에 GRU모델을 제시
LSTM의 간소화
GRU셀은 두개의 게이트
리셋 게이트, 갱신 게이트
출력을 제어하는 게이트는 사라졌다. 두 게이트의 동작에 따라 나온 신호가 그래도 출력으로 전달됨
LSTM에서 볼 수 없었던 리셋 게이트 추가
LSTM의 망각게이트와 입력게이트의 일을 선별적으로 수행하게 함.
RNN(Recurrent Neural Networks), LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Units)는 시퀀스 데이터를 처리하기 위한 신경망 구조입니다. 이들은 자연어 처리, 음성 인식, 시계열 분석 등에서 널리 사용됩니다. 각각의 구조에 대해 자세히 살펴보겠습니다.
1. RNN (Recurrent Neural Networks)
- 개념: RNN은 시퀀스 데이터를 처리하기 위한 신경망으로, 각 시간 단계에서 이전 단계의 정보를 기억하면서 작동합니다. 이를 위해 네트워크는 '순환' 구조를 가지고 있으며, 이전 출력을 현재 입력과 함께 사용합니다.
- 특징:
- 시간적 의존성 학습: 시간에 따른 데이터의 패턴을 학습할 수 있습니다.
- 가변 길이 입력 처리: 가변 길이의 입력 시퀀스를 처리할 수 있습니다.
- 단점:
- 기울기 소실 문제: 긴 시퀀스를 처리할 때, 기울기가 점점 사라지거나 폭발하는 문제가 발생합니다.
2. LSTM (Long Short-Term Memory)
- 개념: LSTM은 RNN의 기울기 소실 문제를 해결하기 위해 고안된 특수한 유형의 RNN입니다. 기본 RNN에 비해 더 복잡한 구조를 가지고 있으며, '셀 상태'라는 개념을 도입하여 장기 의존성을 학습하는 데 효과적입니다.
- 특징:
- 셀 상태: 장기 의존성 정보를 유지하고 전달하는 역할을 합니다.
- 게이트: 입력, 출력 및 셀 상태를 조절하는 역할을 하는 여러 게이트가 있습니다.
- 장점:
- 장기 의존성 학습 가능: 긴 시퀀스에서도 중요한 정보를 잃지 않고 기억할 수 있습니다.
3. GRU (Gated Recurrent Units)
- 개념: GRU는 LSTM을 단순화한 구조로, 비슷한 성능을 유지하면서 계산적인 효율성을 높인 것입니다.
- 특징:
- 게이트가 간소화됨: LSTM의 세 가지 게이트 중 일부를 합쳐서 더 단순한 구조를 가집니다.
- 셀 상태 없음: LSTM의 셀 상태와 달리, GRU는 셀 상태를 별도로 가지지 않고 숨겨진 상태만을 유지합니다.
- 장점:
- 계산 효율성: LSTM에 비해 모델의 복잡도가 낮아서 학습이 더 빠르고 효율적입니다.
결론
RNN, LSTM, GRU는 각각 시퀀스 데이터 처리에 있어서 중요한 역할을 합니다. 기본 RNN은 간단한 시퀀스에서 잘 작동하지만, 긴 시퀀스에서는 LSTM 또는 GRU가 더 나은 성능을 보일 수 있습니다. 각각의 모델은 특정 상황과 데이터 유형에 따라 선택되어야 합니다.
'Tech Stack > Machine learning' 카테고리의 다른 글
기계학습 13 - 오류 역전파 알고리즘 (0) | 2024.01.11 |
---|---|
기계학습 10 - CNN (0) | 2024.01.11 |
기계학습 - 8 softmax, dropout (1) | 2024.01.11 |
기계학습 7 - 활성화함수 (1) | 2024.01.11 |
기계학습 6 - 역전파 공부 (0) | 2024.01.08 |