saurus2
Saurus2
saurus2
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발
      • AJAX
    • ML Ops
    • Profile
    • 음식점
    • 배낭여행
    • 컴퓨터공학
      • 알고리즘 공부
      • C++
      • Sever 스터디
      • Java spring
      • 알고리즘 _ 문제해결
      • 딥러닝
      • Java 정리
      • Python
      • LeetCode 1000
      • Machine Learning Study
      • Sign language Detection Pro..
      • LeetCode Solutions
    • 비콘
    • 데일리 리포트
    • 유학일기
      • 영어 공부
      • Daily
    • AI Master Degree
      • Data Mining
      • AI and Data engineering
      • Math Foundations for Decisi..
      • Natural Language Processing

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 개발자 취업준비
  • DFS
  • 취준
  • 알고리즘문제해결
  • Python
  • 백준
  • LeetCode
  • 딥러닝
  • 릿코드
  • 문제해결능력
  • 취업준비
  • 알고리즘
  • 개발자
  • BFS
  • 딕셔너리
  • two pointer
  • 온라인저지
  • 리트코드
  • c++
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
saurus2

Saurus2

Recurrent Neural Network란?
AI Master Degree/Natural Language Processing

Recurrent Neural Network란?

2022. 10. 13. 06:16

Recurrent Neural Network (RNN) 이란?

  • RNN 은 하나 이상의 Cycle 를 갖는 신경망이다.
  • 하지만, 제한되지 않은 Connectivity (연결성) 을 가진 RNN 은 훈련과 분석이 어렵다.
  • 그래서, Constrained RNNs (제한된) 을 생각해보자.

RNN 의 개요

  • 네트워크는 한 번에 하나의 입력을 처리한다. 
  • 각 단계는 t 시간 시점과 연관된 것을 알 수 있다. 
  • Recurrent connection 은 현재 시간 단계에서 이전 시간 단계의 학습한 정보를 고려할 수 있기 때문에 'memory' 라고 볼 수 있다. 
  • Feed Forward 네트워크와 다른점은 별개의 Weight 매트릭스 U가 있고 이전 시간 h_(t-1) 단계의 활성화 함수를 사용하는 것이다.

RNN에서의 추론/예측과 훈련

  • 입력 시퀀스가 주어지면 네트워크를 롤업하고 Feed Forward 네트워크에서와 동일한 방식으로 예측과 훈련을 모두 수행할 수 있다. 
  • 입력이 클 때 Segment(Batches)에 대한 unrolling 및 훈련을 수행한다. 
  • RNN 의 계산
  • 소프트맥스 함수
  • 시간이 흐르면서 드러나는 단순한 Recurrent Neural Network
  • 네트워크 층은 각 시간 단계마다 재계산 되며, 모든 단계에서 U, V, W 가 공유된다.

언어 모델링을 위한 RNN

  • Input: Embedding Matrix E에 인덱싱된 단어 입력 시퀀스에 대한 일련의 1-hot 벡터
  • Output: 각 시간 단계에서 각 Vocabulary 단어에 대한 확률
  • Cross-entropy(CE) loss 사용
  • Teacher forcing-based 접근법
  • 훈련 중에 이전 시간 단계의 예측 결과에서 진행하지 않고 각 시간 단계에서 올바른 다음 단어(올바른 history sequence)를 모델에 부여한다.

Sequence Labeling 을 위한 RNN

  • Part-of-Speech(PoS) tagging RNNs은 언어 모델링을 위한 RNN과 동일한 방식으로 구성된다.
  • Output: 각 시간 단계에서 각 PoS 태그의 확률

Sequence Classification 을 위한 RNN

  • Sentiment classification, spam, document level topic classification과 같이 전체적으로 분류되는 일련의 단어를 전달한다.
  • 마지막 토큰(h_(n))에 대한 숨겨진 Layer는 Feed Forward Network(FFN)에 대한 입력 계층 역할을 하며, 이 계층은 분류를 수행한다.
  • h_(n)는 단어 입력 시퀀스의 압축된 표현이다. 
  • 때로는 Pooling 시퀀스의 각 단어에 대해 모든 숨겨진 상태 행렬의 요소별 평균 또는 최대값을 대신 사용할 수 있다. 
  • Loss는 전체 RNN + FFN 네트워크 출력 계층과 관련된 것만 계산된다. 
  • 이것은 end-to-end 훈련이라고 불린다.
  • (Downstream Application) 최종으로부터의 손실은 전체 네트워크에서 Weight 를 조정하는 데 사용된다.

텍스트 생성

  • Autoregressive Generation: 이전 단어 선택에 따라 다음 단어를 반복적으로 샘플링한다.
  • 문장 시작 마커<s> 부터 시작한다.
  • 문장 끝 마커</s>가 생성될 때까지 단어를 생성한다.
  • 번역 작업의 경우 <s> 대신 번역하고 싶은 문장부터 시작할 수 있다.
  • 요약 작업의 경우 <s> 대신 요약할 텍스트부터 시작할 수 있다. 

Stacked RNN

  • 한 RNN 의 출력 계층은 다른 RNN 의 입력 계층이 된다.
  • 스택형 RNN은 개별 RNN을 능가하는 경향이 있지만, 훈련을 하는데 더 계산적으로 강하다.
  • Effectiveness 뒤의 직관은 각 수준이 이전 계층에서 생성된 추상화로부터 이익을 얻는다는 것이다.

Bidirectional RNNs 양방향 RNN

  • 양방향 RNN은 두개의 독립적인 RNN을 연결한다.
  • Forward RNN은 시작부터 현재 시간까지 입력을 처리한다.
  • Reverse RNN은 입력을 종료 시간에서 현재 시간으로 처리한다.
  • Forward와 Backward 표현을 합친다.
  • 이러한 방식으로 각 시점에 대해 특정 입력 시퀀스에 대한 왼쪽 및 오른쪽 컨텍스트를 모두 캡쳐한다.

 

저작자표시 (새창열림)

'AI Master Degree > Natural Language Processing' 카테고리의 다른 글

Transformers 란? 트랜스포머란?  (0) 2022.10.20
Long Shorter-Term Memory 네트워크란? LSTM이란?  (0) 2022.10.13
Word2Vec 이란?  (0) 2022.10.10
Logistic Regression 이란?  (0) 2022.10.10
Model Evaluation란? 모델 평가란?  (0) 2022.10.10
    'AI Master Degree/Natural Language Processing' 카테고리의 다른 글
    • Transformers 란? 트랜스포머란?
    • Long Shorter-Term Memory 네트워크란? LSTM이란?
    • Word2Vec 이란?
    • Logistic Regression 이란?
    saurus2
    saurus2
    Simple is Best

    티스토리툴바