상세 컨텐츠

본문 제목

인공지능 - Convolution

인공지능

by 후추리 2024. 10. 24. 14:18

본문

Linear Classifier의 또다른 문제점 : spatial한 이미지의 구조를 무시(일자로 쭉 피기 때문에)

해결 방안 : Convolution

 

 

Convolution

- 필터를 이미지 상에서 슬라이드 해가며 해당 부분과 곱셈 후 bias 더하기

 

 

Convolution in 3D

- 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

관련글 더보기