본문 바로가기
C.W.K.
Stream
Lesson 03 of 07 · published

풀링과 순환 레이어

~9 min · layers

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

풀링은 필요한 신호만 남기며 해상도를 줄여

합성곱으로 특징을 찾은 뒤에는 모든 공간 위치를 원래 해상도로 유지할 필요가 없는 경우가 많아. 풀링은 특징 지도를 줄여 연산량을 낮추고 뒤쪽 뉴런의 수용 영역을 넓히며 위치 변화에 대한 내성도 조금 높여.

  • MaxPooling2D(2)는 각 2×2 영역의 최댓값을 남겨 가장 강한 활성값을 보존해.
  • AveragePooling2D(2)는 평균을 사용해 더 부드럽게 줄여.
  • GlobalAveragePooling2D()는 모든 공간 위치를 평균해 (H, W, C)를 길이 C인 벡터로 바꿔. 합성곱 백본과 Dense 헤드 사이의 표준 다리로, Flatten보다 매개변수를 크게 줄여.

순환 레이어는 상태를 들고 시퀀스를 따라가

LSTMGRU는 시퀀스를 한 시점씩 처리하며 은닉 상태를 다음으로 전달해 각 출력이 이전 정보에 의존하게 해. return_sequences=False면 전체 시퀀스를 요약한 벡터 하나를 내고, True면 모든 시점의 출력을 내므로 순환 레이어를 쌓을 때 마지막을 제외한 레이어에 필요해. Bidirectional로 감싸면 정방향과 역방향 결과를 이어 붙여. 2024년 이후 많은 작업이 Transformer로 옮겨갔지만 짧은 시계열·텍스트와 엄격한 스트리밍에서는 LSTM이 여전히 간결해.

Code

LSTM, GRU, Bidirectional 감싸기·python
# LSTM: Long Short-Term Memory
layers.LSTM(64, return_sequences=True)  # Output at every timestep
layers.LSTM(64)                             # Output at last timestep only

# GRU: Gated Recurrent Unit (simpler, often comparable)
layers.GRU(64)

# Bidirectional wrapper: processes sequence forward AND backward
layers.Bidirectional(layers.LSTM(64))

External links

Exercise

Embedding → LSTM(64) → Dense와 Embedding → MultiHeadAttention → GlobalAveragePooling1D → Dense 분류기를 IMDB 같은 작은 데이터셋에서 학습해. 에포크당 시간과 최종 검증 정확도를 기록하고 출시할 모델을 골라.
Hint
Attention은 시퀀스를 병렬로 처리하지만 LSTM은 시점을 차례로 처리하므로 GPU에서 Attention 쪽이 보통 더 빨라.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.