Deep Learning/CS231N 12

[CS231N] Object Detection의 종류 (R-CNN, SPPnet, Fast R-CNN, Faster R-CNN, YOLO까지)

Contents Detection Object detection은 Localization과 비교해서 다양한 object들에 class분류와 위치를 파악해야되기 때문에 쉽지않은 문제다. object detection을 수행하기 위해서는 객체의 Region proposals을 찾아주는 작업이 필요하다. Region proposals을 찾아주기 위한 방법으로 Selective Search가 있다. Selective Search는 객체인식을 위한 후보 영역을 알아낼 수 있는 방법을 제공하는 것을 목표로 한다. Selective Search는 Exhaustive search(모든 객체의 위치를 찾아내는 것)와 Segmentation 방식을 결합하여 보다 뛰어난 후보 영역을 선택하는 것이다. Segmentation..

[CS231N] spatial localization and object detection

Localization - Localization as regression - Overfeat 본 강의에서는 위 내용들을 다루어볼 것이다. Computer Vision Tasks Computer vision Tasks는 크게 4가지로 나눌 수 있다. 이미지상의 하나의 물체에 대해서 어떤 클래스에 속하는지 찾아주는 것을 Classification, classification 뿐만 아니라 물체의 위치정보를 바운딩 박스를 이용해 나타내주는 것을 Localization, 한 이미지 내에서 다양한 물체들의 클래스와 위치를 찾아주는 것을 Object Detection, 이미지 상에서 해당 물체와 배경을 인식해 물체의 영역만을 찾아주는 것을 Instance Segmentation이라고 부른다. Classificati..

[CS231N] CNN 기반 모델의 종류(LeNet, AlexNet, ZFNet, VVGNet, GoogleNet, ResNet, DenseNet)

Contents ImageNet에서 유명한 CNN model 을 설명하는 파트다. LeNet - 5 LeNet - 5 는 LeNet 모델 중 가장 최근 모델이며 Yann LeCun 연구실에서 1990년대에 만들어졌다. 우편번호나 숫자를 인식하는데 활용되었다. LeNet구조가 지금의 CNN과 큰 다른점이 없다는 것이 핵심이다. Convolution과 subsampling이 쓰이고 feature map을 일자로 펼치는 fully-connection으로 연결을 했다. AlexNet AlexNet은 ILSVRC 2012 에서 우승한 모델이고, 이 때 당시 AlexNet 모델에 인해 딥러닝에 혁명이 일었다고 볼 수 있다. 왜냐하면 AlexNet이 CNN 구조로 과거의 top 5 error를 크게 줄였기 때문이다...

[CS231N] Stride, Padding, Pooling layer 란?

Contents CNN은 여러개의 layer들이 차곡차곡 쌓여있는 구조다. 여러 layer들 중에서 Convolution layer에 대해서 먼저 알아보자. Convolution layer 32(width)x32(height)x3(depth) image를 가진다. 아래 그림에서 보이는 filter는 parameter를 의미한다고 생각하면 된다. 즉 weight를 나타낸다. depth는 내가 받는 input과 동일해야한다. 동일해야만 filter가 image를 convolve할 수 있다. convolve하는 과정에서 하나의 scalar 값으로 mapping을 한다. 어떠한 image를 convolve하게 되면 똑같이 tensor형태가 나오게 되고, 선형 연산을 통해 나온 scalar 에 activation..

[CS231N] Convolution Neural Networks(CNN)

왜 image Neural Networks를 CNN으로 다루어야할까? CNN를 써야하는지에 대해서 살펴보기 전에 기존의 ANN가 image data에 적용할 때 어떠한 문제점이 있었는지에 대해서 먼저 알아보자. 아래의 이미지는 112 X 150 을 가지고 RGB 채널에서 3개의 채널을 가지고 있다. ( 112 X 150 X 3 ) 이런 image를 python이나 R에서 다룰려면 (112, 115, 3) 형태의 tensor를 다루게 된다. tensor를 ANN에 적용하려면 tensor를 vector의 형태로 flatten해주어야 되는 과정이 필요하다.( ANN은 tensor를 input 으로 받지 않기 때문에 ) 그런데 image를 보면 image내에서 지엽적인 부분이 분명히 있을 수 있다. 그 부분을 ..

