위키득계정 ↗
기술

K-FAC

K-FAC기술
영문
Kronecker-Factored Approximate Curvature
약칭
K-FAC
근사 대상
피셔 정보의 층별 블록
주요 연산
크로네커 인수와 사전조건
K-FAC은 신경망의 피셔 정보 행렬을 작은 행렬들의 크로네커 곱으로 근사해 자연 기울기 계산을 돕는 방법이다. 거대한 곡률 행렬을 직접 저장하고 역산하는 부담을 줄인다.

작은 인수로 큰 구조 표현하기

가중치 행렬에 대응하는 큰 피셔 블록을 두 작은 행렬의 크로네커 곱으로 근사한다. 단순히 대각 원소만 남기는 것과 달리 인수 내부의 좌표 관계를 표현할 수 있다. 근사라는 점에서 진짜 피셔와 항상 같은 행렬은 아니다.

크로네커 곱의 독립 예제

A가 대각값 2와 3인 행렬이고 B가 2×2 항등행렬이면 A와 B의 크로네커 곱은 대각값 2, 2, 3, 3인 4×4 행렬이다. 큰 행렬을 인수로 표현하는 작은 예이며 실제 신경망의 피셔를 추정한 값은 아니다.

자연 기울기와 근사

피셔의 역작용을 이용한 갱신은 일반적인 유클리드 기울기와 다른 스케일을 고려한다. K-FAC은 이 계산을 효율화하려는 근사 방법이지 손실의 정확한 헤시안을 무조건 계산하는 방법은 아니다. 감쇠와 블록 간 근사 방식도 결과에 영향을 준다.

비용과 비교

통계 행렬을 모으고 역산하거나 분해하는 추가 계산이 든다. 인수의 크기와 갱신 주기에 따라 메모리 및 시간이 달라진다. 한 단계에서 손실이 많이 줄어도 단계당 비용이 커질 수 있으므로 목표 품질까지의 실제 시간을 함께 확인한다.

관련 문서

EKFAC / 피셔 가중 모형 병합 / SOAP 옵티마이저 / Shampoo 옵티마이저 / 경사 하강법 / 행렬