Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Gated Recurrent Unit (GRU)

게이트 순환 유닛(GRU)은 업데이트 게이트와 리셋 게이트가 기억할 내용을 제어하는 순환 셀입니다. 방정식, GRU와 LSTM의 비교, 코드를 다룹니다.

게이트 순환 유닛(GRU)은 시퀀스를 한 번에 한 단계씩 처리하는 순환 신경망(RNN) 셀입니다. 업데이트 게이트와 리셋 게이트라는 두 개의 학습된 게이트를 사용해 각 단계에서 메모리를 얼마나 유지하고 덮어쓸지 결정합니다. Kyunghyun Cho와 동료들은 2014년 기계 번역을 위한 RNN 인코더-디코더 논문에서 GRU를 소개했습니다. 게이트를 사용하면 여러 시간 단계에 걸쳐 그래디언트가 흐르므로, 그래디언트 소실 문제를 겪는 단순 RNN보다 GRU가 더 장기적인 종속성을 학습할 수 있습니다. GRU는 장단기 메모리(LSTM) 네트워크를 단순화한 형태로, 두 개 대신 하나의 은닉 상태를 사용하고 네 개 대신 세 개의 가중치 블록을 사용합니다. 시계열 분석, 음성 및 기타 순차 데이터에 사용됩니다.

GRU 작동 방식#

각 시간 단계 t에서 GRU는 현재 입력 xₜ와 이전 은닉 상태 hₜ₋₁을 결합합니다. 두 게이트는 시그모이드 함수를 사용해 상태의 각 요소에 대해 0과 1 사이의 값을 출력합니다.

  • 리셋 게이트: rₜ = σ(Wᵣxₜ + Uᵣhₜ₋₁ + bᵣ)는 새로운 콘텐츠를 제안할 때 이전 상태를 얼마나 사용할지 결정합니다. 0에 가까운 값은 셀이 과거 상태를 무시하게 하며, 이는 새로운 구절이 시작되는 지점과 같은 경계에서 도움이 됩니다.
  • 업데이트 게이트: zₜ = σ(W_z xₜ + U_z hₜ₋₁ + b_z)는 이전 상태를 얼마나 유지할지 결정합니다. 1에 가까운 값은 이전 상태를 거의 변경하지 않고 다음 단계로 복사하며, 이를 통해 정보가 긴 구간 동안 유지됩니다.
  • 후보 상태: h̃ₜ = tanh(Wxₜ + U(rₜ ⊙ hₜ₋₁) + b)는 입력과 리셋 게이트로 조정한 과거 상태를 바탕으로 새로운 콘텐츠를 제안하며, tanh를 사용해 값을 −1과 1 사이로 유지합니다.
  • 새 상태: hₜ = (1 − zₜ) ⊙ h̃ₜ + zₜ ⊙ hₜ₋₁는 후보 상태와 이전 상태를 요소별로 결합합니다.

업데이트 게이트가 1에 가까운 값을 유지하면 새 상태는 이전 상태를 거의 그대로 복사하며, 그래디언트는 이 복사 경로를 따라 거의 감쇠되지 않고 역방향으로 전달됩니다. 이 가산 경로는 LSTM의 셀 상태와 같은 역할을 합니다. 위 수식은 zₜ가 이전 상태에 가중치를 부여하는 원래 논문을 따릅니다. 일부 문헌에서는 zₜ와 1 − zₜ의 역할을 바꾸지만, 같은 셀을 나타냅니다. PyTorch의 nn.GRU는 동일한 결합을 사용하지만 행렬 곱셈 후에 리셋 게이트를 적용하는 널리 쓰이는 후보 상태 변형인 rₜ ⊙ (Uhₜ₋₁ + b)를 사용합니다.

PyTorch에서 GRU 사용하기#

아래 코드 조각은 비디오의 프레임별 특징과 같은 특징 벡터 시퀀스에 GRU를 적용하고, 같은 너비의 LSTM과 크기를 비교합니다.

import torch
from torch import nn