[CS231N] Optimization의 종류 - SGD부터 Adam까지

Contents Mini-batch SGD 1. Sample a batch of data 2. Forward prop it through the graph, get loss 3. Backprop to calculate the gradients 4. Update the parameters using the gradient 이런 경우에는 몇천만개의 데이터들을 learning rate($\eta$) 하나로 고정을 시키고 최적화를 시키는 것이 과연 좋은 것인가? 라는 물음을 할 수 있다. 아래와 같은 SGD의 약점은 시작을 해서 flatten 지점에서 넘어가지 못하고 local minimum에 빠져버린다. Momentum GD와 Momentum의 다른점은 어떤 것인가? gradient descent의 경우 $ ..

[CS231N] 활성화 함수(Activation Fucntion)의 종류

Training Neural Network Transfer learning을 진행할 때 고려할 점. 1) Pre-train data와의 이질성 2) Finetuning할 데이터의 양 3) 분석에 할당된 시간 4) 가용한 hardware ... 하나의 layer에서 activation function으로 들어가게 되는데 layer의 값은 $\Sigma w_{i}x_{i} + b$로 선형조합으로 나타낼 수 있다. 그 선형조합을 비선형조합의 activation function으로 넣게 된다. 만약 activation function 자체가 linear라고 생각해보면 layer를 stacking 하는 것 자체가 의미가 없어진다. 왜냐하면 linear function을 activate function으로 사용하게..

[CS231N] Neural Network Back-propagation

Backpropagation 이 왜 Neaural Network에서 중요할까? Backpropagation 은 어떤 함수의 gradient를 계산하는 방식이다. chain rule를 recursively( 재귀적으로 ) 적용을 하고, 이러한 계산 방식이 computational 하다고 할 수 있다. backpropagation을 하는 가장 주된 목적은 parameter를 updata하기 위함이다. parameter를 update 하면서 가장 최적의 parameter를 찾는 것이 궁극적인 목적이기 때문이다. 부수적으로는 학습한 NN을 시각화하고 해석하기 위함이다. NN 이라는 것은 하나의 함수라고 지칭할 수 있다. 만약 SVM을 이라면 convex optimization을 활용하여 단 한 번의 optimu..

[CS231N] Loss function & Optimization (2)

앞 내용에 이어서 이번에는 Loss function 중에서 softmax를 다뤄볼 것이다. 각 score를 확률값으로 바라볼 수 있을 것이다. $P(Y\ =\ k\ |X\ =\ x_{i})$ 는 $X=x_{i}$일 때 $Y = k$로 k라는 class에 속할 확률값을 찾는 것이며, 이러한 값이 Likelihood가 된다. $\Sigma_{j}e^{sj}$ = 모든 score의 합 $e^{sk}$ 는 k class 의 score Maximize loglikelihood는 가장 최대가 되는 값을 찾는 것이기 때문에 그 값에 대해 -1 을 곱해줘서 최솟값을 찾는 loss function 으로 만들 수 있다. 그리고 MLE는 각 확률값을 곱하여 도출하는데 이 부분에서 log를 취해주면 곱을 덧셈으로 바꿀 수 있..

[CS231N] Loss function & Optimization (1)

image를 분류하는 과정에서 여러가지 문제점이 발생할 수 있다. 1. Camera pose : 카메라의 위치에 따라서 image의 값들이 달라질 수 있다. 2. illumination : 조명에 의해 색이 바뀌는 문제가 발생할 수 있다. 3. Deformation : 원래 형상이 아닌 다른 형상으로 image가 생성될 수 있다. 4. Occlusion : 일부가 없어져 보일 수 있다. 5. Background clutter : 배경과 분류하고자 하는 image가 비슷하여 구분하기가 어려울 수 있다. 6. intraclass variation : 같은 종류의 image라도 색상, 모양 등이 다름에서 문제가 발생할 수 있다. 이번 파트에서는 우리가 작성한 score function 이 얼마나 데이터를 잘 ..

반응형