Loading [MathJax]/jax/output/CommonHTML/jax.js
欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/Statistics & Math

[Linear Algebra] Part16. 대각합 (Trace)

_껀이_ 2024. 1. 9. 01:58
728x90
반응형

대각합(Trace)에 대해 정리해보자.

 

대각합은 말 그대로 행렬의 대각선 성분의 합을 말한다.

 

단순해 보이는 이 개념은 모델의 최적화 부분에서 중요한 역할을 한다.

 


1. 대각합 : Trace

우선 최적화 관점에서 보자.

최적화를 할때, loss function을 최소화하는게 그 목적이 된다. 그런데 loss function에서 다루는 데이터는 행렬 형태의 데이터이기 때문에, 이를 미분하여 값(크기)로 만들어야 최소화할 수 있다. 행렬의 크기가 작으면 간단하게 미분이 되겠지만 크기가 커질수록 복잡해지는데, 이때 대각합(trace)을 미분할 때 사용할 수 있다.

 

이렇듯 모델 최적화에서도 쓰이는 대각합(trace)에 대해 정리해보겠다.

 

대각합의 정의는 "정사각행렬 A에서 행렬의 대각선 성분(diagonal elements)의 합"이다.

수식을 나타내면 다음과 같다.

 

tr(A)=niaii=k

 

위의 식에서 구해진 k는 스칼라이다.

이처럼 스칼라 값으로 나오기 때문에 최적화 시에 최소화하는 방향으로 연산할 수 있게 된다.

 

*** loss 값은 스칼라값이기 때문에 tr(loss)=loss가 된다. 

 

 

2. 성질

  1. tr(A+B)=tr(A)+tr(B)
  2. tr(cA)=ctr(A)
  3. tr(AT)=tr(A)
    • 대각성분의 합이기 때문에 transpose를 해도 같다.
  4. tr(AB)=tr(BA) (단, An×m일때 Bm×n 이어야 한다.)
    • trace는 정사각행렬에 대해 정의된 개념이다.
    • ABBA가 같은 크기(n×n 또는 m×m )의 행렬이어야 정사각행렬이 되기 때문이다.
  5. tr(aTb)=tr(baT)
    • 5의 개념을 벡터의 내적 개념으로 전환한 것이다. A 또는 B를 열벡터, 행벡터로 생각하면 같다.
  6. tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC) : Cyclic Property
    • 5의 개념을 연속적으로 적용한 것이다.
    • tr(ABCD)=tr(A(BCD))=tr((BCD)A)=tr(BCDA)
    • 단, An×m이면, D?×n이어야 한다. tr()은 정사각행렬이 들어가야 하기 때문이다.
    • tr(ABCD)tr(ACBD)
      • 행렬 A, B, C, D의 크기가 각각 n×m, m×k, k×s, s×n일때, CB정사각행렬이 보장되지 않는다.
      • 그러므로, ACBD가 정사각행렬이 보장되지 않는다.
  7. tr(A)=n1λi
    • λi은 고윳값이다.
    • tr(A)는 고윳값들의 합이다. (det(A)는 고윳값들의 곱이다.)

 

 

728x90
반응형