내적과 컨볼루션의 비교
내적과 컨볼루션 모두 곱셈과 덧셈 연산을 포함합니다.
그러나 각각의 연산이 적용되는 방식과 그 결과가 가지는 의미는 서로 다릅니다.
내적: 두 벡터의 내적은 각각의 대응하는 요소들을 곱한 후, 그 결과를 모두 더하는 연산입니다. 이 결과는 스칼라 값이며, 두 벡터의 유사도나 한 벡터의 길이 등을 나타내는 데 사용됩니다.
컨볼루션: 컨볼루션은 신호 처리에서 널리 사용되는 연산으로, 한 함수와 다른 함수의 반전 이동 버전을 곱한 후 그 결과를 모두 더하는 연산입니다. 이 결과는 함수 혹은 시퀀스이며, 신호나 이미지의 특정 부분에 필터를 적용하는 데 사용됩니다.
따라서, 내적과 컨볼루션은 모두 곱셈과 덧셈 연산을 포함하지만, 그 연산의 방식과 결과의 의미는 서로 다릅니다.
+ 컨볼루션
"반전 이동 버전"이라는 표현은 컨볼루션의 수학적 정의에서 나온 것입니다.
1. 반전(Flip): 여기서 말하는 '반전'은 신호나 함수를 거울에 비친 것처럼 뒤집는 것을 의미합니다. 예를 들어, 함수 f(x)의 반전은 f(-x)가 됩니다.
2. 이동(Shift): '이동'은 함수를 좌우로 움직이는 것을 의미합니다. 예를 들어, 함수 f(x)의 오른쪽으로 a만큼의 이동은 f(x-a)가 됩니다.
따라서, '반전 이동 버전'은 먼저 함수를 뒤집은 후 (반전), 그것을 좌우로 움직인 (이동) 것을 의미합니다.
하지만, 실제 컴퓨터 과학과 기계 학습에서의 컨볼루션 연산에서는 일반적으로 이 반전 단계를 생략합니다. 대신, 커널(또는 필터)를 입력 데이터 위에서 '슬라이딩'하면서 곱하고 더하는 과정을 반복합니다. 이것이 실제로 컨볼루션 레이어가 이미지 데이터를 처리하는 방식입니다.