행렬로 쓰는 문제
각 행이 하나의 점인 두 실수 행렬 A,B가 같은 크기라고 하자. A의 오른쪽에 직교 행렬 R을 곱해 AR이 B에 가까워지도록 한다. 대표적 목적은 프로베니우스 노름 ||AR-B||를 최소화하는 것이다. RᵀR=I라는 제약 때문에 변환은 길이와 점 사이 거리를 보존한다. 여기서 I는 단위행렬이다.
회전으로 정확히 맞는 예제
A의 두 행을 (1,0),(0,2), B의 두 행을 (0,1),(-2,0)이라고 하자. R의 두 행을 (0,1),(-1,0)으로 두면 AR=B가 되고 오차는 0이다. A의 두 점 사이 거리는 √5이며 B에서도 √5로 같다. 좌표의 숫자는 달라졌지만 점들의 상대적인 거리 구조는 변하지 않은 경우다.
허용하는 변환의 범위
B가 A의 모든 좌표를 두 배로 만든 배치라면 직교 변환만으로는 일반적으로 정확히 맞출 수 없다. 0이 아닌 벡터의 길이를 두 배로 바꿀 수 없기 때문이다. 평행 이동도 별도의 처리가 필요하다. 중심화를 먼저 하거나 크기 조절까지 허용하는 다른 프로크루스테스 분석과 기본 직교 문제를 구분해야 한다. 반사를 금지하려면 회전만 허용하는 추가 제약도 검토한다.
대응과 해석
기본 문제는 A와 B의 같은 행이 서로 대응한다고 가정한다. 점의 순서가 다른데 그대로 계산하면 의도한 정렬과 달라질 수 있다. 점 사이의 대응을 찾는 문제 자체를 자동으로 해결하는 것은 아니다. 저차원 임베딩 두 결과를 비교할 때도 대응과 허용 변환을 확인한다. 잘 정렬됐다는 사실만으로 두 자료가 같은 원인이나 의미를 가진다고 결론 내릴 수는 없다.
관련 문서
직교 행렬 / 프로베니우스 노름 / 단위행렬 / 회전 행렬 / 다차원 척도법 / 행렬 곱셈 / 유클리드 거리