본문 바로가기
Major/Programming

CNN (Convolutional Neural Network)의 각 Layer의 동작/역할

by 우프 2020. 8. 26.
반응형

출처: Mathworks, Deep Learning with MATLAB


간단한 이미지 분류를 위한 Convolutional Network Layers의 예

네트워크에서 각 Layer는 아래 그림에서와 같이 숫자로 표현된 입력 값을 바탕으로 새로운 값의 출력을 만들어 낸다.


1) imageInputLayer([5 5])

- 첫번째 Layer인 image input layer는 네트워크의 input size를 정의하고 입력 이미지를 정규화한다. 

- 디폴트로 이미지 입력 레이어는 이미지에 훈련 데이타 세트 전체의 이미지 평균값을 뺀다.


2) convolution2dLayer([2 2], 1)

- 2-by-2의 1개 필터를 한칸씩 옮겨가며 이미지 값과 곱하여 필터를 통과시킨다.


3) reluLayer()

- Convolution Layer 다음에는 ReLu (rectified linear unit)와 같은 nonlinear activation layer가 따라온다.

- ReLu layer는 입력의 각 요소들에 문턱값보다 작은 값을 0으로 만든다.


4) maxPoolingLayer([3 3])

- maximum pooling layer는 이미지를 직사각형의 pooling 영역 (3-by-3)으로 나누고 각 영역에서의 최대값을 선택하여 down-sampling을 수행한다.


5) fullyConnectedLayer(2)

- 네트워크를 통과한 features은 fully connected layer에 도달하기 전까지 행렬형태로 저장된다.  

- Fully Connected Layer에서 입력을 "flattened (1열로 배열)"되어 출력 class로 매핑된다.

- Fully Connected Layer의 출력 크기가 분류하고자 하는 분류의 개수와 동일하다.


6) softmaxLayer()

- softmax는 각 출력 클래스에 해당하는 값을 정규화된 지수함수를 사용하여 정규화된 스코어로 변환함

- softmax의 출력은 각 클래스에 속할 수 있는 확률 값으로 볼 수 있음


7) classificationLayer()

- 가장 가까운 클래스 이름을 반환함









반응형

댓글