Linear Classifier의 또다른 문제점 : spatial한 이미지의 구조를 무시(일자로 쭉 피기 때문에)
해결 방안 : Convolution
Convolution
- 필터를 이미지 상에서 슬라이드 해가며 해당 부분과 곱셈 후 bias 더하기
- 3D의 경우 필터의 채널(depth)을 인풋의 채널과 맞춰줌
- 결과인 activation map의 depth는 1
- 필터 N개, bias를 N개 만들어 Convolution시키면 N개의 activation map이 나오게 됨
- 필터를 가지고 dot product하는 연산은 wx + b로 표현할 수 있는데, 이는 Linear layer와 비슷함
- Convolution Layer를 여러개 쌓을 수 있는데, 이때 연산은 linear하므로 activation function을 사용해야 함
*Stride & zero Padding
- stride와 padding을 포함해서 계산하면 아웃풋 demension은 (N + 2P - F) / stride + 1
- padding을 주는 이유는 input과 output의 dimension을 맞춰주기 위해서
- padding을 (F-1)/2로 주면 인풋과 아웃풋의 크기가 같음
*1x1 Convolution Layer
- 필터의 사이즈가 1x1이라는 뜻
- 파라미터를 덜 쓰고 채널 dimension의 크기를 늘리거나 줄이는데 사용
Pooling
*Receptive Fields : 아웃풋의 한 부분이 인풋의 어느정도를 차지하는지
- 아웃풋의 한 부분이 전체 인풋을 반영하기 위해선 L개의 layer를 쌓아야 하는데 이때 식이 L * (k-1) + 1 (k는 필터사이즈)
- layer를 많이 쌓다보면 연산이 아주 많아진다는 단점
- 해결책은 spatial size를 줄이는 것
*Down Sampling
1. stride : 7x7 인풋을 stride가 2인 3x3필터로 컨볼루션 하면 아웃풋의 dimension이 작아짐
2. Pooling : learnable 파라미터가 없다는 것이 특징
- Max Pooling
- Average Pooling
Training Neural Network(1) (3) | 2024.12.18 |
---|---|
Convolutional Neural Network (1) | 2024.12.18 |
인공지능 - Optimization(학습) (2) | 2024.10.24 |
인공지능 - Loss (2) | 2024.10.24 |
인공지능 - Image Classification (5) | 2024.10.23 |