Parameter Sharing in RNN
1. Generalize to sequence lengths not seen during training
- 의미:
- RNN은 고정된 길이의 입력 시퀀스에만 작동하지 않습니다. 훈련 시 보지 못했던 다른 길이의 시퀀스에도 일반화가 가능합니다.
- RNN은 동일한 파라미터를 시퀀스의 모든 단계에서 재사용(공유)하므로, 시퀀스 길이가 달라져도 동일한 연산 과정을 반복합니다.
- 어떻게 가능한가?
- RNN에서는 하나의 셀(Neuron) 이 시간 단계마다 반복적으로 활성화됩니다.
- 입력 시퀀스의 길이에 상관없이 동일한 가중치(파라미터)가 각 시간 단계에서 재사용되므로, 시퀀스 길이에 구애받지 않고 작동할 수 있습니다.
예시:
- 훈련: 길이가 10인 시퀀스로 훈련.
- 테스트: 길이가 20인 시퀀스에도 적용 가능.
- 이유: 시퀀스의 길이가 증가해도 RNN은 각 시간 단계에서 동일한 파라미터를 사용하여 연산을 수행합니다.
2. Share the parameter effectiveness across different sequence lengths and different positions in time
- 의미:
- RNN은 시퀀스의 다른 시간 단계(position) 에서도 동일한 파라미터를 재사용합니다.
- 동일한 파라미터가 시퀀스의 처음, 중간, 끝 어디에서든 사용되며, 이는 파라미터가 위치와 무관하게 효과적으로 작동함을 의미합니다.
- 어떻게 가능한가?
- RNN은 모든 시간 단계에서 동일한 가중치 행렬 반복 구조, 그리고 동일한 수학적 연산(주로 행렬 곱과 비선형 활성화 함수)을 사용합니다.
- 따라서, 입력 데이터가 시퀀스의 어느 시점에 위치하든 동일한 가중치가 적용되므로, 모든 시간 단계에서 파라미터의 효과가 공유됩니다.
예시:
RNN에서 Parameter Sharing의 장점
1. 시퀀스 길이에 독립적
- RNN의 파라미터는 시퀀스의 길이에 무관하게 재사용됩니다.
- 따라서 훈련 데이터에서 보지 못했던 긴 시퀀스나 짧은 시퀀스를 처리할 수 있습니다.
- 이는 RNN이 유연한 모델로 작동하게 만듭니다.
2. 모델 크기 축소
- RNN은 시간 단계별로 독립적인 파라미터를 사용하는 대신, 동일한 파라미터를 재사용하므로 모델 크기가 대폭 줄어듭니다.
- 예: 길이 1000의 시퀀스가 입력되더라도, 각 시간 단계에서 동일한 가중치 행렬 W, U, b를 사용하므로, 전체 모델의 파라미터 수는 고정됩니다.
3. 데이터 효율성
- 시퀀스의 각 시간 단계에서 동일한 파라미터를 학습하기 때문에, 모델은 각 시간 단계에서 데이터를 활용하며 동일한 파라미터를 계속 개선합니다.
- 이는 데이터의 효율적 학습을 가능하게 합니다.
4. 일반화 성능 향상
- 동일한 파라미터를 시퀀스 전체에 공유하므로, 모델은 시퀀스의 모든 위치에 대해 일관된 학습을 수행합니다.
- 이는 모델이 시간적 위치에 구애받지 않고 패턴을 일반화할 수 있게 합니다.
Parameter Sharing의 한계
1. 긴 시퀀스에서의 정보 소실
- 동일한 파라미터를 공유하더라도, 긴 시퀀스에서는 초기 시간 단계의 정보가 점차 소실되어 후반부에 영향을 미치지 않을 수 있습니다.
- 이를 해결하기 위해 LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Unit) 와 같은 개선된 RNN 구조가 도입되었습니다.
2. Context Independence
- 동일한 파라미터를 공유하기 때문에, RNN은 시간적 위치에 따라 패턴을 유연하게 조정하지 못할 수 있습니다. 이는 Transformer와 같은 모델이 등장한 이유 중 하나입니다.
Parameter Sharing의 수학적 표현
RNN의 기본 공식:
Parameter Sharing의 직관적 이해
1. 일반적인 네트워크
- 일반적인 피드포워드 네트워크는 각 층(layer)이 독립된 가중치를 학습합니다.
- 동일한 패턴이 여러 위치에서 나타나더라도, 이를 별도의 가중치로 학습해야 하므로 학습 효율이 낮습니다.
2. RNN의 파라미터 공유
- RNN에서는 동일한 파라미터가 재사용되므로, 모델은 같은 패턴을 반복 학습할 필요가 없습니다.
- 동일한 파라미터가 시퀀스의 처음, 중간, 끝 어디에서든 효과적으로 작동할 수 있습니다.
RNN의 3가지 주요 파라미터
- 입력-가중치 행렬 (W)
- 은닉 상태-가중치 행렬 (U)
- 바이어스 벡터 (b)
RNN의 파라미터를 이용한 은닉 상태 계산 공식
RNN에서 은닉 상태 (hth_t)를 계산하는 공식은 다음과 같습니다:
파라미터 공유
시간 축의 모든 단계에서 동일한 파라미터 사용
- RNN은 모든 시간 단계 tt에서 동일한 W, U, b 를 공유합니다. 이는 Parameter Sharing이라고 불리며, 다음과 같은 장점을 제공합니다:
- 모델 크기 감소: 시퀀스의 길이에 상관없이 동일한 가중치를 사용하여 파라미터 수를 최소화.
- 일관된 학습: 시간 단계별로 동일한 연산이 반복되므로, 각 시간 단계에서 데이터가 동일한 방식으로 처리됨.
파라미터 수 계산
파라미터 수 공식
RNN의 총 파라미터 수는 다음과 같이 계산할 수 있습니다:
LSTM과 GRU의 경우
RNN보다 복잡한 구조인 LSTM과 GRU는 더 많은 파라미터를 가집니다. 이들은 각 시간 단계에서 더 많은 가중치 행렬과 바이어스를 사용하여, 장기 의존성 문제를 해결합니다.
- LSTM: 4개의 게이트(입력, 망각, 출력, 후보값)를 가지므로, 총 12개의 가중치 행렬 (W,U,b)을 사용합니다.
- GRU: 3개의 게이트(업데이트, 리셋, 후보값)를 가지므로, 총 9개의 가중치 행렬을 사용합니다.
Parameter Sharing의 예제
같은 가중치 사용의 직관적 이해
- 여기서 W,U,b 는 각 시간 단계에서 동일하게 사용됩니다.
Parameter Sharing의 시각적 표현
다음은 RNN의 구조를 시간축으로 펼친(Unrolled) 형태입니다:
Time Step 1 Time Step 2 Time Step 3
x_1 ------------> x_2 ------------> x_3
| | |
[W, U, b] [W, U, b] [W, U, b]
↓ ↓ ↓
h_1 ------------> h_2 ------------> h_3
'AI > 대학원' 카테고리의 다른 글
CPU(NumPy) and GPU(CuPy and PyTorch) 성능 비교 (0) | 2024.12.23 |
---|---|
PCA 와 FDA 실습 및 분석 (0) | 2024.11.20 |
Gaussian process 실습 (8) | 2024.11.14 |
VGG16 을 이용한 Transfer Learning 실습 (2) | 2024.11.11 |
도메인에 맞는 AI 지능화 전략 (자율주행 보안) (6) | 2024.11.10 |