728x90
1x1 convolutionn은 적은 파라미터로 깊은 신경망을 학습하기 위해서 사용되며, 대표적으로 ResNet50의 Bottleneck 구조에 이용됩니다. 신경망 특성상 깊어질수록 채널수가 더욱 증가하여 특징들을 고차원화하여 복잡한 패턴을 인식하도록 합니다. 하지만, 신경망이 깊어질수록 그만큼 컴퓨팅이 증가하기 때문에 성능대비 비효율적입니다. 하지만 1x1 conv기반의 Bottleneck구조를 사용하게 되면, 채널을 줄이고 특징을 추출하고 다시 채널을 늘리는 방식으로 적은 채널의 텐서에서 특징을 추출, 중간중간에 relu와 같은 activation function으로 비선형성을 증가시켜줍니다. 그러므로 적은 파라미터로 깊은 신경망을 쌓아 더 복잡한 패턴을 파악할 수 있습니다.
Bottleneck의 예시는 다음과 같습니다.
(nxn,100) -> (1x1,25) -> relu -> (3x3,25) -> relu -> (1x1,100) -> relu (이후에 입력과 출력을 더해줍니다. skip connection)
728x90
'Deep Learning (AI) > 이론 및 기술면접 정리' 카테고리의 다른 글
[DL] 오토인코더(Autoncoder) (39) | 2023.08.23 |
---|---|
[DL] Batch Normalization이란? 효과? ICS? Smoothing? (1) | 2023.08.15 |
Cost Function은 무엇이며, 알고 있는 cost function에 대해서 말해주세요 (4) | 2023.08.04 |
MLP에서 1x1을 사용해서 Bottleneck 구조를 설계하고, 그렇게 설계한 이유는? (1) | 2023.08.03 |
딥러닝은 무엇이며, 머신러닝과의 차이점은? (0) | 2023.08.03 |