logo

게이트 순환 단위 네트워크

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 순환 장치의 입력 게이트와 망각 게이트의 조합과 유사합니다. 현재 메모리 게이트( overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1})) ): Gated Recurrent Unit Network에 대한 일반적인 논의에서는 종종 간과됩니다. 입력 변조 게이트가 입력 게이트의 하위 부분인 것처럼 리셋 게이트에 통합되어 입력에 비선형성을 도입하고 입력을 평균 0으로 만드는 데 사용됩니다. 이를 재설정 게이트의 하위 부분으로 만드는 또 다른 이유는 이전 정보가 미래로 전달되는 현재 정보에 미치는 영향을 줄이기 위한 것입니다.

Gated Recurrent Unit 네트워크의 기본 작업 흐름은 기본 Recurrent Neural Network의 작업 흐름과 유사합니다. 두 가지의 주요 차이점은 Gated Recurrent Unit 네트워크가 변조하는 게이트로 구성되기 때문에 각 순환 장치 내의 내부 작업에 있습니다. 현재 입력과 이전 숨겨진 상태.



Gated Recurrent Unit의 작동:

  • 현재 입력과 이전 은닉 상태를 벡터로 입력합니다.
  • 아래 단계에 따라 세 가지 다른 게이트의 값을 계산하십시오.
    1. 각 게이트에 대해 해당 벡터와 각 게이트의 해당 가중치 간에 요소별 곱셈(아다마르 곱)을 수행하여 매개변수화된 현재 입력 및 이전 숨겨진 상태 벡터를 계산합니다.
    2. 매개변수화된 벡터에 각 게이트 요소별로 해당 활성화 함수를 적용합니다. 아래에는 게이트에 적용할 활성화 함수가 포함된 게이트 목록이 나와 있습니다.
 Update Gate : Sigmoid Function Reset Gate : Sigmoid Function>
  • 현재 메모리 게이트를 계산하는 과정은 약간 다릅니다. 먼저 Reset Gate와 이전의 Hidden State 벡터의 Hadamard 곱을 계산합니다. 그런 다음 이 벡터를 매개변수화한 다음 매개변수화된 전류 입력 벡터에 추가합니다.

    h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}
  • 현재 은닉 상태를 계산하기 위해 먼저 입력과 동일한 차원의 1 벡터를 정의합니다. 이 벡터는 1이라고 불리며 수학적으로 1로 표시됩니다. 먼저 업데이트 게이트의 Hadamard Product와 이전 숨겨진 상태 벡터를 계산합니다. 그런 다음 업데이트 게이트를 빼서 새 벡터를 생성한 다음 현재 메모리 게이트를 사용하여 새로 생성된 벡터의 Hadamard 곱을 계산합니다. 마지막으로 두 벡터를 추가하여 현재 숨겨진 상태 벡터를 얻습니다.
    E_{t} = -y_{t}log(overline{y}_{t})

    위에서 언급한 작업은 다음과 같습니다.

파란색 원은 요소별 곱셈을 나타냅니다. 원 안의 양수 기호는 벡터 덧셈을 나타내고, 음수 기호는 벡터 뺄셈(음수 값을 갖는 벡터 덧셈)을 나타냅니다. 가중치 행렬 W에는 현재 입력 벡터에 대한 서로 다른 가중치와 각 게이트에 대한 이전 숨겨진 상태가 포함되어 있습니다.

순환 신경망과 마찬가지로 GRU 네트워크도 각 시간 단계에서 출력을 생성하고 이 출력은 경사하강법을 사용하여 네트워크를 훈련하는 데 사용됩니다.

워크플로와 마찬가지로 GRU 네트워크의 교육 프로세스도 기본 순환 신경망의 교육 프로세스와 도식적으로 유사하며 각 순환 유닛의 내부 작업만 다릅니다.

게이트 순환 단위 네트워크에 대한 시간을 통한 역전파 알고리즘은 장단기 기억 네트워크의 알고리즘과 유사하며 차동 체인 형성만 다릅니다.

허락하다 E = sum _{t} E_{t}각 시간 단계에서 예측된 출력이 되고 오른쪽 화살표 E = sum _{t} -y_{t}log(overline{y}_{t})각 시간 단계의 실제 출력이 됩니다. 그런 다음 각 시간 단계의 오류는 다음과 같이 제공됩니다.

frac{partial E}{partial W} = sum _{t} frac{partial E_{t}}{partial W}

따라서 전체 오류는 모든 시간 단계의 오류를 합산하여 제공됩니다.

frac{partial E_{t}}{partial W} = frac{partial E_{t}}{partial overline{y}_{t}}frac{partial overline{y}_ {t}}{partial h_{t}}frac{partial h_{t}}{partial h_{t-1}}frac{partial h_{t-1}}{partial h_{t -2}}......frac{partial h_{0}}{partial W}
frac{partial E}{partial W} = sum _{t}frac{partial E_{t}}{partial overline{y}_{t}}frac{partial overline{ y}_{t}}{partial h_{t}}frac{partial h_{t}}{partial h_{t-1}}frac{partial h_{t-1}}{partial h_{t-2}}......frac{partial h_{0}}{partial W}

마찬가지로, 값 h_{t} = z_{t}odot h_{t-1} + (1-z_{t})odot overline{h}_{t}각 시간 단계에서 기울기의 합으로 계산할 수 있습니다.

frac{partial h_{t}}{partial h_{t-1}} = z + (1-z)frac{partial overline{h}_{t}}{partial h_{t- 1}}

체인 규칙을 사용하고 다음 사실을 사용합니다. overline{h}_{t} = tanh(Wodot x_{t}+Wodot (r_{t}odot h_{t-1}))의 함수이다 frac{partial overline{h_{t}}}{partial h_{t-1}} = frac{partial (tanh(Wodot x_{t}+Wodot (r_{t} odot h_{t-1})))}{partial h_{t-1}} Rightarrow frac{partial overline{h_{t}}}{partial h_{t-1}} = (1 -overline{h}_{t}^{2})(Wodot r)그리고 실제로는 다음의 함수입니다. , 다음 표현식이 발생합니다.



따라서 총 오류 기울기는 다음과 같이 제공됩니다.



그래디언트 방정식에는 다음과 같은 체인이 포함됩니다. 이는 기본적인 순환 신경망(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에 가깝도록 각 가중치를 조정합니다.