1. FCN (Fully Connected Layer)

2. Convolution and Filter
Spatial Structure
Cost effective learning을 위해 ch10.에서는 이미지 크기를 줄이는 전략 선택
이미지는 공간적으로 어떤 특징을 표현하는데 있어 유사한 값을 갖는 특징 있음
Convolution
이미지 속 패턴(특징)을 추출하기 위해 작은 창을 이미지 위에 겹쳐 이동시키며 계산하는 과정
Filter
이미지에서 특정한 특징을 감지하는 작은 행렬
Example. Vertical Edge Filter(수직선 검출 필터)

Learnable Filters
이미지의 특징을 검출하기 위한 다양한 필터는 이미 존재했음
(-> 하지만 모든 이미지에 대하여 최적의 방법 X )
- Canny, Sobel, Gaussian, smoothing, low-level segmentation
(해결책) 학습을 시키기 위하여 CNN 도입

3. Convolution layer
입력 데이터로부터 공간적 특징(Spatial Features)을 자동으로 추출하기 위해,
필터를 사용하여 합성곱 연산을 하는 딥러닝 계층
- Feature Map : 연산의 결과 (or activation map)
Color Image
각 Channel에 대해 동시에 동작하는 3D 필터 사용됨
(Gray scale 이미지와 동작 원리 같음)
- 계산 과정 : 같은 차원끼리 1:1 매칭하여 Convolution 계산 후 각 채널로부터 계산된 결과를 합쳐 하나로 출력
Convolution 연산의 확장
filter를 여러 개로 늘리면, 다양한 특징을 추출하는데 유용

Example. [3x32x32] 이미지에 [3x5x5] 필터 6개를 적용하였을 때 최종 출력 크기

Convolution layer 장점
- Local Connectivity : 각 뉴런이 입력 전체가 아니라 일부분에 연결되어, 지역적 특징 학습
- Parameter Sharing : 같은 필터를 모든 위치에서 재사용 -> 파라미터 수 줄고, 연산 효율성 향상
Convolution layer 한계점
- 경계 정보 손실
: 필터의 크기가 클 수록 / 깊은 네트워크 일 수록 가장자리 정보 무시됨
(해결책) padding
- 계산량이 많고 출력 크기가 큼
: 한 칸씩만 이동해서 계산량 큼
(해결책) Stride
- feature map 크기가 크고, 과적합 가능성 있음
(해결책) pooling
4. Padding
입력 이미지 주변에 0을 추가하여 출력 크기 조절 및 경계 정보 보존하는 방법

사진 출처
5. Stride
필터가 한 번에 이동하는 크기(보폭)
- Stride가 크면, 출력 크기 작아지고 연산량 감소

사진 출처
6. Pooling Layer
공간 크기를 줄여 계산량 감소 및 과적합 방지
(회전 및 위치 변화에 중요한 특징 추출 가능)
- MaxPooling : 영역 내 최대값 선택
- AveragePooling : 영역 내 평균값 선택

사진 출처
Pooling의 Hyper-parameter
- f : filter size
- s : stride
- p : padding
size 계산 식
![업로드중..]()
Pooling의 장점
- Down Sampling : 입력 사이즈 줄이기 가능
- 과적합 방지 : parameter(weight)가 적어짐
- 중요한 feature 추출
7. FCN Layer : Last layers of CNN
FCN 합성곱 층에서 추출한 특징을 바탕으로 최종 분류 수행
- high level feature 들의 조합으로 학습
- non-linear function을 사용해서 비선형적으로도 학습 가능

사진 출처