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위에
NxNwindow를 입력으로 받고 pre-defined sizes를 바탕으로 각 sliding window의 위치마다reference boxk개를 출력하도록 설계하여 region proposal을 업데이트할 수 있도록 만든 것이다.
YOLO
- 높은 fps 성능을 구현하기 위해서 만들어진 모델이다.
- YOLO는 localization과 classification을 동시에 진행하면서 fps를 높였다.
- 다음은 YOLO의 진행 과정이다.
- 이미지에
SxSgrid를 생성한다.- 각 grid 셀마다 각각 Classification과 Localization을 적용한다.