본문 바로가기
728x90

bottleneck2

MLP에서 1x1을 사용해서 Bottleneck 구조를 설계하고, 그렇게 설계한 이유는? MLP에서의 1x1 conv를 사용한 Bottleneck 구조의 설계는 다음과 같습니다. (n,c) -> (1x1,c/4) -> activation function -> (c/4,c/4) -> activation function -> (1x1, c) -> activation function -> (n,c) 그리고 입력과 출력을 더해주면 완성입니다. CNN에서의 여러 채널들은 여러 filter들을 사용해 이미지에서의 지역적인 다양한 특징들을 추출하여, 특정 채널은 이미지의 특정 특징과 반응하게 된다고 생각합니다. 이와 유사하게 MLP에서의 채널도 이미지의 전체를 보고 해당 이미지에 대한 특징을 대표적으로 표현한다고 할 수 있습니다. 이를 1x1 conv의 Bottleneck구조를 적용한다면, CNN에서와 .. 2023. 8. 3.
1x1 convolution은 언제 사용되며 의미와 효과? 1x1 convolutionn은 적은 파라미터로 깊은 신경망을 학습하기 위해서 사용되며, 대표적으로 ResNet50의 Bottleneck 구조에 이용됩니다. 신경망 특성상 깊어질수록 채널수가 더욱 증가하여 특징들을 고차원화하여 복잡한 패턴을 인식하도록 합니다. 하지만, 신경망이 깊어질수록 그만큼 컴퓨팅이 증가하기 때문에 성능대비 비효율적입니다. 하지만 1x1 conv기반의 Bottleneck구조를 사용하게 되면, 채널을 줄이고 특징을 추출하고 다시 채널을 늘리는 방식으로 적은 채널의 텐서에서 특징을 추출, 중간중간에 relu와 같은 activation function으로 비선형성을 증가시켜줍니다. 그러므로 적은 파라미터로 깊은 신경망을 쌓아 더 복잡한 패턴을 파악할 수 있습니다. Bottleneck의 예.. 2023. 8. 3.
728x90