티스토리 뷰
일반적인 컨볼루션 연산은 위와 같이 진행됩니다.
FxFxK size를 갖는 L개의 필터는 L개의 feature map을 쌓습니다.
1x1 convolution 연산도 같습니다. K개의 feature map에 맞게 depth를 동일하게 유지시켜주고, L개의 필터는 L개의 feature maps을 만듭니다.
예를 들어, 하나의 뉴런이 32개의 숫자를 입력 받고, 32개의 숫자를 각각 같은 높이와 너비에 해당하는 채널 각각에 곱해주고 relu를 해주면 해당하는 값이 하나의 숫자로 나옵니다.
FC layer를 36개의 위치에 각각 적용해서 32개의 숫자를 입력값으로 받고 필터의 수만큼 출력하는 것입니다.
$n_c^{[l+1]}$
만약 높이와 너비를 줄이려면 pooling layer를 사용하면 됩니다.
그럼 채널의 수가 너무 많아서 줄이려면 어떻게 해야할까요?
e.g., 28x28x192 →(ReLU, CONV 1x1, 32) 28x28x32
실제로는 각 필터가 1x1x192의 크기를 갖습니다. 필터와 입력의 채널 수가 일치해야 하기 때문인데요. 여기서 32개의 필터를 사용하면 28x28x32 크기를 갖게 됩니다.
이것은 $n_c$를 줄이는 방법입니다. (풀링은 높이와 너비인 $n_H, n_W$만 줄일 수 있습니다.)
물론 192개의 채널 수를 유지해도 괜찮습니다.
1x1 합성곱의 효과는 채널의 깊이를 늘려서 비선형성을 더해주고, 하나의 층을 더해줌으로써(add 1 layer) 더 복잡한 함수를 학습할 수 있다는 점입니다.
이런 구조를 'network in network'라고도 하며
위 그림을 통해 이해할 수 있습니다.
요약: 1x1 convolution의 효과는 네트워크에 비선형성을 더해주고, 채널의 수를 조절할 수 있게 됩니다.
'AI > Deep Learning' 카테고리의 다른 글
C4W2L03-04 Resnets & Why ResNets Work (0) | 2022.11.06 |
---|---|
C4W2L07 Inception Network (0) | 2022.11.06 |
C4W2L06 Inception Network Motivation (0) | 2022.11.06 |
CSW3L06 Why Does Batch Norm Work? (0) | 2022.11.06 |
Depth Estimation Related work (Stereo matching, Depth from single images, multi-view stereo, DPSNet) (0) | 2022.08.26 |
- Total
- Today
- Yesterday
- 파이썬 클래스 다형성
- prompt learning
- CNN
- 파이썬 딕셔너리
- support set
- python
- 구글드라이브서버다운
- 파이썬 클래스 계층 구조
- docker
- clip
- 도커
- 서버구글드라이브연동
- cs231n
- 구글드라이브서버연동
- 구글드라이브다운
- 서버에다운
- Unsupervised learning
- 파이썬
- stylegan
- 퓨샷러닝
- NLP
- 프롬프트
- 데이터셋다운로드
- Prompt
- vscode 자동 저장
- style transfer
- 도커 컨테이너
- 구글드라이브연동
- few-shot learning
- 딥러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |