본문 바로가기

Deep Learning/cs231n Lecture

(15)
Lec 12. Visualizing and Understanding CNN 이번 lecture에서는 CNN이 이미지 관련 task를 처리할 때 그 내부에서는 어떤 일이 일어나는지에 대한 해석을 공부한다. First Layer Filter as an image 먼저, 가장 직관적으로 이해할 수 있는 첫 번째 convolution layer을 살펴본다. 첫 번째 conv. layer의 필터 dimension은 F*F*3이다. Depth는 항상 3인데, 왜냐하면 CNN의 input인 이미지의 depth가 R, G, B 채널에 의해 3이고, convolution 연산에서 input과 filter의 depth는 일치하기 때문이다. Depth가 3이기 때문에, 필터를 F*F 픽셀 크기의 RGB 이미지로 출력할 수 있고, 이는 유용한 해석을 제공한다. 위의 그림은 몇몇 유명한 CNN의 첫 ..
Lec 11-2. Object Detection: Region Proposal, R-CNN, Fast R-CNN, Faster R-CNN, YOLO Object Detection Computer vision 분야에서 neural network를 사용하는 application으로서 object detection을 살펴볼 것이다. Object detection이란 주어진 이미지에서 물체가 속한 영역을 box 표시하고, 물체가 어느 class에 속하는지를 분류하는 task를 말하는데, 하나의 이미지 내에 여러 개의 물체가 들어있을 수 있다는 점에서 이전 포스팅에서 다루었던 classification+localization 문제와는 다르다. 먼저, 지난 포스팅의 classification+localization 방식을 리뷰해보면, label score 벡터와 함께 bounding box의 좌표 값을 output으로 추가함으로써 regression 문제로 만..
Lec 11-1. Semantic Segmentation, Classification + Localization 지금까지 하나의 이미지를 정해진 class set 중 하나로 분류하는 image classification을 풀기 위해 CNN에 대한 여러 논의를 전개시켜왔다. Image classification 외에도 neural network를 활용하는 vision application은 다양한데, 이번 포스팅에서는 semantic segmentation, classification+localization의 두 가지 application에 대해 공부한다. Semantic Segmentation Semantic segmentaion이란, 아래와 같이 주어진 이미지의 각 픽셀이 어느 label에 속하는지를 모두 판단함으로써 이미지를 여러 class의 구역으로 분할하는 것이다. Image classification과 마..
Lec 10. Recurrent Neural Network: Structure, Computational Graph, Language Model, Image Captioning Recurrent Neural Network: Processing Sequential Data 이전 lecture들에서 Convolutional Neural Network(이하 CNN)에 대해서 공부하였는데, CNN은 이미지 데이터를 대상으로 하며 목표는 이 이미지를 finite set of class 중 하나로 labeling(또는 classifying)하는 것이었다. 이번 lecture에서는 다른 neural network 구조인 Recurrent Neural Network(이하 RNN)에 대해 공부한다. CNN이 이미지 데이터를 대상으로 한 application에 쓰인다면, RNN은 sequential data를 대상으로 한다. 그 예로는 하나의 이미지로부터 이를 설명하는 sequence of wo..
Lec 7-2. Regularization: L2 Regularization, Dropout, Data Augmentation Regularization: Make a Model Better for Unseen Data Optimization은 주어진 training 데이터셋에 대해 loss function을 최소화시키는 parameter들을 찾는 과정이다. 그러나, 실제 모델을 학습할 때 training 데이터셋에 대한 loss를 줄이는 것 뿐만 아니라, unseen data에 대한 loss와의 gap을 줄이는 것 역시 중요한 문제이다. 가지고 있는 training 데이터셋에 대해서 overfit 된 모델이라면, test time에 unseen data에 대해서는 좋은 performance를 낼 수 없고, 이것은 우리가 원하는 바가 아니다. Regularization은 모델이 training 데이터셋에 대해 overfit 되는..
Lec 7-1. More on Optimization: SGD with Momentum, Nesterov Momentum, AdaGrad, RMSProp, Adam Neural network 구조에서 주어진 training 데이터셋에 대해 loss function을 minimize하도록 하는 최적의 parameter 값들을 찾는 과정을 optimization이라고 한다. 이에 대한 가장 기본적인 방법으로서 gradient descent 방식을 공부하였다. Weight parameter들을 initialize하고, 현재 weight 값들에 대해 loss function의 gradient를 구해 그 방향으로 조금씩 이동하기를 반복하면 최적의 위치(weight parameter들이 span하는 공간 상의 위치)를 찾을 수 있다는 것이었다. 포스팅 링크: https://crm06217.tistory.com/18 또한 이 때 모든 training 데이터셋을 매 iterati..
Lec 6-2. Weight Initialization, Batch Normalization 이어서 weight parameter들을 어떻게 초기화할지(weight initialization)에 대한 방법들과 별도의 layer를 통해 이를 해결하는 batch normalization을 공부한다. Weight Initialization How about all-zero initialization? 가장 먼저 할 수 있는 생각은 모두 0으로 초기화하는 것이다. 이 때의 문제는 뉴런들을 통과한 output이 모두 같다는 것이다. 여러 개의 layer가 중첩되어 있을 때, 하나의 뉴런의 output은 다음 뉴런의 input이 된다는 점을 생각해보면, 뉴런들의 input도 모두 같아지게 된다. 뉴런의 input은 곧 이 뉴런 weight들의 local gradient에 해당하고, local gradien..
Lec 6-1. Activation Functions, Data Preprocessing Lecture 6, 7에 걸쳐서 neural network를 training시키는 과정에 있어 중요한 요소들을 다룬다. 이번 포스팅에서는 convolution/fc layer 이후에 수행하게 되는 activation/nonlinearity function의 종류와 특징, training data에 대한 preprocessing에 대해 정리해본다. Activation Functions General Scheme of Activation Functions with Neuron Neuron을 통과한 후 activation function을 통과하는 구조를 일반적으로 아래 그림과 같이 표현할 수 있다. 파란색, 빨간색 path는 각각 forward path, backpropagation를 나타낸다. ReLU는 ..