본문 바로가기
Deep Learning/CNN

CNN 특징 세세한 부분

by 꿈꾸는 띵땅근 2021. 9. 22.

1. Stride 적용 (해상도 줄이기)

- Stride는 입력 영상의 크기가 큰 경우, 연산량을 줄이기 위한 목적으로 입력단과 가까운 쪽에서만 적용을 한다. 

((Stride==1) + pooling)   vs   stride 3,4,5, ...

- stride==1이면 경계가 아닌 모든 입력 영상에 대해 convolution 연산을 수행하고, pooling을 하면서 값을 선택적으로 고를 수가 있지만, stride를 크게 하면 그런 선택의 기회가 사라진다. 그래서 통상적으로는 stride 1을 하면서 pooling을 통해 적절한 sub-sampling 과정을 거치는 것이 결과가 좋다. 

- 그러나 AlexNet에서는 연산량을 줄이기 위해 stride를 크게 했다. (그래픽카드가 그때는 구졋다.. 심지어 2개를 썼다)


2. Gradient Vanishing 문제를 해결하기 위해 한 노력들

1) GoogLeNet : Auxiliary classifier

2) ReLU

3) cross entropy : MSE와 sigmoid를 같이 사용하면, 편미분시에, sigmoid가 미분되는데, cross entropy는 그렇지 않다.

4) 배치 정규화(Batch Normalization)

 

 

 

3. CNN Overview

- MLP를 사용하여 이미지 분류작업을 하게되면, 이미지 내에서 물체의 위치가 거의 비슷할 때만 구분이 가능해진다. 하지만, cnn에서는 kernel을 사용하여 동일한 weight를 이미지 전체에 적용시켜 특징을 추출함으로써, 물체가 이미지 어디에 있든, 그것을 마지막 fully connected layer에서 구분지을 수 있게 된다. 

- CNN은 feature extraction - subsampling - mlp(classification)과정을 거치면서 이미지를 분류할 수 있게 된다. 

- 1-2-3 과정이라 하면, 1,2를 반복하면서 좀더 전역적인(global) 특징을 추출하게 되고, 그걸 mlp로 보내서 classifying 하게 한다. 

- 2 과정에서는 보통 max pooling을 진행하는데, 신경학적인 접근법으로, 이미지 사이즈를 줄여줌과 동시에, 가장 강력한 신호를 보내는 녀석을 골라줌으로써, 큰 feature를 추출하는 역할을 한다. 강한 신호를 골라내면, topology(이미지 회전, scale 변화, shift 등) 에 강인한 인식 능력을 갖게된다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Deep Learning > CNN' 카테고리의 다른 글

[Fast RCNN]  (0) 2021.09.23
[SPPNet] Spatial Pyramid Pooling (대충봄)  (0) 2021.09.22
1x1 convolution  (0) 2021.09.22
QnA  (0) 2021.09.22
Keywords  (0) 2021.09.19

댓글