딥모닝 3주차. PR12-012~016


  • PR12 동영상을 하루에 1개씩 보는 “딥모닝” 스터디에서 본 영상을 정리하는 글입니다
  • PR-012 : Faster R-CNN
  • PR-013 : Domain Adversarial Training of Neural Network
  • PR-014 : On Human Motion Prediction using RNNs
  • PR-016 : Yon Only Look Once(YOLO): Unified, Real-Time Object Detection

PR-012 : Faster R-CNN

PR-013 : Domain Adversarial Training of Neural Network

  • Source 데이터를 받고 실제 Test 데이터가 들어왔을 때 잘 classification했으면 좋겠음
    • 문제를 단순히 봐서 라벨이 2개밖에 없는 binary classification 문제로 설명
  • empirical error를 정의
  • 모든 데이터의 true error가 우리가 가진 sample 데이터의 empirical error + 모델의 복잡도로 upper bound된다고 증명
    • empirical 에러를 줄일 때, 모든 unseen 데이터에 대해 bound가 성립
    • Occam razor principle
  • 일반적인 supervised learning의 setting : Training과 test의 domain이 같다고 가정
  • 예측할 때 새로운 domain에 적용하는 경우가 많음
    • high quality - low quality
    • posed - in the wild
  • Domain Adaptation
    • 소스 도메인에만 label
    • 새로 올 target 도메인은 다를 수 있음

3 main class

  • 샘플 데이터와 타겟 데이터들의 분포가 bias가 있으면 bias를 조절해서 서로 맞춤
  • feature 도메인을 학습 잘 해서, new representation space를 찾음
    • 여기를 주로 파악할 예정
  • Ajustement/Iterative 방법
    • pseudo-labeld 정보로 통합

예시

  • 도메인이 다른 곳에서 사용
  • 공통적으로 잘 작동할 feature를 찾기

  • 1 step

Error

  • 기존 전략 : 최대한 적은 파라미터로 training error가 최소인 모델을 찾자
  • DANN에선 불가능

PR-014: On Human Motion Prediction using RNNs

  • 선정 이유
    • RNN을 사용한 Human Motion을 공부하기 위해

Motion forecasting

  • 쉽게 말하면 Generation
    • Given을 주고 예측
    • 풀 스윙이 있으면 그 다음 모델이 어떤 모습일지?
    • Senetence completion과 유사한 듯
      • a high-dimensional and nonlinear version of sentence completion

Background

  • RNN
    • 뉴럴넷에서 히든 뉴런에 recurrent한 뉴런이 존재
    • Gradient vanishing / exploding 문제 존재
  • LSTM/GRU
    • 게이트 유닛
    • 그 전의 값을 pass할지 넘길지 등을 담당
    • 4배의 weight와 파라미터가 들어감
    • GRU : LSTM보다 계산이 간단한데 비슷한 성능
  • 다양하게 사용되는 RNN
    • one to one
    • one to many
    • many to one
    • many to many
    • many to many

간단한 접근

  • joint angle 데이터를 모두 LSTM에 적용
    • Recurrent Network Models for Human Dynamics 논문
    • ERD : Encoder-Recurrent-Decoder
    • gradually add noise
      • 발이 삐끗하면 새로운 지역이라 이상한 행동을 할텐데, 애초에 학습시 noise를 추가해 보정
      • 단, noise를 잘 넣어주는게 어려움
  • Structural-rnn : Deep learning on spatio-temporal graphs
    • 머리, 다리, 팔 패턴을 다르게 학습하자! (위 방법은 모든 것을 한번에 넣었음)
  • Hierarchical RNN

Motion Forecasting using RNN

  • (short term) given ground truth랑 예측된 것의 앵글 포인트를 에러 측정
  • (long term) 사람이 눈으로 봐서 그럴듯한지?
  • 기존 RNN은 long term에서 이상하게 되는 문제, short term은 50까지 학습했으면 51을 할 때 jump가 생김
  • Noise 스케쥴링
    • 테스트할 때 노출될 수 있는 에러를 미리 예측, 에러도 누적
    • 점점 노이즈도 누적
    • 일종의 curriculum learning
      • 쉬운 예제부터 어려운 예제까지
    • 이 논문에선 노이즈 스케쥴링 하지 않음(Residual에서 튀는 값들이 없어짐)
    • 더 심플한 모델 제안하고 모든 데이터를 넣었음

Proposed solution

  • Sequence to sequence 아키텍쳐
  • Residual 아키텍쳐
  • 마지막 프레임에 안 움직이는거랑 비교하면 어떨까? (신선한 아이디어)

결론


PR-015


PR-016 : Yon Only Look Once(YOLO): Unified, Real-Time Object Detection

  • 1번만 봄, 여태까지 나온 것을 다 합쳤다, 실시간이다
  • Faster RCNN에서 성능을 줄이더라도 속도를 늘리겠다!

Main Concept

  • Detection 문제를 regression 문제로 바꿈
  • 1번의 feed forward(이미지 전체를 한번 본다)
  • 다른 도메인에서도 잘 된다(General representation)

Object Detection as regression problem

  • 과거
    • window moving으로 점점 찾고, 합치는 방식
  • 기존
    • 한번에 찾고 끝내보자
    • Unified Detection
      • 이미지를 S x S 그리드로 나눔
      • grid cell, bounding box를 x,y,w,h로 표현
      • 물체가 많이 포함할 것 같은 곳이 더 찐함

Network Design

  • Inception v1
  • Modified GoogLeNet
  • 1x1 reduction layer

Training

  • Feature Extractor, Object Classifier로 구성
  • 1) ImageNet 1000개 데이터로 pretrain
  • 2) Network on Convolutional Feature Maps
  • 3) 7x7x30 텐서가 나옴
  • 그리드 셀

Loss Function

  • SSE(sum-squared-error)를 사용해 단순화

Limitation of YOLO


카일스쿨 유튜브 채널을 만들었습니다. 데이터 분석, 커리어에 대한 내용을 공유드릴 예정입니다.

PM을 위한 데이터 리터러시 강의를 만들었습니다. 문제 정의, 지표, 실험 설계, 문화 만들기, 로그 설계, 회고 등을 담은 강의입니다

이 글이 도움이 되셨거나 의견이 있으시면 댓글 남겨주셔요.

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza