본문으로 건너뛰기
39 / MATRIX LAB
먼저 알아두면 좋아요 · 연결된 선수 단원의 선형사상·내적·고유값
단원 목록 (103) · Kronecker 곱·벡터화
이해하는 속도로 읽으세요.개념도이론실험확인 문제
BUILD YOUR INTUITION

먼저 그림으로 이해하기

한 번에 한 단계씩 살펴보세요.

행렬을 벡터로 펼칠 때 열 우선 순서와 곱의 순서를 함께 고정합니다.

038축 범위는 현재 값에 맞춰 조절합니다.
가로: 열 우선 성분 번호 · 파랑: vec(AXBᵀ) · 주황: (A⊗B)vec(X)
직접 행렬 곱순서가 다른 인자
표: A⊗B의 실제 원소 정수 위치의 값입니다. 점 사이를 연속 함수로 보간하지 않습니다.
rowcol 0col 1col 2col 3
02020
10101
20020
30001

vec(X) = (1, 3, 2, 4)

고정 기준 예제의 그림과 수치입니다. 각 단계에서 같은 그림의 의미를 차례로 살펴보세요. 고정된 기준 예제이며 아래 실험의 설정과 독립적입니다.
1 / 4

블록 곱

A의 원소 하나마다 B 전체를 곱한 블록을 놓습니다.

(A⊗B)_(2i+k,2j+l)=A_ij B_kl

실험에서 확인하기 →
이 단원 목차

블록으로 만드는 큰 선형사상

A가 m×n, B가 p×q이면 Kronecker 곱 A⊗B는 mp×nq 행렬입니다. A의 각 원소 aᵢⱼ를 B 전체에 곱한 블록으로 바꿉니다. 일반적인 행렬 곱 AB와 크기 조건부터 다릅니다.

A⊗B=(a11B⋯a1nB⋮⋱⋮am1B⋯amnB).A\otimes B=\begin{pmatrix}a_{11}B&\cdots&a_{1n}B\\\vdots&\ddots&\vdots\\a_{m1}B&\cdots&a_{mn}B\end{pmatrix}.

인덱스를 0부터 쓰면 (A⊗B)₍ᵢₚ₊ₖ,ⱼq₊ₗ₎=AᵢⱼBₖₗ입니다. 블록 인덱스와 블록 내부 인덱스를 구분하면 구현에서 원소 배치를 검산할 수 있습니다.

열 우선 벡터화 규약

이 단원은 X의 열을 차례로 쌓는 vec를 씁니다.

X=(1234),vec⁡(X)=(1,3,2,4)T.X=\begin{pmatrix}1&2\\3&4\end{pmatrix},\qquad \operatorname{vec}(X)=(1,3,2,4)^T.

행을 차례로 쌓는 (1,2,3,4)는 다른 규약입니다. NumPy의 기본 reshape가 행 우선인 경우, 열 우선 vec를 구현하려면 order='F'를 명시해야 합니다. 프레임워크의 메모리 배치와 수학적 인덱스 규약을 구분하고 실제 배열을 출력해 확인하세요.

두 방향의 작용을 한 벡터 작용으로 바꾸기

크기가 맞는 A,X,B에서 Y=AXBᵀ의 원소는 Yᵢⱼ=ΣₖₗAᵢₖXₖₗBⱼₗ입니다. 열 우선 위치 i+mj에 이 값을 놓으면

vec⁡(AXBT)=(B⊗A)vec⁡(X).\operatorname{vec}(AXB^T)=(B\otimes A)\operatorname{vec}(X).

오른쪽 인자 B가 Kronecker 곱의 앞에 오는 이유는 열 번호가 바깥 인덱스이기 때문입니다. 순서를 외우기보다 이 원소별 전개를 사용하세요. A⊗B와 B⊗A는 일반적으로 같지 않습니다.

기준 계산을 직접 해보기

실습은 A=[[1,s],[0,1]], B=diag(t,1), X=[[1,2],[3,4]]입니다. s=1,t=2이면

AXBT=(8664),vec⁡(AXBT)=(8,6,6,4)T.AXB^T=\begin{pmatrix}8&6\\6&4\end{pmatrix},\qquad \operatorname{vec}(AXB^T)=(8,6,6,4)^T.

잘못된 인자 A⊗B를 vec(X)에 곱하면 (6,7,4,4)가 나옵니다. 숫자 차이가 단순한 기호 취향이 아님을 확인하세요. 표는 A⊗B의 실제 원소를 보여 주고, 항등식 검산은 B⊗A로 수행합니다. 표와 항등식의 인자 순서를 의도적으로 구분합니다.

직접 2×2 곱으로 얻은 결과와 4×4 Kronecker 작용으로 얻은 결과를 따로 계산해 차이의 노름을 표시합니다. 올바른 규약에서는 0입니다. 항등식의 양쪽을 같은 계산 결과로 복사하여 검산이라고 부르지 않습니다.

유용한 성질과 가정

크기가 맞을 때 혼합곱 성질이 성립합니다.

(A⊗B)(C⊗D)=(AC)⊗(BD).(A\otimes B)(C\otimes D)=(AC)\otimes(BD).

각 인자가 가역이면 역행렬은 A⁻¹⊗B⁻¹입니다. 일반적으로 rank(A⊗B)=rank(A)rank(B)입니다. 정사각 A의 크기가 m, B의 크기가 p이면 det(A⊗B)=det(A)ᵖdet(B)ᵐ입니다. 실습의 A는 항상 가역이고 t=0이면 B의 랭크가 1이어서 전체 랭크는 2입니다.

이 성질은 A⊗B가 B⊗A와 교환한다는 뜻이 아닙니다. 두 인자 순서는 적절한 순열 행렬로 연결할 수 있지만 같은 저장 순서에서 원소별로 같을 필요는 없습니다.

시각화와 AI 연결

가로축은 벡터화 성분 번호 0,…,3이고 연속 시간이나 공간 좌표가 아닙니다. 두 선은 성분을 눈으로 비교하기 위한 연결 표시이며 중간 번호에 물리적 값이 있다는 뜻이 아닙니다. 숫자 표로 원소 순서를 확인하세요.

분리 가능한 필터, 행렬값 선형 연산, Kronecker 구조 공분산·곡률 근사에서 이 성질이 유용합니다. 큰 Kronecker 행렬을 명시적으로 만들지 않고 AXBᵀ처럼 작은 곱으로 적용할 수 있습니다. 실제 메모리·연산 절감은 크기와 저장 방식에 따라 계산해야 합니다. 구조 근사가 실제 곡률과 정확히 같다는 보장은 없습니다.

확인 문제와 답

  1. 2×3 A와 4×5 B의 Kronecker 크기는? 8×15입니다.
  2. s=0,t=1이면 작용은? 4차원 항등 작용입니다.
  3. t=0이면 가역인가요? 아니요. 전체 랭크는 2입니다.

추가 읽기: MIT Linear Algebra. 벡터화 항등식은 위 성분 전개로 독립 유도합니다.

CHECK YOUR UNDERSTANDING

설명할 수 있나요?

실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.

1. 열 우선 vec([[1,2],[3,4]])는?
2. vec(AXBᵀ)의 인자는?

선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.