상세 컨텐츠

본문 제목

[혼공머] 9장. 순환신경망- 텍스트 분석

통계, ML 방법론

by eun_00 2025. 1. 29. 22:39

본문

9-1. 순차 데이터와 순환 신경망

  • 순차 데이터의 특징을 알고, 순환 신경망 개념을 학습

순차 데이터

: 순서에 의미가 있는 데이터

댓글과 같은 텍스트 데이터는 순서를 유지하며 신경망에 주입해야 함.

  • 완전연결신경망, 합성곱 신경망에서 피드포워드 신경망은 메모리가 없음

순환 신경망

: 완전연결 신경망에서 이전 데이터의 처리 흐름을 순환하는 고리를 추가한 것.

순차 데이터를 처리하기 위해 고안된 순환층을 1개 이상 사용한 신경망을 순환 신경망이라고 부름.

  • 타임스텝
  • 순환신경망에서 순환층을 셀 이라고 함.’
  • 순환 신경망에서 셀 출력을 은닉 상태라고 함. 은닉상태는 다음 층으로 전달될 뿐만 아니라 셀이 다음 타임스텝의 데이터를 처리할 때 재사용됨.
  • 순환 신경망도 입력에 가중치를 곱하고, 활성화 함수를 통과시켜 다음 층으로 보내는 기본 구조는 같음. 그러나 은닉층 출력을 다음층으로만 보내지 않고, 다음 순서에 다시 재사용하는 순환 구조로 되어있음. (즉 이전 타임스텝의 출력을 입력으로 함께 사용하고, 마지막 타임스텝의 출력만 다음층으로 전달)
  • 은닉층 활성화 함수는 tanh2이 많이 사용됨.

셀의 가중치와 입출력

  • 가중치 수, 모델 파라미터 개수
  • 순환층/ 셀/ 은닉상태
    • 순환층은 보통 샘플마다 2개의 차원을 가진다.
    • 마지막 셀의 출력은 1차원이여서 Flatten 클래스로 펼칠 필요가 없다.
  • 텐서플로, 케라스를 사용해 순차데이터/ 순환 신경망 실습

<aside> <img src="/icons/push-pin_gray.svg" alt="/icons/push-pin_gray.svg" width="40px" />

9-2. 순환 신경망으로 IMDB 리뷰 분류하기

  • 텐서플로를 사용해 순환 신경망을 만들어 영화 리뷰 데이터셋에 적용해서 리뷰를 긍정과 부정으로 분류한다. </aside>

댓글을 분석하여 평가가 긍정적인지, 부정적인지 판단

  • 텍스트 자체를 신경망에 전달하는 것이 아님. 모든 것은 숫자 데이터로 처리됨. 이미지 처리는 정수 픽셀값으로 이루어져 있기 때문에 따로 변환하지 않음.
  • 띄어쓰기로 단어를 분리한걸 토큰 이라고 한다. 토큰에 할당하는 정수 중에는 0은 패딩, 1은 문장 시작, 2는 어휘 사전에 없는 토큰을 나타낸다.
  • tensorflow.keras.datasets 패키지 아래 imdb 모듈을 불러와서 정수로 바꾼 데이터를 적재한다.

[실습 예제]

https://github.com/JEENIEEE/mygit/blob/main/혼공머9장_텍스트분석.ipynb

관련글 더보기