CS231n 8

[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 이 얼마나 데이터를 잘 ..

[CS231N] Image Classification pipeline

cs231n의 강의 chapter2에 대한 내용을 요약, 정리할 것이다. 이 장에서는 image classification이 어떤 것인지에 대해서 알아보고, 어려운 점이 생기는 이유와 K-NN기반, Linear기반 이미지 분류에 대해서 다룰 것이다. 이미지는 RGB 3층의 구조를 가지고 있다고 보면된다. ( 3차원의 array ) [ 0, 255 ] 값의 integer 형태를 가지고 있다. 일반적으로 구조적 데이터나 비 구조적 데이터를 input 값으로 가진 후 classification을 하면 class 1 or class 2 와 같은 output 형태를 가졌는데, input 값이 구조적, 비 구조적 데이터가 아닌 image를 input 으로 넣으면 cat or dog 형태로 출력이 되는 것이다. Ch..

[CS231N] INTROTUCTION

이 파트에서는 cs231n의 자료를 가지고 소개를 해볼 예정이다. cs231n에는 deep learning 을 이용하여 vision 분야에 접근하는 내용을 다루고 있다. visual recognition에는 image, 3D modeling, Grouping, segmentation 의 내용이 있지만 CS231n에서는 image classification에 중점을 두고 강의를 진행한다. 이렇게 이미지를 Local한 지역에 물체를 탐지하는 것을 Object Detection 이라고 하며, 그런 Object가 무엇인지 어떤 행동을 취하는지 Caption을 달아주는 것을 image Captioning 이라고 한다. 이 강의는 image에 대해 상세하게 다룰 예정이다. Vision 분야는 이미지를 탐지하고 분석..

반응형