# A sequence of 64-dim features from 5 video frames: (batch, time, features)
frames = torch.randn(1, 5, 64)

# A GRU with a 128-dim hidden state, and an LSTM of the same size for comparison
gru = nn.GRU(input_size=64, hidden_size=128, batch_first=True)
lstm = nn.LSTM(input_size=64, hidden_size=128, batch_first=True)

# outputs holds the hidden state at every step; h_n is the final state
outputs, h_n = gru(frames)
print(f"Outputs: {tuple(outputs.shape)}, final state: {tuple(h_n.shape)}")

# GRU weights cover 3 blocks (reset, update, candidate); LSTM weights cover 4
gru_params = sum(p.numel() for p in gru.parameters())
lstm_params = sum(p.numel() for p in lstm.parameters())
print(f"GRU: {gru_params:,} parameters, LSTM: {lstm_params:,} parameters")

Outputs: (1, 5, 128), final state: (1, 1, 128)과 GRU: 74,496 parameters, LSTM: 99,328 parameters을 출력합니다. GRU는 프레임마다 128차원 상태 하나와 전체 시퀀스를 요약하는 최종 상태를 반환합니다. 최종 상태는 후속 분류기에 사용할 수 있으며, GRU의 매개변수 수는 LSTM의 정확히 4분의 3입니다.

GRU, LSTM, 트랜스포머 비교#

  • LSTM: 은닉 상태와 별도로 셀 상태를 유지하며 입력, 망각, 출력의 세 게이트를 사용합니다. GRU는 두 상태를 하나로 합치고 출력 게이트를 제거하므로 매개변수가 더 적고 단계별 학습 속도가 더 빠릅니다. Junyoung Chung과 동료들이 2014년에 수행한 실증 비교에서 GRU는 다성 음악 및 음성 신호 모델링에서 LSTM과 비슷한 성능을 보였습니다. 실제로는 작업에 따라 어느 한쪽이 일관되게 우세하지 않습니다.
  • 단순 RNN: 게이트 없이 각 단계에서 전체 상태를 덮어쓰므로 긴 시퀀스에서 그래디언트가 소실되거나 폭발하며, 오랜 간격으로 떨어진 사건을 연결하는 데 어려움을 겪습니다.
  • Transformer: 어텐션을 사용해 시퀀스의 모든 위치를 병렬로 처리하므로 GPU에서 훨씬 빠르게 학습하고 장거리 컨텍스트를 더 잘 처리합니다. 따라서 대부분의 언어 작업에서 트랜스포머가 순환 네트워크를 대체했습니다. GRU는 시퀀스 길이에 관계없이 일정한 크기의 상태와 단계별 일정한 연산 비용을 유지하므로 스트리밍 오디오, 센서 데이터, 소형 장치에 여전히 적합합니다.

응용 분야#

  • 광학 흐름: ECCV 2020 최우수 논문상을 수상한 RAFT는 합성곱 GRU를 사용해 여러 반복에 걸쳐 흐름 추정치를 개선합니다. 합성곱 GRU는 행렬 곱셈을 합성곱으로 대체한 GRU이므로 상태가 특징 맵입니다.
  • 예측 유지보수 및 예측: GRU는 진동, 온도, 수요 데이터 스트림을 읽고 고장이나 미래 값을 예측합니다. 소형 모델이 중요한 임베디드 하드웨어에서 자주 사용됩니다.
  • 음성 및 오디오: 온디바이스 오디오 모델은 오디오를 프레임 단위로 처리하고 메모리 사용량이 적고 일정하므로 GRU를 사용합니다. RNNoise 잡음 제거기는 일반 CPU에서 GRU 계층을 실시간으로 실행합니다.
  • 행동 인식: GRU는 프레임별 특징이나 키포인트 시퀀스를 읽고 클립의 행동 레이블을 출력합니다. YOLO26은 트랙 모드에서 프레임 간 각 사람에게 지속적인 ID를 할당합니다. 이를 통해 GRU가 분류할 사람별 박스 시퀀스 또는 포즈 키포인트 시퀀스를 얻을 수 있습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요