아다마르 곱이란?
아다마르 곱(Hadamard product)은 원소별 곱 또는 슈어 곱(Schur product)이라고도 불리며, 크기가 같은 두 행렬을 같은 위치의 원소끼리 곱하는 연산입니다. 일반적인 행렬 곱셈처럼 행과 열을 조합하지 않고, 결과의 각 원소는 단순히 같은 자리에 있는 두 값의 곱이 됩니다. 기호로는 \(\text{A} \circ \text{B}\) 로 나타내며 머신러닝, 신호 처리, 이미지 처리 등 다양한 분야에서 폭넓게 쓰입니다.
계산기 사용 방법
먼저 행과 열의 개수를 지정한 뒤 행렬 A와 행렬 B의 값을 입력하세요. 한 줄에 행 하나씩 입력하고, 숫자는 공백이나 쉼표로 구분합니다. 계산기는 모든 원소가 \(A_{ij} \times B_{ij}\) 인 결과 행렬과 함께, 결과 원소들의 총합까지 함께 보여줍니다.
공식 설명
m×n 크기의 두 행렬 A와 B에 대해 아다마르 곱 \(\text{C} = \text{A} \circ \text{B}\) 는 다음과 같이 정의되는 m×n 행렬입니다.
$$\left(\text{A} \circ \text{B}\right)_{ij} = A_{ij} \cdot B_{ij}\qquad 1 \le i \le \text{Rows},\; 1 \le j \le \text{Cols}$$두 행렬은 반드시 같은 크기여야 하며, 일반 행렬 곱셈에서처럼 행과 열의 내적(dot product)을 구하지 않습니다.
예제 풀이
\(A = [[1, 2], [3, 4]]\), \(B = [[5, 6], [7, 8]]\) 이라고 합시다. 그러면 다음과 같습니다.
$$\text{A} \circ \text{B} = [[1\times5,\ 2\times6],\ [3\times7,\ 4\times8]] = [[5,\ 12],\ [21,\ 32]]$$모든 원소의 합은 다음과 같습니다.
$$5 + 12 + 21 + 32 = 70$$
자주 묻는 질문
일반 행렬 곱셈과 무엇이 다른가요? 일반 행렬 곱셈은 행과 열의 내적을 계산하며 안쪽 차원(inner dimension)이 일치해야 합니다. 반면 아다마르 곱은 같은 위치의 원소끼리만 곱하며 두 행렬의 크기가 완전히 같아야 합니다.
두 행렬의 크기가 다르면 어떻게 되나요? 아다마르 곱은 크기가 같은 행렬에 대해서만 정의됩니다. 이 도구는 지정한 차원을 기준으로 비어 있는 원소를 0으로 채웁니다.
어디에 활용되나요? 신경망(예: 게이팅, 드롭아웃 마스크), 공분산 계산, 픽셀 단위 이미지 연산 등에서 흔히 사용됩니다.