[딥러닝] RNN(구조)

Peter·2021년 7월 8일
0

딥러닝

목록 보기
37/47

순환 신경망(RNN)이 갖추어야 할 세가지 필수 기능

시간성

  • 특징을 순서대로 한 번에 하나씩 입력해야 한다.

가변 길이

  • 길이가 T인 샘플을 처리하려면 은닉층이 T번 나타나야 한다. T는 가변적이다.

문맥 의존성

  • 이전 특징 내용을 기억하고 있다가 적절한 순간에 활용해야 한다.

RNN의 구조

깊은 신경망과 유사성

  • 입력층, 은닉층, 출력층을 가짐

깊은 신경망과 차이점

  • 은닉층이 순환 연결(recurrent connection)을 가진다는 점
  • 시간성, 가변 길이, 문맥 읜존성을 모두 처리할 수 있음
  • 순환 연결은 t-1순간에 발생한 정보를 t순간으로 전달하는 역할

순환 연결을 가진 은닉층

  • 새로운 샘플에 대한 연산을 수행할때 이전 연산 결과를 사용함
  • 처음 샘플의 연산 결과가 끝까지 영향일 끼침
  • 쎄타는 순환 신경망의 매개변수

순환 신경망의 매개변수

  • 순환 신경망의 매개변수는 5가지
  • U는 입력층과 은닉층을 연결하는 p*d 행렬
  • W는 은닉층과 은닉층을 연결하는 p*p 행렬
  • V는 은닉층과 출력층을 연결하는 q*p 행렬
  • b,c는 바이어스로서 각각 p*1과 q*1 행렬
  • RNN 학습은 훈련집합을 최적의 성능으로 예측하는 쎄타값을 찾는일

매개변수 공유

  • 매 순간 다른 값을 사용하지 않고 같은 값을 공유함
  • 공유의 장점
    - 추정할 매개변수가 수가 획기적으로 줄어듦
    - 매개변수의 수가 특징 벡터의 길이 T에 무관
    - 특징이 나타나는 순간이 뒤바뀌어도 같거나 유사한 출력을 만들 수 있음 -> "어제 이 책을 샀다"와 "이 책을 어제 샀다"를 비슷한 영어 문장으로 변역할 수 있음

기본 RNN 연산 그래프

  • 같은 가중치 행렬 W를 매 시간마다 재사용함

  • 문자 모델을 보면 3개의 다른 방향으로 같은 가중치를 사용하고 있다는걸 알 수 있음

다양한 RNN 구조

  • 기본 그래프는 입력개수와 출력개수가 같은경우
  • 위 사진은 입력개수와 출력개수가 다른 경우의 수

다대일 구조

  • 여러 문장에 의한 입력값에 대해 한단어의 출력이 나옴
  • "지난주 화요일 저녁에 먹은 음식은?" 이라는 문장에 "파스타"라는 단어 출력이 나옴

일대다 구조

  • 한개의 단어나 샘플이 들어가면 문장형태의 출력이 나옴
  • "사과" 라고 입력하면 " 사과는 아침에 먹으면 좋은 과일중 하나다" 라고 나옴

문장 대 문장 (다대일과 일대다의 조합)

  • 두가지가 합쳐서 만들어지는 다대다(many to many) 형태 연산
  • 다대일로 연산이 끝나면 그 단일 값을 가지고 일대다 연산을 순차적으로 수행하는 형태
  • 통역같은 경우 다 듣고 번역을 하는것이 좋기 때문에 이런 구조가 적합
  • 왼쪽이 인코더 오른쪽이 디코더

다대다 구조

  • 입력에 대한 연산과정을 시행하면서 결과값이 실시간으로 출력됨
profile
컴퓨터가 좋아

0개의 댓글