Home Gram Matrix, Loss function
Post
Cancel

Gram Matrix, Loss function

그람 행렬(Gram Matrix)은 벡터공간에서 벡터들 간의 내적을 모두 포함하는 정방 행렬입니다.

이 행렬은 벡터들 간의 기하학적 관계를 알기 위해 사용되며, 각 원소는 전치원소와의 내적값으로 결정됩니다.

벡터들이 얼마나 서로 독립적인지 또는 얼마나 밀접하게 관련되어 있는지를 판단할 때 유용하며, 공분산 행렬과 유사한 형태를 띄기도 합니다.

행렬이 det이 0이 아닌 경우, 각 벡터집합은 선형독립입니다.

실수 벡터에 대한 그람 행렬은 대칭 행렬이므로 대각화(또는 고유값 분해,Eigendecomposition)가 가능하고, 모든 고유값은 음수가 아니며,이 고유값들은 원 행렬의 특이값 분해(SVD,Singular value decomposition)에서의 특이값의 제곱에 해당합니다.

그람 행렬(Gram Matrix)

주어진 벡터들 (v1,v2,,vn)( v_1, v_2, \ldots, v_n ) 에 대해, 그람 행렬 (G)( G ) 은 다음과 같이 정의됩니다:

[G=VTV][ G = V^T V ]

여기서 (V)( V )는 주어진 벡터들을 열로 갖는 행렬이고, (VT)( V^T )(V)( V )의 전치행렬입니다. 그람 행렬 (G)( G )((i,j))( (i, j) ) 원소는 벡터 (vi)( v_i )(vj)( v_j )의 내적 (vivj)( v_i \cdot v_j )이 됩니다.

그람 행렬의 성질

실수에 대한 그람행렬의 성질은 다음과 같이 정리할 수 있습니다.

  1. 대칭성(symmetric): 그람 행렬은 대칭 행렬입니다. 즉, (GT=G)( G^T = G ). 따라서 대각화가 가능합니다.
  2. Positive Semidefinite(양수 정부호): 그람 행렬은 양수 정부호입니다. 모든 벡터 (x)( x )에 대해 (xTGx0)( x^T G x \geq 0 )이 성립합니다.
  3. 랭크(Rank): 그람 행렬의 랭크는 원래 벡터 집합의 선형 독립인 벡터의 최대 수와 같습니다.
  4. 결정자(Determinant): 그람 행렬의 결정자가 0이 아닌 경우, 벡터들은 선형 독립입니다. 결정자가 0인 경우, 벡터들은 선형 종속입니다.

응용분야

  • PCA (주성분 분석): 데이터의 차원을 축소하기 위해 사용되며, 데이터 행렬의 공분산 행렬이 그람 행렬 형태로 나타날 수 있습니다.
  • SVM (서포트 벡터 머신): 커널 기법에서 그람 행렬은 커널 행렬로 사용되어, 데이터 포인트 간의 유사도를 계산합니다.
  • 컴퓨터 그래픽스: 벡터들 사이의 각도나 길이를 계산할 때 그람 행렬을 활용할 수 있습니다.

손실함수(Loss Function)

손실 함수(loss function)는 기계 학습 및 딥러닝에서 모델의 예측이 얼마나 잘못되었는지를 측정하는 함수입니다. 이 함수는 모델이 학습 데이터에 얼마나 잘 맞는지, 즉 모델의 예측과 실제 값 사이의 차이를 수치적으로 나타냅니다. 이 값이 최소화될수록 모델의 예측이 실제 값과 더 일치한다고 볼 수 있습니다.

종류

그래픽스 및 이미지 프로세싱 분야에서는 이미지의 품질, 스타일, 정확도 등 다양한 측면을 최적화하기 위해 여러 종류의 손실 함수가 사용됩니다. 다음은 이미지 프로세싱에서 흔히 사용되는 몇 가지 손실 함수들입니다:

1. 평균 제곱 오차 (Mean Squared Error, MSE)

예측 이미지와 실제 이미지 간의 픽셀 값 차이의 제곱의 평균을 계산합니다.

이 손실 함수는 이미지 재구성, 초해상도 등에서 자주 사용됩니다. 노이즈에 민감합니다.

  • 공식: [MSE=1Ni=1N(yiy^i)2][ MSE = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2 ]

    여기서 (yi)(y_i)는 실제 픽셀 값, (y^i)(\hat{y}_i)는 예측 픽셀 값입니다.

2. 픽셀별 이진 교차 엔트로피 (Pixel-wise Binary Cross-Entropy)

주로 이미지 분할 및 분류 작업에서 사용되며, 각 픽셀의 예측된 분류 확률과 실제 레이블 사이의 교차 엔트로피를 계산합니다.

픽셀레벨의 분류 정확도를 요구될 때 필요합니다.

  • 공식: [BCE=i=1Nyilog(y^i)+(1yi)log(1y^i)][ BCE = -\sum_{i=1}^{N} y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) ]

3. 스트럭쳐 유사도 인덱스 (Structural Similarity Index, SSIM)

