본문 바로가기
Study/DL

CNN - 2편 (Bottleneck, ResNet,Dropout)

by 까망우동 2023. 6. 29.
반응형

Index

    1×1 filter, Bottleneck 구조

    • 1×1 filter는 receptive field에는 영향을 미치지 않지만 nonlineariry를 추가해주고, feature map의 개수를 늘리거나 줄일수 있는, 사실상은 weight sharing을 하는 FC layer 역할을 하는 구조이다. 
    • 최소한의 변경으로 feature map 개수를 바꾸고 싶을 때 유용하며, 아래 그림과 같이 앞서 다뤘던  작은 size의 filter를 여러층 쓰는것이 유리하다는 내용과 비슷한 개념이다. 
    • Bottleneck구조는 1×1 filter를 앞/뒤로 이용해 동일한 receptive field에 계산량은 줄이고, nonlinearity는 늘리는 방식 

     

    ResNet (Residual Network)

    • ResNet은 CNN의 layer가 깊어질수록 발생하는 vanishing gradient 문제를 해결하기 위해 Residual module 이라는 개념을 접목한 모델이다. 
    • Resiudal module은 오른쪽 그림과 같이 X' =  F(X) + X 로,  모듈안에 convolution을 거친 결과값 F(X) 와 convolution을 하기 전 원본 값 X (identity shortcut)을 더한값에 ReLU를 취한 값을 다음 모듈의 Input으로 반복하는 모델이다. 
    • 즉 주기적으로 conv 이전 원본값을 더해주면서 vanishing 문제를 해결하는 구조이고, 이 과정을 Identity mapping 이라고한다. 
    • 아래 그림은 VGG-19 모델과, 일반적인 CNN모델, ResNet을 비교해둔 그림인데, 가장 위에 있는 모델이 ResNet 이다. 그림에을 자세히 보면 ResNet은 ①Residual module을 반복해서 쌓는 구조이며, ② feature map size를 줄이기 위해 Maxpooling을 쓰는대신 주기적으로 stride=2 convolution을 한번씩 써주고 ③FC layer로 넘기기전에 최종 extract된 feature map을 flatten 시키는 대신 average pooling 하여 사용한다. 
    • ResNet의 layer가 깊어질 수록 1개의 residual 모듈안에 conv layer개수를 늘리고 bottleneck 구조를 사용한다.  

     

    Dropout in Convolution layer 

    1. Standard Dropout : pixel 단위로 랜덤하게 지우는방법. 보통 이미지들은 주변 픽셀끼리 비슷하기 때문에 이 방법은 dropout 효과가 전혀 없는 경우가 발생하곤 해버린다. 
    2. Spatial Dropout : feature map 단위로 dropout 
    3. Cutout Dropout : square mask 단위로 dropout
    4. Max-pooling Dropout : Max-pooling filter 자체에 dropout을 씌움 

     

    반응형

    'Study > DL' 카테고리의 다른 글

    RNN - 1편 (RNN구조, RNN의 Backpropagation)  (0) 2023.07.01
    CNN - 3편 (Up-sampling, U-Net)  (0) 2023.06.30
    CNN - 1편 (CNN의 구조)  (0) 2023.06.29
    Dropout 과 Batch Normalization  (0) 2023.06.29
    활성화함수(Activation function)와 Optimizer  (0) 2023.06.29

    댓글