본문 바로가기
AI/공부

RNN & Automata (오토마타)

by 지수코딩 2019. 9. 24.

[RNN]

1. RNN이란?

   - Recurrent Neural Network

   - Hidden Layer 안에 하나 이상의 순환 계층을 갖는 신경망 구조

   - 시계열 데이터 처리에 알맞게 고안된 퍼셉트론 계층

   - 지연 입력 방식(어떤 시간대의 출력이 다음 시간대의 입력으로 이용됨)

 

2. Static RNN  &  Dynamic RNN

좌변(접어놓은 표현, Dynamic RNN) / 우변(펼쳐놓은 표현, Static RNN)

<수식>

h_t = tanh(h_(t-1)*W_h + x_t*W_x + b)

 

같은 대상을 다른 방식으로 표현한 데 지나지 않지만, TF와 같은 프레임워크에서는 이런 표현법의 차이가 실제 계산 그래프 구성에 반영되기도 함

 

  • Dynamic RNN
    • 간단한 계산 그래프 구성 해놓고 반복 이용
  • Static RNN
    • 반복 없이 여러 시간의 동시 처리해서 시간은 더 빠르다.
    • 하지만, 초기 계산 그래프 구성 과정이 어렵고
    • 시계열 데이터의 길이에 대한 유연성이 떨어진다.

3. BPTT(Backpropagation Through Time)

: 시간 방향으로 펼친 신경망의 오차역전파법

- 시계열 데이터의 시간 크기에 컴퓨팅 시간 비례 (시간 크기가 커지면 역전파 시 기울기 불안정해짐)

 

==> Truncated BPTT

: 시간축 방향으로 너무 길어진 신경망을 적당한 지점에서 잘라내어 작은 신경망 여러 개로 만드는 것

 

 

 

 

[Automata(오토마타)]

1. 오토마타란?

   - 상태 집합과 상태 변화 규칙이 명확하게 지정되어 있어 이에 따라 동작하는 추상화된 기계 장치

   - 쉽게 말해서

   - 시작 상태에서 출발하여 종료 조건에 맞는 상태까지 이동해가는 과정에서 입력 처리나 출력 생성 등 다양한 일을 하는 것.

 

2. Finite state machine

   - 가장 간단한 오토마타

   - 너무 단순해 가전제품 등에 사용됨

 

3. Pushdown automata

   - 언어 처리 분야에 적용 가능한 좀 더 강력한 오토마타

   - 복수의 상태 정보를 스택 구조로 관리하면서 트리 형태의 문법 구조를 통해 문장을 생성하거나 검사한다.

 

 

 

 

 

Python ++

np.dot(A,B)

A의 마지막 array size = B의 마지막 전 array size

 

np.matmul(A,B)

A, B 마지막 두 배열 값으로 내적(나머지 앞의 값들은 같아야 함)

 

반응형

'AI > 공부' 카테고리의 다른 글

[인과관계 추론] 9.Instrumental Variables  (0) 2021.08.06
[Book] 한국어 임베딩  (0) 2019.11.09
CNN  (0) 2019.09.30

댓글