CNN 모델의 Convolution Layer 정리

seono·2022년 12월 8일
0
post-thumbnail

Convolution Layer

1. 개념

CNN의 핵심적인 요소 중 하나로 입력 데이터의 특징을 추출하여 특징의 패턴을 파악하는 층

합성곱층의 뉴런은 수용 영역(receptive field)의 픽셀에 연결하여 이미지의 공간 정보를 보유함

→ 이미지의 공간 정보를 유지하며 특징을 인식함

입력 데이터를 필터가 순회하며 불필요한 정보를 걸러내고 중요한 특징만 추출해 만든 출력(행렬)

CNN의 특징 추출 영역에 해당

특징 추출 영역 : Convolution Layer와 Pooling Layer를 여러 겹 쌓은 영역

  • Convolution Layer : 입력 데이터에 필터 적용, 활성화 함수 반영

  • Pooling Layer : 추출한 특징을 강화

2. 합성곱 구조

1) 필터(Filter)

합성곱의 가중치

→ 특징(feature)이 데이터에 있는지 검출해 가중치를 부여

만약 데이터가 있다면 1, 없다면 0

이미지 특징을 찾아내기 위한 공용 파라미터로 학습의 대상이 됨

커널과 혼용됨

→ 커널(kernel)과 필터(filter)

  • 커널 : sliding window 하는 영역에서의 크기. 필터의 사이즈 -> 정사각 행렬
  • 필터 : 실제로 커널이 가중치 합산하는 영역의 크기 -> 필터 수는 특징맵 수와 같음

2) 활성화 함수(Activation Function)

필터로 분류된 데이터를 대상으로 특징 유무 수치화를 위해 데이터를 비선형 값으로 바꿔주는 함수

linear, relu, sigmoid, softmax 등을 사용할 수 있음

3. 합성곱 연산

1) 이미지의 픽셀값인 입력값(input)에 필터의 값을 곱한 결과를 더함(합성곱)

이미지 출처 : [https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/]

2) 설정한 보폭만큼 오른쪽으로 이동하여(sliding window) 위와 동일한 계산을 수행

이미지 출처 : [https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/]

→ 이 때 이동하는 간격(보폭) = Stride

  • Stride = 1이면 필터가 한 번에 한 픽셀씩 이동함
  • stride를 높이면 학습이 빠르지만 데이터가 손실될 수 있음

3) 전체 입력값에 수행하여 특징맵(Feature Map) 생성

이미지 출처 : [https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/]

→ 학습할 가중치가 줄어들고 연산의 수도 감소함

  • filter와 stride 작용으로 특징맵의 크기는 입력 데이터보다 작아짐(손실)

    → 해결방안 : Padding

이미지 출처 : [https://indoml.com/2018/03/07/student-notes-convolutional-neural-networks-cnn-introduction/]
  • 입력 데이터의 외곽에 지정된 픽셀만큼 특정 값을 채움(보통은 0)
  • 합성곱층의 출력 데이터 사이즈를 조절하는 기능
  • 이미지 가장자리를 더 잘 인식하는 효과도 있음

4. 최종 출력

1) 특징 맵(Feature Map)

이미지 출처 : [https://neocarus.tistory.com/entry/CNN-Convolutional-Neural-Network-이해하기]

합성곱층의 input data를 filter가 순회하며 만든 출력(행렬)

불필요한 정보를 걸러내고 중요한 특징만 추출한 것

filter의 크기에 따라 이동하는 횟수가 달라지고, filter의 이동 보폭(stride)에 따라서도 feature의 크기가 변화됨

Feature Map Size = (input size + 2 * padding - filter size) / stride + 1

2) 액티베이션 맵(Activation Map)

이미지 출처 : [http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture5.pdf]

필터를 통해 추출된 feature map 에 activation function을 적용한 최종 출력층

활성화 함수 : feature map의 행렬 값(정량적인 값)을 특징 유/무의 비선형 값으로 바꿔주는 과정

profile
데이터분석 뽀개기

0개의 댓글