-
딥러닝 컨볼루션 conv 이란?딥러닝/기본 연산들 2022. 6. 3. 19:11
Conv
컨볼루션 연산의 정확한 정의에 대해 알아보도록 하겠습니다. 컨볼루션 연산을 설명할 때 흔히 2D 그래픽 이미지로 컨볼루션 커널을 표현하여 혼동이 될 때가 있습니다. 그래서 3D 그림으로 설명하겠습니다.
Depth 차원이 어떻게 되는지를 먼저 아셔야 합니다. 컨볼루션층을 한번 거치면 Depth는 1이 아니라 커널의 개수 N입니다.
거대한 나무젓가락 한짝 같은 좁고 긴 컨볼루션 커널 (필터) 를 한번에 적용합니다.
적용시에는 Element-wise Multiplication 이라고 엘리먼트 간 곱셈이란 연산을 사용합니다. 이러한 커널을 XY차원 방향으로 한 번 쓱 훑고 지나갈 경우 1 Depth에 해당하는 뉴런들이 생성됩니다. 하나의 컨볼루션 연산은 여러 커널로 구성됩니다. 따라서 커널 수가 64개인 컨볼루션 연산을 적용하면 결과 레이어의 Depth는 64가 됩니다.
3D 커널이라 생각보다 파라미터 수가 많습니다. 컨볼루션 연산을 정의할 때 입력 뉴런의 XY 평면의 차원 수가 (224, 224) 이고 Depth가 64라고 가정할 경우 3x3 커널 한 개의 차원 수는 (3, 3, 64) 이고 배치 사이즈까지 고려할 경우 (배치 크기, 3, 3, 64) 가 됩니다. 생각보다 많습니다.
그래서 나중에 커널의 차원 수를 줄이기 위해 Group Conv 같은 것이 생겨납니다.
'딥러닝 > 기본 연산들' 카테고리의 다른 글
CNN 파라미터 수 계산 방법 (0) 2022.06.04 컨볼루션의 패딩 적용 (0) 2022.06.03 셔플 연산과 Conv 1x1의 공통점 (0) 2022.06.03 Group Conv 그룹 컨볼루션 (0) 2022.06.03 딥러닝 셔플 Shuffle 연산으로 채널 차원을 섞어주세요. (0) 2022.06.03