[머신러닝을 위한 파이썬 한 조각] - CH.12 RNN

Jeonghwan Kim·2022년 7월 7일
0

CH.12 RNN

  • 일반신경망과 RNN의 차이점
    1. 은닉층의 출력값을 만들어주는 활성화함수가 relu가 아닌 tanh임
    2. 은닉층의 출력값을 출력층으로 전달해줌과 동시에 은닉층 출력값이 다시 순환되어 은닉층에 입력값으로 들어감
  • RNN 순환신경망
    1. 내부적으로 순환(recurrent)되는 구조를 이용하여,
    2. 순서(sequence)가 있는 데이터를 처리하는 데 강점을 가진 신경망
  • 순서가 있는 데이터

    • 문장이나 음성같은 연속적인 데이터, 문장에서 놓여진 위치(순서)에 따라 의미가 달라짐
    • 현재 데이터의 의미를 알기위해서는 이전에 놓여있는 과거 데이터도 알고있어야 함
    • RNN은 과거의 데이터를 알기 위해서 1) 은닉층내에 순환(recurrent)구조를 이용하여 과거의 데이터를 기억하고 있다가 2) 새롭게 입력으로 주어지는 데이터와 은닉층에서 기억하고 있는 과거데이터를 연결시켜 그 의미를 알아냄
  • RNN 동작원리 - 정성적 분석

    • I: 과거의 데이터가 없기에 입력데이터 I에 대한 tanh값만 계산됨
    • work: 이전의 데이터 I와 연결시켜 은닉층의 계산값을 만들어낸 후 출력층으로 내보냄과 동시에 다시 순환구조를 이용하여 I의 영향을 받은 work가 기억됨
    • at: work가 아닌, I에 영향을 받은 work의 영향을 받음
    • google: I, work에 영향을 받은 at의 영향을 받음
  • RNN 동작원리 - 시간개념 포함

    • 순환구조를 1) 은닉층에서 기억하는 과거의 데이터(빨간 화살표)와
      2) 일정시간이 지난후에 입력되는 데이터에 연결시켜주는 구조로 바꾸어서 생각해볼 수 있음
    • 문장이나 음성과 같은 순서가 있는 데이터는, 시간의 경과에 따라 데이터가 순차적으로 들어온다는 것과 같은 의미임
  • Neural Network에서 바이어스는 각 층에서 오직 1개의 값으로 정의될 수 있으나, 가중치는 각 층으로 입력되는 데이터의 개수만큼 정의됨

    • RNN에서의 가중치, 바이어스
      • 바이어스: 은닉층 바이어스 bh, 출력층 바이어스 b0 2개
      • 은닉층 가중치: 은닉층에서 입력데이터 A1에 대한 가중치 Wih, 내부적으로 순환되는 과거데이터 H에 적용되는 Whh
      • 출력층 가중치: 입력데이터가 A2하나이기에 가중치 1개만 필요
  • RNN 동작원리 - 정량적 분석

  • 시간개념을 포함한 current state Ht

  • 학습데이터를 구성하고 있는 unique 문자를 숫자로 나타낸 후, 숫자를 one-hot 방식으로 변환하는 것이 순서가 있는 데이터를 학습하는 RNN에서 일반적인 방법

0개의 댓글