CS231n Lecture 1. Introduction to Convolutional Neural Networks for Visual Recognition
Introduction
Computer Vision
이 강의는 Computer Vision에 관한 것인데, Computer Vision은 the study of the visual data이다. 웹 상의 많은 양의 데이터는 사실 Visual Data이다. 그래서 이런 데이터들을 잘 활용하는 것은 매우 중요하다. 하지만 그런 Visual Data에 큰 문제점이 있는데, 이해하기 어렵다는 점이다. 그래서 인터넷 상의 Dark Matter라고도 불려진다.
This course
- Neural Network (aka “deep learning”) class on image classification
- 특히 Convolution Neural Network와 다양한 인식 문제에 대해 CNN의 적용에 중점을 맞춤
A brief history of computer vision
Computer Vision과 관련된 것이고 그 역사와 existing work에 관한 context를 이해하는 것이 매우 중요하다.
Biological Vision
540 million years ago, the fisrt animals developed eyes. 그로 인해 빠르게 종의 수가 늘고 동물들의 진화가 급속도로 진행되었다.
Human Vision
카메라
- the early eyes that anumals developed와 비슷.
Computer Vision
“visual processing mechanism”를 찾아내려 한다. 그리고 찾아낸 것이 Visual Processing은 Visual World의 Simple Structure로 부터 시작한다는 것이다. Vision 문제를 아직 풀지 못했지만, AI 분야에서 정말 빠르게 성장하고 있는 분야임에는 틀림없다.
David Marr
David Marr는 MIT의 Vision Scientist이다. 그가 낸 책에서 말하는 Thought Process 는 다음과 같다.
Input Image에서 3-D Model Representation으로 가기 위해 우리는 먼저 Primal Sketch를 구성해야 한다. 그것은 Edge를 먼저 추출해내는 일이다. 그 다음에 2와 1/2 - D 스케치를 한다. 이것은 the depth information, the layers, or the discontinuities of the visual scene 등을 추출해내는 작업이다. 그리고 만들어낸 정보들을 모두 모아 3d model을 만들어낸다. 아래 사진 참고
Generalized Cylinder와 Pictorial Structure
옛날에 컴퓨터는 매우 느리고 PC조차 주위에 없을 때에도 represent objects를 인식하기 위한 노력이 있었는데, Stanford와 SRI의 두 그룹의 과학자들이 제안한 비슷한 아이디어가 있었다. Generalized Cylinder와 Pictorial Structure이다. 기본적인 개념은 모든 오브젝트들을 간단한 기하학적인 primitives들로 구성한다는 것이다.
Image Segmentation
Graph Theory algorithm를 이용한 Image Segmentation
Pascal Visual Object Challenge
Early 2000s의 주목할만한 결과 중 하나. object recognition. 가장 영향이 큰 benchmark data set 중 하나가 Pascal visual object challenge이다. train, airplane, cows, bottles 같은 20개의 오브젝트 카테고리를 가진다.
밑의 사진의 오른쪽의 그래프를 보면 알겠지만, 정확도는 크게 올라가고 있다.
ImageNET
22k Categories and 14M images.
많은 이미지들을 다운로드해서 Amazon Mechanical Turk platform을 이용해서 sort, clean, label을 함.
그 후에 Image Classification Challenge를 한다. 결과는 아래와 같다.
맨 끝의 사람의 결과는 학생들이 컴퓨터처럼 이 챌린지에 참여한 결과라고 한다.
여기 결과에서 2012년을 주목해야 하는데, 2012년에 급속도로 에러발생률이 떨어지게 된다. 그 이유는 Convolutional Neural Network를 이용했기 때문이다. 이런 이유가 Convolutional Neural Network에 주목하는 이유이다.
CS231n Overview
- Image Classification Problem에 주목
- Object Detection도 하는데, 이건 이미지에 네모난 박스를 쳐서 뭐 사람이 여기있고 자전거가 여기있고 하는 등의 작업이다.
- Image Captioning도 한다.
-
CNN이 object recognition에 중요한 도구라고 한다.
- ImageNET에서 Microsoft Research Asia가 2015년에 152개의 layers를 쌓은 Neural Network를 구성헀다고 한다.
딥 러닝이 최근 갑자기 많이 쓰이게 된 이유는 컴퓨팅 속도가 매우 빨라졌기 때문이라고 한다. 그리고 이런 방법은 많은 양의 데이터가 필요한데, 데이터셋이 매우 방대해졌기 때문에 최근 몇년 사이에 이렇게 급속도의 발전을 이루었다고 한다.
+ 컴퓨터 비전이 어려운 문제임을 알려주는 사진
오바마는 보통 장난을 잘 치지 않을 것이라 예상되는 존경을 받는 미국의 대통령이였고, 그런 배경이 오바마 또한 그런 장난을 잘 치지 않을 것이라 예상되게 한다. 하지만 이 사진에서 오바마는 체중계에 몰래 발을 올리며 웃음을 자아내는 행동을 하고 있다. 강의 영상에 이 사진이 나왔는데 이 사진을 보면서 이 한장의 이미지를 인식하면서 어떻게 그런 정보들을 잘 모아서 보여줄 수 있을까 생각을 하게 한다.
이 강의를 계속 듣는데, 미리 요구되는 지식은 다음과 같다고 한다.
- Python이 능숙한지, high-level familiarity with C/C++인지 (정확한 번역이 뭔지 모르겠다. C/C++ 코드를 읽을 수 있을 정도를 요구하는 것 같다.)
- College Calculus(미적분학을 뜻하는 것 같다), Linear Algebra(선형대수학인 것 같다)
- Equivalent Knowledge of CS229 (Machine Learning) (Machine Learning에 관해 선행지식을 요구하는 것 같다. 하지만 귀찮아서 패스. cost function이나 optimization with gradient descent 정도는 공부해놔야겠다.)