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
'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 |