torch.linalg.matrix_sqrth로 대칭 양의정부호 행렬의 제곱근을 구하면 고유분해를 손으로 짜지 않아도 됩니다 | DAKER 커뮤니티

행렬 제곱근
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14의 torch.linalg.matrix_sqrth는 대칭(또는 에르미트) 양의정부호 행렬의 제곱근을 바로 계산합니다. 예전처럼 고유분해를 직접 조합하지 않아도 됩니다. 에르미트는 켤레 전치가 자기 자신인 행렬입니다.

행렬 제곱근이 필요할 때 고유값·고유벡터를 구한 뒤 제곱근을 다시 곱하는 코드를 직접 짜면, dtype·대칭성·수치 안정 조건을 빠뜨리기 쉽습니다. 오늘은 작은 대칭 양의정부호 행렬 하나에서 torch.linalg.matrix_sqrth 결과와, 같은 행렬을 고유분해로 재구성한 제곱근이 가까운지부터 확인하십시오. 참가자 노트에는 행렬 크기, dtype, A_sqrt @ A_sqrt가 원래 행렬에 얼마나 가까운지를 적습니다. “빨라졌다”보다 “직접 조합 없이 같은 제곱근이 나오는지”가 재현에 도움이 됩니다.

재현해 볼 실험 조건

  1. 작은 대칭 양의정부호 행렬(예: 무작위 행렬을 A.T @ A + I로 만든 것)에서 torch.linalg.matrix_sqrth를 호출합니다.
  2. 같은 행렬을 고유분해로 제곱근을 재구성한 결과와 비교하고, A_sqrt @ A_sqrt가 원래 행렬에 가까운지 오차를 적습니다.
  3. 비대칭이거나 음의 고유값이 있는 행렬에서는 어떤 오류가 나는지 한 줄을 남깁니다. 양의정부호 가정이 깨지는 경계를 같이 봅니다.

torch.linalg.polar는 극분해이고, matrix_sqrth는 제곱근입니다. 둘은 다른 API입니다. 이번 글에서는 제곱근 한 함수에만 초점을 둡니다. 실험이 끝나면 사용한 PyTorch 버전·행렬 크기·dtype을 한 줄로 고정해 두면, 다음 참가자가 같은 조건을 바로 따라올 수 있습니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 동작은 로컬에서 torch.linalg.matrix_sqrth 결과로 확인하십시오.