CS231n 10강. Recurrent Neural Networks


Stanfoard CS231n 2017 10강을 요약한 글입니다. 정보 전달보다 자신을 위한 정리 목적이 강한 글입니다! :)
RNN과 LSTM을 이해해보자! 글과 Pytorch를 활용한 RNN 글을 함께 보면 좋을 것 같습니다!

Recurrent Neural Networks Intro

  • Process Sequences

  • RNN : handling variable sized sequence data that allow us to pretty naturally capture all of these different types of setups in our models
    • 시퀀스 길이에 관계없이 인풋과 아웃풋을 받아들일 수 있는 네트워크 구조며, 필요에 따라 다양하고 유연하게 구조를 만들 수 있음
  • 히든 노드가 방향을 가진 엣지로 연결되어 순환 구조를 이루는 인공신경망의 한 종류
  • fixed size input과 fixed size output을 가지는 몇 문제점이 있지만, RNN은 그래도 유용합니다
    • Watch the video
    • Sequential Processing of Non-Sequence Data
      • Classify images by taking a series of “glimpses”
      • glimpses : 언뜻 보다, 주어진 이미지의 주변부를 보고 판단
    • Generate images one piece at a time!

RNN

  • Notice : function과 parameter들은 모든 time step마다 동일하게 사용됩니다

  • W_{hh}는 previous hidden state에서 나오는 Weight Matrix
  • 활성 함수로 tanh를 사용한 이유는?

  • 왼쪽부터 순차적으로 진행

  • y_{t} : class scores

  • L_{t} : loss
  • L : sum of individual losses

  • final hidden state는 전체 sequence의 모든 context를 요약한 정보를 가지고 있습니다

  • Seq2Seq Model
  • Machine Translation
  • Many to one과 one to Many의 조합
  • Encoder + Decoder

Example : Character-level Language Model

  • 느린 속도를 극복하기 위해 배치별로 나눠서 진행

  • karpathy Code

Image Captioning

  • caption : variably length sequence
  • CNN에서 나온 것을 hidden layer의 초기값으로 설정

Image Captioning with Attention

  • 이미지의 특정 부분에 기반해 단어를 유추했다고 보여줌
  • Attention, RNN, LSTM에 대한 내용은 CS231에선 많이 다루고 있지 않습니다. CS224를 참고하면 좋습니다

Visual Question Answering

  • RNN과 Computer Vision의 조합은 Cool
  • RNN에선 2~3개의 layer를 쌓는 것이 일반적입니다

Vainilla RNN Gradient Flow

  • Vanilla RNN의 형태는 Exploding gradients/Vanishing gradients 문제를 가지고 있습니다
    • Exploding gradients의 경우 Gradient clipping을 사용
    • Gradient의 L2 norm이 기준 값을 초과할 때 (threshold/L2 norm)을 곱해주는 것

Long Short Term Memory (LSTM)

  • forget gate가 매번 달라지기 때문에 vanishing gradient 문제가 발생하지 않음

Other RNN Varinats

Summary

Reference


카일스쿨 유튜브 채널을 만들었습니다. 데이터 사이언스, 성장, 리더십, BigQuery 등을 이야기할 예정이니, 관심 있으시면 구독 부탁드립니다 :)

이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza