GRU(Gated Recurrent Unit)는 Cho 등이 소개한 순환 신경망(RNN)의 한 유형입니다. 2014년에는 LSTM(Long Short-Term Memory) 네트워크에 대한 더 간단한 대안으로 출시되었습니다. LSTM과 마찬가지로 GRU는 텍스트, 음성, 시계열 데이터와 같은 순차적 데이터를 처리할 수 있습니다.
GRU의 기본 아이디어는 게이팅 메커니즘을 사용하여 각 단계에서 네트워크의 숨겨진 상태를 선택적으로 업데이트하는 것입니다. 게이팅 메커니즘은 네트워크 안팎으로의 정보 흐름을 제어하는 데 사용됩니다. GRU에는 재설정 게이트와 업데이트 게이트라는 두 가지 게이팅 메커니즘이 있습니다.
리셋 게이트는 이전 은닉 상태를 얼마나 잊어야 하는지 결정하고, 업데이트 게이트는 은닉 상태를 업데이트하는 데 사용할 새로운 입력의 양을 결정합니다. GRU의 출력은 업데이트된 숨겨진 상태를 기반으로 계산됩니다.
GRU의 리셋 게이트, 업데이트 게이트, 은닉 상태를 계산하는 데 사용되는 방정식은 다음과 같습니다.
게이트 재설정: r_t = 시그모이드(W_r * [h_{t-1}, x_t])
업데이트 게이트: z_t = 시그모이드(W_z * [h_{t-1}, x_t])
후보 숨겨진 상태: h_t' = tanh(W_h * [r_t * h_{t-1}, x_t])
숨겨진 상태: h_t = (1 – z_t) * h_{t-1} + z_t * h_t'
여기서 W_r, W_z 및 W_h는 학습 가능한 가중치 행렬이고, x_t는 시간 단계 t의 입력이고, h_{t-1}은 이전 숨겨진 상태이고, h_t는 현재 숨겨진 상태입니다.
요약하면 GRU 네트워크는 게이팅 메커니즘을 사용하여 각 단계에서 숨겨진 상태를 선택적으로 업데이트하여 순차적 데이터를 효과적으로 모델링할 수 있는 RNN 유형입니다. 언어 모델링, 기계 번역, 음성 인식 등 다양한 자연어 처리 작업에 효과적인 것으로 나타났습니다.
전제 조건: 순환 신경망, 장기 단기 기억 네트워크
기본 순환 신경망(Recurrent Neural Network)의 작동 중에 자주 발생하는 Vanishing-Exploding Gradients 문제를 해결하기 위해 많은 변형이 개발되었습니다. 가장 유명한 변형 중 하나는 장단기 기억망(LSTM) . 덜 알려졌지만 똑같이 효과적인 변형 중 하나는 Gated Recurrent Unit Network(GRU) .
LSTM과 달리 3개의 Gate로만 구성되며 Internal Cell State를 유지하지 않습니다. LSTM Recurrent Unit의 Internal Cell State에 저장된 정보는 Gated Recurrent Unit의 숨겨진 상태에 통합됩니다. 이 집단 정보는 다음 Gated Recurrent Unit으로 전달됩니다. GRU의 다양한 게이트는 다음과 같습니다.
- Update Gate(z): 과거 지식 중 어느 정도를 미래에 전달해야 하는지 결정합니다. 이는 LSTM 순환 단위의 출력 게이트와 유사합니다. 재설정 게이트(r): 과거 지식을 얼마나 잊어버릴지 결정합니다. 이는 LSTM 순환 장치의 입력 게이트와 망각 게이트의 조합과 유사합니다. 현재 메모리 게이트(

Gated Recurrent Unit 네트워크의 기본 작업 흐름은 기본 Recurrent Neural Network의 작업 흐름과 유사합니다. 두 가지의 주요 차이점은 Gated Recurrent Unit 네트워크가 변조하는 게이트로 구성되기 때문에 각 순환 장치 내의 내부 작업에 있습니다. 현재 입력과 이전 숨겨진 상태.
Gated Recurrent Unit의 작동:
- 현재 입력과 이전 은닉 상태를 벡터로 입력합니다.
- 아래 단계에 따라 세 가지 다른 게이트의 값을 계산하십시오.
- 각 게이트에 대해 해당 벡터와 각 게이트의 해당 가중치 간에 요소별 곱셈(아다마르 곱)을 수행하여 매개변수화된 현재 입력 및 이전 숨겨진 상태 벡터를 계산합니다.
- 매개변수화된 벡터에 각 게이트 요소별로 해당 활성화 함수를 적용합니다. 아래에는 게이트에 적용할 활성화 함수가 포함된 게이트 목록이 나와 있습니다.
Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
- 현재 메모리 게이트를 계산하는 과정은 약간 다릅니다. 먼저 Reset Gate와 이전의 Hidden State 벡터의 Hadamard 곱을 계산합니다. 그런 다음 이 벡터를 매개변수화한 다음 매개변수화된 전류 입력 벡터에 추가합니다.
- 현재 은닉 상태를 계산하기 위해 먼저 입력과 동일한 차원의 1 벡터를 정의합니다. 이 벡터는 1이라고 불리며 수학적으로 1로 표시됩니다. 먼저 업데이트 게이트의 Hadamard Product와 이전 숨겨진 상태 벡터를 계산합니다. 그런 다음 업데이트 게이트를 빼서 새 벡터를 생성한 다음 현재 메모리 게이트를 사용하여 새로 생성된 벡터의 Hadamard 곱을 계산합니다. 마지막으로 두 벡터를 추가하여 현재 숨겨진 상태 벡터를 얻습니다.
위에서 언급한 작업은 다음과 같습니다.
파란색 원은 요소별 곱셈을 나타냅니다. 원 안의 양수 기호는 벡터 덧셈을 나타내고, 음수 기호는 벡터 뺄셈(음수 값을 갖는 벡터 덧셈)을 나타냅니다. 가중치 행렬 W에는 현재 입력 벡터에 대한 서로 다른 가중치와 각 게이트에 대한 이전 숨겨진 상태가 포함되어 있습니다.
순환 신경망과 마찬가지로 GRU 네트워크도 각 시간 단계에서 출력을 생성하고 이 출력은 경사하강법을 사용하여 네트워크를 훈련하는 데 사용됩니다.
워크플로와 마찬가지로 GRU 네트워크의 교육 프로세스도 기본 순환 신경망의 교육 프로세스와 도식적으로 유사하며 각 순환 유닛의 내부 작업만 다릅니다.
게이트 순환 단위 네트워크에 대한 시간을 통한 역전파 알고리즘은 장단기 기억 네트워크의 알고리즘과 유사하며 차동 체인 형성만 다릅니다.
허락하다 각 시간 단계에서 예측된 출력이 되고
각 시간 단계의 실제 출력이 됩니다. 그런 다음 각 시간 단계의 오류는 다음과 같이 제공됩니다.
따라서 전체 오류는 모든 시간 단계의 오류를 합산하여 제공됩니다.
마찬가지로, 값 각 시간 단계에서 기울기의 합으로 계산할 수 있습니다.
체인 규칙을 사용하고 다음 사실을 사용합니다. 의 함수이다
그리고 실제로는 다음의 함수입니다.
, 다음 표현식이 발생합니다.
따라서 총 오류 기울기는 다음과 같이 제공됩니다.
그래디언트 방정식에는 다음과 같은 체인이 포함됩니다. 이는 기본적인 순환 신경망(Recurrent Neural Network)의 그것과 유사해 보이지만 이 방정식은
.
Gated Recurrent Units는 그래디언트 소실 문제를 어떻게 해결합니까?
그래디언트의 값은 다음에서 시작하는 파생 상품 체인에 의해 제어됩니다. . 에 대한 표현을 기억해 보세요.
:-
위 식을 사용하면 이다:-
에 대한 표현을 기억해 보세요. :-
위 식을 사용하여 값을 계산합니다. :-
업데이트 게이트와 리셋 게이트 모두 시그모이드 함수를 활성화 함수로 사용하므로 둘 다 0 또는 1의 값을 가질 수 있습니다.
사례 1(z = 1):
이 경우에는 금액에 상관없이 , 용어
는 z와 같고 이는 다시 1과 같습니다.
사례 2A(z=0 및 r=0):
이 경우 용어는 0과 같습니다.
사례 2B(z=0 및 r=1):
이 경우 용어는 동일하다
. 이 값은 훈련 가능한 가중치 행렬에 의해 제어되므로 네트워크는 항이 다음과 같은 방식으로 가중치를 조정하는 방법을 학습합니다.
1에 가까워집니다.
따라서 시간을 통한 역전파 알고리즘은 파생 상품 체인의 값이 가능한 한 1에 가깝도록 각 가중치를 조정합니다.