본문으로 바로가기

CNN(Convolutional Neural Network); 합성곱 신경망

category AI/Deep Learning 2021. 3. 15. 22:16

CNN

1) 개요

    - 심층 합성곱 신경망은 각 층별로 저수준 특성을 연결하여 고수준 특성을 만들고 이를 이용해 특성 계층 구성

    - Fully-connected network는 3차원 (RGB) 이미지 텐서를 학습시킬 때, 1열로 벡터화 시켜야 하는데 이는 이미지의

      특성을 추출하는데 어려움이 큼

 

2) key idea

    - 희소 연결 : feature map에 있는 하나의 원소는 작은 픽셀 패치 하나에만 연결

    - 파라미터 공유 : 동일한 가중치가 입력 이미지의 모든 patch에 사용됨.

 

3) CNN architecture

    - Iput -> CONV layer -> Activation function (mostly, ReLU) -> POOL layer -> Fully-connected layer

    - conv layer + pooling layer + fully-connected layer = CNN

 

CONV Layer (합성곱 계층)

    - 3차원의 컬러 이미지를 filter를 활용해 특징을 추출해낸다.

 

1) filter

    - 하나의 conv layer 당 input image의 채널 개수만큼 필터가 존재 (32 x 32 x 3 -> n x n x 3 filter)

    - 각 채널에 대해 필터를 적용하여 conv layer의 출력 이미지가 생성

    - filter의 개수만큼 conv layer를 통과한 activation maps의 depth가 결정됨

 

2) stride

    - 설정한 stride 값 만큼 필터가 image의 픽셀을 계산하는 간격을 설정

    - stride 값이 클수록 ouput의 가로 x 세로 크기는 줄어든다.

    - 효율적인 특성 추출을 위해 stride를 사용 -> 매우 세세하게 적용하기 보다 전체적인 특징을 파악하기 위해 사용

우리가 사진이나 그림을 볼 때, 한 부분씩 돋보기를 써서 어떤 그림인지 파악하는 것보다 전체적인 모습을 훑는 것과 비슷한 개념

 

3) zero-padding

    - conv layer를 통과할 수록 volume은 작아지게 되고 이미지 가장 자리의 특성들이 사라지는 것을 방지

 

4) calculate volume size

 

Dilated convolutions


- 필터 내부에 zero padding을 추가해 전체적인 특징을 잡아내기 위해 사용 (without pooling)
- 기존의 pooling은 정보 손실이 일어날 수 있는데 이를 해결하기 위함
- pooling을 수행하지 않아 spatial 손실이 적고 대부분의 weight가 0이어서 연산 효율이 좋다.
- 공간적 특징을 유지하는 특성으로 segmentation에서 많이 사용된다.

출처 : https://3months.tistory.com/213

 

 

POOL layer

    - spatial size를 줄임으로써 parameter 개수를 줄일 수 있어 연산 속도와 과적합 방지에 도움

    - 이미지의 인접 pixel 간의 유사도가 매우 높아 local에서 대표값을 선정한다는 아이디어를 담은 것이다.

    - depth와 무관하게 적용됨

    - 일반적으로 max-pooling 사용

    - 이미지 픽셀들의 이동, 회전 등에 의한 출력값의 변동성을 막을 수 있다.


출처

cs231n.stanford.edu/slides/2020/lecture_5.pdf

cs231n.github.io/convolutional-networks/

untitledtblog.tistory.com/150?category=823331

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

Graph Convolutional Network (GCN)  (0) 2021.04.12
RNN, LSTM, GRU  (0) 2021.04.02
Softmax Classifier  (0) 2021.03.09
Batch Normalization  (0) 2021.03.05
Dropout  (0) 2021.03.04