[개발 일기] 2025.01.31 - LSTM

2025. 1. 31. 23:00·개발 일기

개요

 

면접을 준비하며 포트폴리오에 대해 읽어보다가 학부 졸업작품으로 진행한 프로젝트에서 사용한 메인 기술인 LSTM에 대해 정리해 보자.

 

 

사실 이 기술을 사용한 지 너무 오래돼서 기억이 가물가물 한 건 안 비밀..

 

 

 

RNN

 

RNN(순환 신경망)이란 과거의 정보를 기억하면서 현재 데이터를 과거의 정보를 토대로 처리하는 신경망을 의미한다.

 

 

과거에 사용되던 일반적인 신경망은 입력을 한 번 받고 결과를 출력한다. 즉, 이전에 사용된 데이터를 축적하지 않는다.

 

 

하지만 RNN은 이전의 정보를 저장하고 이를 다음 단계에서 활용한다.

 

 

하지만 이 RNN도 과거에 사용된 정보를 영원히 보관하지 못한다. (장기 의존성 문제)

 

 

이렇게 RNN이 과거 정보를 잘 기억하지 못하는 이유는 역전파 과정에서 발생하는 기울기 소실 (Gradient Vanishing) 때문이다.

 

 

 

RNN은 과거에 입력된 데이터에 기울기를 전달하며 입력된 문장의 순서대로 학습하는 방식을 사용하는데, 이 기울기가 소실된다면 의미 있는 모델을 학습시킬 수 없는 것이다.

 

 

그렇기 때문에 이러한 문제를 해결하기 위해 나온 기술이 LSTM이다.

 

 

 

LSTM (Long Short Term Model)

 

 

LSTM은 RNN의 기울기 소실 문제를 해결하기 위해 셀 상태와 게이트를 추가했다.

 

 

여기서 셀 상태란 이전에 입력된 데이터를 저장하는 공간이고, 게이트는 총 3 가지로 나뉘어 있다.

  • 오래된 정보를 삭제하는 망각 게이트
    • 삭제하는 기준은 sigmoid 가 0에 가까울수록 삭제될 확률이 크다.
  • 새로운 정보가 입력돼서, 이 정보를 얼마나 셀 상태에 저장할지 결정하는 입력 게이트

  • 현시점을 기준으로 셀 상태의 값(예측값)을 출력하는 출력 게이트

 

 

 

참고

 

https://wikidocs.net/152773

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.02.02 - 제네릭  (0) 2025.02.02
[개발 일기] 2025.02.01 - 객체 지향 생활 체조 9가지 규칙 (2)  (1) 2025.02.01
[개발 일기] 2025.01.30 - 객체 지향 생활 체조 9가지 규칙 (1)  (0) 2025.01.30
[개발 일기] 2025.01.29 - 불변 객체  (0) 2025.01.29
[개발 일기] 2025.01.28 - 이분탐색 (Lower Bound, Upper Bound)  (0) 2025.01.28
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.02.02 - 제네릭
  • [개발 일기] 2025.02.01 - 객체 지향 생활 체조 9가지 규칙 (2)
  • [개발 일기] 2025.01.30 - 객체 지향 생활 체조 9가지 규칙 (1)
  • [개발 일기] 2025.01.29 - 불변 객체
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.01.31 - LSTM
상단으로

티스토리툴바