💡 Convolution 연산은 커널( kernel )을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조이다
활성화 함수를 제외한 Convolution 연산도 선형변형에 속한다
Convolution 연산의 수학적인 의미는 신호( signal )를 커널을 이용해 국소적으로 증폭 또는 감소시켜서 정보를 추출 또는 필터링하는 것
💡 Convolution을 수식으로만 이해하는 것은 매우 어렵다
CNN에서 사용하는 연산은 사실 convolution이 아니고 cross-correlation이라고 부른다
커널은 정의역 내에서 움직여도 변하지 않고 주어진 신호에 국소적으로 적용
💡 Convolution 연산은 1차원뿐만 아니라 다양한 차원에서 계산이 가능하다
i
, j
, k
가 바뀌어도 커널의 값은 바뀌지 않는다2D-Conv 연산은 이와 달리 커널( kernel )을 입력벡터 상에서 움직여가면서 선형모델과 합성함수가 적용되는 구조
입력 크기를 (H
, W
), 커널 크기를 ( , ), 출력 크기를 ( , )라 하면 출력 크기는 다음과 같이 계산한다
EX) 28 28 입력을 3 3 커널로 2D-Conv연상을 하면 26 26이 된다
채널이 여러개인 2차원 입력의 경우 2차원 Convolution을 채널 개수만큼 적용한다고 생각하면 된다
3차원부터는 행렬이 아닌 텐서라고 부른다
- 커널을 개 사용하면 출력도 텐서가 된다