1) pytorch 공부 (7시 ~ 9시)
pytorch 기초 깃허브 코드
2) CNN 강의 학습 (AM 9시 ~ 12시,PM 3시반 ~ 4시반)
3) git 특강 (PM 1시 ~ 3시반)
4) 피어세션 (4시반 ~ 6시)
이산형
연속형
2D image convolution
- 입력데이터의 채널 수 = 커널의 채널 수
ResNet은 다음과 같은 깊이가 깊어졌을 때, 생기는 학습이 안되는 문제를 해결한 모델이다.
20-layer
와 56-layer
로 테스트 해본 결과 gradient vanishing/exploding
문제로 56-layer
가 더 나쁜 성능을 보였고, 무조건 깊게 만드는 것보다 다른 방법을 생각하도록 만들었다.Residual block
Batch normalization after convolutions
Bottleneck architecture
bottle neck design
이 적용되었다.Semantic Segmentation은 다음처럼 이미지에 있는 모든 픽셀에 대해 예측을 하게 된다.
특히 자율주행에 주로 활용된다.
Fully Convolutional Network(FCN)
- 기존의 cnn 모델 뒤쪽에 있는 FC(Fully Connected) layer를 convolution layer로 대체한 것이다.
- FC layer의 경우 입력의 모든 차원을 출력의 모든 차원과 연결되있으므로 입력을 더 크게 만들면 더 많은 가중치가 필요하게 된다. 따라서 고정된 입력 크기를 가질 수 밖에 없다.
- 또한, 각 이미지별로 Flatten과정을 거치기 때문에 이미지의 공간적 정보가 소실된다.
- convolutional layer는 각 채널의 이미지 위치마다 flatten하여 얻는 벡터들을 fully-connected 하게 되므로 공간적 정보가 소실되는 문제를 해결할 수 있다.
- 그래서 convolutional layer는 입력사이즈에 independent하기 때문에 입력 사이즈의 제한을 받지 않고, 공간 정보를 보존할 수 있게 되는 이점이 있다.
Deconvolution
- Convolutionalization을 통해 얻은 heatmap은 하나의 클래스를 대표하는 대략적인 정보이다. 하지만 우리의 목적은 dense prediction이기 때문에 이를 dense map으로 복원하는 deconvolution이 필요하다.
R-CNN
- R-CNN은 이미안에 있는 object의 bounding box를 detection하고 classification을 해주는 모델이다. 다음의 과정을 거친다.
- 인풋 이미지를 받는다.
- Selective Search를 이용하여 약 2000개의 region proposal을 추출한다.
- AlexNet을 활용하여 각 proposal의 feature를 계산한다.
- SVM을 활용하여 object를 분류한다.
SPPNet
- R-CNN은 약 2000개의 region proposal을 각각 CNN에 넣기 때문에 2000번의 CNN 연산이 소요된다는 문제점이 있다.
- SPPNet은 입력 이미지에 대해 CNN 연산을 먼저 적용한 후 feature map에 기반한 region proposal 과정을 거치기 때문에, 1번의 CNN 연산 과정을 거친다.
Fast R-CNN
- Fast R-CNN으 ㅣ수행과정은 다음과 같다.
- R-CNN에서와 마찬가지로 Selective Search를 통해 RoI를 찾는다.
- 전체 이미지를 CNN에 통과시켜 feature map을 추출한다.
- RoI를 feature map크기에 맞춰서 projection시키고 RoI Pooling을 진행하여 고정된 크기의 feature vector를 얻는다.
- feature vector는 FC layer를 통과한 뒤, 두 브랜치로 나뉘게 된다.
- 하나는 softmax를 통과하여 RoI에 대해 object classification을 한다.
- 하나는 bounding box regression을 통해 box의 위치를 조정한다.
Faster R-CNN
- Fast R-CNN의 확장 모델으로 region proposal 과정 또한 학습시키는 RPN(Region Proposal Network)를 제안하였다.
- RPN이란 CNN의 출력 feature map위에
NxN
window를 입력으로 받고 pre-defined sizes를 바탕으로 각 sliding window의 위치마다reference box
k개를 출력하도록 설계하여 region proposal을 업데이트할 수 있도록 만든 것이다.
YOLO
- 높은 fps 성능을 구현하기 위해서 만들어진 모델이다.
- YOLO는 localization과 classification을 동시에 진행하면서 fps를 높였다.
- 다음은 YOLO의 진행 과정이다.
- 이미지에
SxS
grid를 생성한다.- 각 grid 셀마다 각각 Classification과 Localization을 적용한다.