모두를 위한 딥러닝 시즌 1 #12

김은비·2022년 9월 16일
0
post-thumbnail

Sequence data

  • We don't understand one word only
  • We understand based on the previous words + this word. (time series)
  • NN/CNN cannot do this
    우리가 사용하는 데이터들 중에서 시퀀스 데이터가 많음
    ex) 음성인식, 텍스트 등
    RNN구조는 위의 그림과 같이 풀어서 나타낼 수 있음
    현재 입력 값에 대한 출력 값은 이전에 계산한 값에 영향을 받음
    (여기서 h는 y로 이해)

Recurrent Nurial Network

= RNN

: 연속적인 데이터들의 의미를 파악할 때, 우리가 기존에 사용하였던 NN이나 CNN 구조를 사용하기에는 어려움이 많음
따라서 이전의 연산 결과가 현재의 연산 결과에 영향을 미치는 구조인 RNN을 만듦

각각의 RNN cell에서 출력값을 도출

RNN의 연산식

ht=fW(ht1,xt)h_t = f_W(h_{t-1},x_t)

위 식을 보면, 현재 입력 값과 과거상태가 현재상태에 영향을 미치는 것을 알 수 있음

가중치(W)는 총 3가지가 존재


3가지의 가중치는 전체 cell에서 동일한 값임


RNN 모델 예시

"hello"라는 단어를 학습시켜 "h"를 입력 하면 "e"가 출력되도록 하고싶을때,
다음에 오는 글자를 예측하는 시스템인 language model을 만들면 된다

One-hot Encoding 방식 사용
첫번째 hidden layer는 이전 state 값이 없으므로 0으로 설정

이 과정을 반복 실행

마지막으로 y를 구함
-> y값에 softmax함수를 적용하고, 예측값을 최대값으로 설정하면 Cost값과 정확도를 계산할 수 있음


RNN applications

다양한 방법으로 활용 가능


Recurrent Networks offer a lot of flexibility

RNN의 다양한 구조

  • one to one : 기본 RNN 구조

  • one to many :
    ex) Image Captioning - 이미지를 통해 이미지를 설명하는 문장 만들기

  • many to one :
    ex) Sentiment Classification - 문장을 통해 감정 분석하기

  • many to many 1:
    ex) Maching Translation - 문장을 다른 언어로 번역하기

  • many to many 2:
    ex) Video classification on frame level - 비디오를 프레임 단위로 설명하기

Multi-Layer RNN

더 깊은 구조로도 설계 가능


RNN의 고급 모델 종류

  • Long Short Term Memory(LSTM)

  • GRU by Cho et al. 2014

profile
레벨업중...

0개의 댓글