아다마르 곱 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 크기가 같은 두 행렬을 성분끼리 곱하는 아다마르 곱(슈어 곱) A ∘ B를 구합니다. 모든 성분의 합, 곧 프로베니우스 내적 ⟨A, B⟩ = trace(AᵀB)와 크기도 함께 보여 줍니다. 성분별 연산이 많은 선형대수, 통계, 영상 처리, 기계학습에 쓸 수 있습니다. 행렬의 행은 세미콜론(;)으로 나눠 입력합니다.
계산 방법
(A ∘ B)_ij = a_ij × b_ij
모든 성분의 합 = Σ a_ij b_ij = ⟨A, B⟩ = trace(AᵀB)
- A와 B는 행과 열의 수가 정확히 같아야 합니다.
원리
행과 열을 엮는 보통의 행렬곱과 달리, 아다마르 곱은 같은 자리에 있는 성분끼리만 짝지어 곱합니다. 그래서 교환법칙과 결합법칙이 성립하고, 모든 성분이 1인 행렬이 항등원입니다. 이미지에 마스크를 씌우거나 표에 가중치를 곱하는 것처럼 한 격자의 수가 다른 격자를 자리마다 조절할 때 쓰입니다. 곱들을 모두 더하면 내적을 행렬로 넓힌 프로베니우스 내적이 됩니다.
예제 풀이
기본값: A = [1 2 3; 4 5 6], B = [7 8 9; 10 11 12].
- 1행: 1 × 7 = 7, 2 × 8 = 16, 3 × 9 = 27입니다.
- 2행: 4 × 10 = 40, 5 × 11 = 55, 6 × 12 = 72입니다.
- A ∘ B = [7 16 27; 40 55 72], 크기는 2 × 3입니다.
- 모든 성분의 합 = 7 + 16 + 27 + 40 + 55 + 72 = 217 = ⟨A, B⟩ = trace(AᵀB)입니다.
결과 해석
결과의 각 성분은 A와 B의 같은 자리 성분에만 달려 있습니다. 합계 217은 A와 B가 얼마나 '같은 방향'인지를 재는 하나의 수입니다. 이를 A와 B의 프로베니우스 노름으로 나누면 두 행렬의 코사인 유사도가 됩니다. 사진 편집에서 밝기 지도를 곱해 일부만 어둡게 만드는 작업도 같은 원리입니다. 통계에서는 관측값 표에 가중치 표를 성분별로 곱해 가중 합계를 구할 때, 기계학습에서는 신경망의 게이트 연산에서 자주 쓰입니다.
흔한 실수
- A ∘ B를 행렬곱 AB와 혼동하는 경우(2 × 3 행렬 둘은 AB가 정의되지도 않습니다)
- 모양이 다른 행렬끼리 곱하려는 경우
- 단위행렬이 ∘의 항등원이라고 생각하는 경우(모든 성분이 1인 행렬입니다)
- 프로베니우스 내적이 행렬이 아니라 하나의 수라는 점을 잊는 경우
- 성분 위치를 한 칸씩 어긋나게 짝지어 곱하는 경우
자주 묻는 질문
아다마르 곱이란?
크기가 같은 두 행렬을 성분끼리 곱하는 연산입니다.
교환법칙이 성립하나요?
네, 보통의 행렬곱과 달리 A ∘ B = B ∘ A입니다.
프로베니우스 내적이란?
A ∘ B의 모든 성분을 더한 값으로, trace(AᵀB)와 같습니다.
크기가 다른 행렬은 어떻게 하나요?
아다마르 곱은 정의되지 않습니다. 두 행렬의 행과 열 수를 먼저 맞춰야 합니다.
출처: E. W. Weisstein, "Hadamard Product", Wolfram MathWorld