두 이미지의 시각적 품질을 비교할 때 사용되며, 밝기, 대비, 구조 등 세 가지 요소를 기반으로 유사도를 측정합니다. SSIM은 특히 이미지 품질 평가와 최적화에서 선호됩니다.

4. 퍼셉츄얼 손실 (Perceptual Loss)

이미지의 고수준 특징(예: 질감, 형태)을 비교하기 위해, 사전 학습된 심층 신경망을 통과한 후의 특징 맵을 비교합니다. 이는 이미지 스타일 전이, 초해상도 및 기타 복잡한 이미지 생성 작업에 사용됩니다.

  • 공식: [PL=iF(x)iF(y)i][ PL = \sum_{i} \|F(x)_i - F(y)_i\| ]

    여기서 (F(x))(F(x))(F(y))(F(y))는 각각 입력 이미지와 목표 이미지를 특정 신경망 계층에서의 특징 맵입니다.

5. 그람 행렬 손실 (Gram Matrix Loss)

주로 스타일 전이에서 사용되며, 이미지의 스타일적 특징을 나타내는 특징 맵의 그람 행렬 사이의 차이를 최소화합니다.

텍스처를 보존하며 스타일 전이를 할 수 있습니다.

  • 공식: [GL=GsGgF2][ GL = \|G_s - G_g\|_F^2 ]

    여기서 (Gs)(G_s)는 스타일 이미지의 그람 행렬, (Gg)(G_g)는 생성된 이미지의 그람 행렬입니다.

6. 코사인 유사도 손실함수 (Cosine Similarity Loss)

코사인 유사도는 방향성에 초점을 맞추기 때문에, 크기보다는 벡터의 방향이 더 중요한 경우에 특히 유용합니다.

색감을 보존하며 스타일 전이를 할 수 있습니다.

  • 공식: [Cosine Similarity Loss=1xyxy][ \text{Cosine Similarity Loss} = 1 - \frac{x \cdot y}{\|x\|\|y\|} ]

7. 트리플릿 손실 함수 (Triplet Loss)

트리플릿 손실 함수는 이미지나 다른 데이터 포인트 간의 상대적인 거리를 학습하는 데 사용되는 손실 함수입니다. 이 손실 함수는 주로 얼굴 인식과 같은 응용 분야에서 사용되며, 비슷한 이미지는 서로 가깝게, 서로 다른 이미지는 멀게 배치하는 것을 목표로 합니다.

트리플릿 손실 함수는 세 개의 관련된 이미지(또는 데이터 포인트) 샘플을 사용합니다:

  • 앵커(Anchor): 비교의 기준이 되는 이미지.
  • 양성(Positive): 앵커와 같은 클래스 또는 카테고리에 속하는 이미지.
  • 음성(Negative): 앵커와 다른 클래스 또는 카테고리에 속하는 이미지.

  • 정의: [L=max(d(a,p)d(a,n)+margin,0)][ L = \max(d(a, p) - d(a, n) + \text{margin}, 0) ]

여기서

  • (d(a,p))( d(a, p) )는 앵커 (a)( a ) 와 양성 샘플 (p)( p ) 사이의 거리입니다.
  • (d(a,n))( d(a, n) ) 는 앵커 (a)( a ) 와 음성 샘플 (n)( n ) 사이의 거리입니다.
  • (margin)( \text{margin} ) 은 하이퍼파라미터로, 양성과 음성 사이에 존재해야 하는 최소 거리를 정의합니다.

이 손실 함수의 목적은 앵커와 양성 이미지 간의 거리를 최소화하고, 앵커와 음성 이미지 간의 거리를 최대화하는 것입니다. 이렇게 함으로써 모델이 비슷한 이미지를 더욱 정확하게 인식하고, 다른 카테고리의 이미지와 구별할 수 있도록 학습됩니다.

트리플릿 손실은 유사한 이미지 간의 차이에 강점이 있어 이미지 분류, 얼굴 인식, 추천 시스템 등에서 유용합니다.

그람행렬의 손실함수

그람행렬을 손실함수(loss function)으로 사용하는 개념은 주로 딥러닝, 특히 스타일 전이(style transfer)와 같은 영역에서 매우 유용하게 적용됩니다. 색감을 유지하며 전이할 수 있는 코사인 유사도 손실함수 대신, 텍스처를 보존할 수 있다는 점에서 유용합니다.

예를 들면 다음과 같은 문서가 있습니다.

  • “Image Style Transfer Using Convolutional Neural Networks”
  • “Passing Multi-Channel Material Textures to a 3-Channel Loss”

스타일 전이에서 각 특징(feature)의 스타일적 특징을 추출하고 전이하는 데 사용됩니다. 값이 크면 각 특징간 상관관계 높음 = 유사도가 높으며, 적다면 여기서 그람 행렬의 손실은 두 이미지 간의 스타일 차이를 수량화하는 데 도움을 줍니다.

This post is licensed under CC BY 4.0 by the author.
Contents