이 단원 목차
블록으로 만드는 큰 선형사상
A가 m×n, B가 p×q이면 Kronecker 곱 A⊗B는 mp×nq 행렬입니다. A의 각 원소 aᵢⱼ를 B 전체에 곱한 블록으로 바꿉니다. 일반적인 행렬 곱 AB와 크기 조건부터 다릅니다.
인덱스를 0부터 쓰면 (A⊗B)₍ᵢₚ₊ₖ,ⱼq₊ₗ₎=AᵢⱼBₖₗ입니다. 블록 인덱스와 블록 내부 인덱스를 구분하면 구현에서 원소 배치를 검산할 수 있습니다.
열 우선 벡터화 규약
이 단원은 X의 열을 차례로 쌓는 vec를 씁니다.
행을 차례로 쌓는 (1,2,3,4)는 다른 규약입니다. NumPy의 기본 reshape가 행 우선인 경우, 열 우선 vec를 구현하려면 order='F'를 명시해야 합니다. 프레임워크의 메모리 배치와 수학적 인덱스 규약을 구분하고 실제 배열을 출력해 확인하세요.
두 방향의 작용을 한 벡터 작용으로 바꾸기
크기가 맞는 A,X,B에서 Y=AXBᵀ의 원소는 Yᵢⱼ=ΣₖₗAᵢₖXₖₗBⱼₗ입니다. 열 우선 위치 i+mj에 이 값을 놓으면
오른쪽 인자 B가 Kronecker 곱의 앞에 오는 이유는 열 번호가 바깥 인덱스이기 때문입니다. 순서를 외우기보다 이 원소별 전개를 사용하세요. A⊗B와 B⊗A는 일반적으로 같지 않습니다.
기준 계산을 직접 해보기
실습은 A=[[1,s],[0,1]], B=diag(t,1), X=[[1,2],[3,4]]입니다. s=1,t=2이면
잘못된 인자 A⊗B를 vec(X)에 곱하면 (6,7,4,4)가 나옵니다. 숫자 차이가 단순한 기호 취향이 아님을 확인하세요. 표는 A⊗B의 실제 원소를 보여 주고, 항등식 검산은 B⊗A로 수행합니다. 표와 항등식의 인자 순서를 의도적으로 구분합니다.
직접 2×2 곱으로 얻은 결과와 4×4 Kronecker 작용으로 얻은 결과를 따로 계산해 차이의 노름을 표시합니다. 올바른 규약에서는 0입니다. 항등식의 양쪽을 같은 계산 결과로 복사하여 검산이라고 부르지 않습니다.
유용한 성질과 가정
크기가 맞을 때 혼합곱 성질이 성립합니다.
각 인자가 가역이면 역행렬은 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ᵀ처럼 작은 곱으로 적용할 수 있습니다. 실제 메모리·연산 절감은 크기와 저장 방식에 따라 계산해야 합니다. 구조 근사가 실제 곡률과 정확히 같다는 보장은 없습니다.
확인 문제와 답
- 2×3 A와 4×5 B의 Kronecker 크기는? 8×15입니다.
- s=0,t=1이면 작용은? 4차원 항등 작용입니다.
- t=0이면 가역인가요? 아니요. 전체 랭크는 2입니다.
추가 읽기: MIT Linear Algebra. 벡터화 항등식은 위 성분 전개로 독립 유도합니다.
설명할 수 있나요?
실험 설정과 무관한 기준 예제를 묻습니다. 답을 고르고 설명을 확인해보세요.
선택한 답과 학습 표시는 이 브라우저에 저장됩니다. 다시 풀거나 표시를 해제할 수 있습니다.