태그 보관물: 김태훈

역전파, 직접 짜봐야 하나요?

OpenAI의 안드레이 카패시(Andrej Karpathy)가 얼마전 ‘Yes you should understood backprop‘란 글을 미디엄 사이트에 올렸습니다. 안드레이는 OpenAI에 오기 전에 스탠포드 대학에서 PhD 학생으로 근무했고 CS231n 강의를 진행했습니다. 이 강의는 영상과 강의 노트 모두 인터넷에 공개되어 있어 인공지능에 관심있는 연구자나 학생들에게 인기가 많습니다. 그런데 학생들이 가끔 CS231n 의 숙제에 불평을 하는 경우가 있는 모양입니다. 텐서플로우 같은 라이브러리가 역전파 알고리즘을 모두 자동으로 처리해 주는 데 굳이 numpy 로 정방향(forward pass), 역방향(backward pass, backpropagation) 코드를 직접 구현하는 숙제를 할 필요가 있느냐고 말이죠.

역전파 코드를 직접 만들어 봐야할 이유가 지적 호기심이나 더 나은 역전파 알고리즘을 만들기 위해서가 아니라 역전파를 알아야 뉴럴 네트워크를 만들 때 오류를 범하지 않고 디버깅을 하는데 도움을 주기 때문입니다. 안드레이는 역전파가 불완전한 추상화(leaky abstraction)라고 말하고 있습니다. 불완전한 추상화 또는 누수 추상화는 조엘 스폴스키의 블로그를 통해서 알려졌었습니다. 한마디로 구멍이 많다는거죠!

계속 읽기

PyCon 2016’s TensorFlow 자료

파이콘 2016에서 발표된 텐서플로우 관련 자료를 정리해 보았습니다.

  • Creating AI chat bot with Python 3 and Tensorflow [slide] [pdf]
  • Deep Learning with Python & TensorFlow [pdf]
  • Introduction to deep learning for machine vision tasks using Keras [pdf]
  • 지적 대화를 위한 깊고 넓은 딥러닝 (Feat. TensorFlow) [slide]

특히 ‘지적 대화를 위한 깊고 넓은 딥러닝’을 발표한 김태훈님이 관련 깃허브 레파지토리를 일목요연하게 정리해서 페이스북에 올려 주셨습니다.

  1. 이미지(사람의 얼굴 사진)을 이해하고 스스로 만드는 모델
    http://carpedm20.github.io/faces/
    https://github.com/carpedm20/DCGAN-tensorflow
  2. 픽셀을 하나씩 예측하며 이미지를 만드는 모델
    https://github.com/carpedm20/pixel-rnn-tensorflow
  3. Atari 게임을 화면의 픽셀만 보고 배우는 모델
    https://github.com/devsisters/DQN-tensorflow/
  4. 이미지 버전의 ‘왕 – 남자 + 여자 = 여왕’
    https://github.com/carpedm20/visual-analogy-tensorflow
  5. 뉴럴 네트워크로 만든 튜링 머신
    https://github.com/carpedm20/NTM-tensorflow
  6. 강화 학습 모델들
    https://github.com/carpedm20/deep-rl-tensorflow/
  7. Question Answering, Language Model
    https://github.com/carpedm20/MemN2N-tensorflow
  8. Character-level Language Models
    https://github.com/carpedm20/lstm-char-cnn-tensorflow
  9. Teaching Machines to Read and Comprehend
    https://github.com/carpedm20/attentive-reader-tensorflow
  10. Neural Variational Inference for Text Processing
    https://github.com/carpedm20/variational-text-tensorflow
  11. Text-based Games using Deep Reinforcement Learning
    https://github.com/carpedm20/text-based-game-rl-tensorflow
  12. Continuous Deep Q-Learning with Normalized Advantage Functions
    https://github.com/carpedm20/NAF-tensorflow
  13. Asynchronous Methods for Deep Reinforcement Learning
    https://github.com/devsisters/async-rl-tensorflow
  14. Neural Abstractive Summarization
    https://github.com/carpedm20/neural-summary-tensorflow