다. 이름은 그리스 문자 디감마(Ϝ, 감마 두 개를 겹친 모양)에서 왔고, 「감마의 다음」 이라는 말장난이기도 하다1. 다시 미분하면 트라이감마 ψ1=ψ′, 일반적으로 폴리감마 ψm=ψ(m) 이 된다.
순수수학에서는 조화수의 연속판 정도로 소개되지만, 통계·기계학습 코드에서 디감마는 매일 호출되는 함수다. 감마·베타·디리클레 분포에서 lnX 의 기댓값이 디감마이기 때문이다. 그 결과 감마 분포의 최대우도추정, 잠재 디리클레 할당(LDA)의 변분 추론, k-최근접 이웃 기반 엔트로피·상호정보량 추정기에 전부 디감마가 들어간다. 이 문서는 성질을 짧게 정리하고 계산법과 그 쓰임새를 실측과 함께 다룬다.
다음 항이 691/(32760x12) 이므로 x=6 에서 10−11, x=10 에서 2×10−14 로 잘린다는 예측과 맞는다. 배정밀도 끝자리까지 원하면 기준을 더 올리거나 항을 하나 더 넣는다. 대신 점화식으로 많이 밀수록 1/(x+j) 를 빼는 횟수가 늘어 반올림이 쌓이니, 기준을 무한정 올리는 것도 답은 아니다.
함정 둘. 첫째, 양의 근 x0 근처에서는 ψ 자체가 0 에 가까워 상대오차가 폭발한다. 이 구간까지 상대 정밀도를 원하면 x0 에서의 테일러 전개를 따로 둔다(Boost·Cephes 계열 구현이 그렇게 한다). 둘째, 음수 인자에서 반사 공식의 πcot(πx) 는 정수 근처에서 sin(πx) 를 정확히 계산해야 하므로, x 에서 가장 가까운 정수를 먼저 빼고 삼각함수를 부른다.
로그 기댓값. 감마 분포 X∼Gamma(k,θ) 이면 E[lnX]=ψ(k)+lnθ, Var[lnX]=ψ1(k) 다. 베타 분포 Beta(a,b) 에서는 E[lnX]=ψ(a)−ψ(a+b). 디리클레 분포 Dir(α) 에서는
E[lnθk]=ψ(αk)−ψ(j∑αj)
이다. 지수족의 충분통계량이 lnx 인 분포에서 로그 정규화 상수의 도함수가 감마 함수의 로그 도함수가 되기 때문이다.
감마 분포 최대우도추정. 형상 모수 k 의 MLE 는
lnk−ψ(k)=s,s=lnxˉ−lnx
의 해다. 닫힌꼴이 없으니 뉴턴-랩슨법으로 풀고, 도함수에 트라이감마 1/k−ψ1(k) 가 들어간다. 민카(2000)의 초기값
k0=12s3−s+(s−3)2+24s
에서 출발하면 거의 즉시 끝난다. k=2.5, θ=2 에서 뽑은 표본 1000개(s=0.20442)로 실측하면 k0=2.59366, 뉴턴 1회 2.6005400, 2회 2.6005593, 3회에 기계 정밀도로 수렴한다(SciPy gamma.fit 과 일치). 적률법 추정 xˉ2/s2=2.608 과는 셋째 자리에서 갈린다. 자세한 것은 감마 분포와 최대우도추정에.
LDA 와 변분 추론. 잠재 디리클레 할당(블라이·응·조던 2003)의 변분 추론 갱신식은 ϕnk∝βk,wnexp(ψ(γk)−ψ(∑jγj)) 이다. 문서 수 × 단어 수 × 토픽 수만큼 디감마를 부르니, 대규모 토픽 모델에서는 디감마가 프로파일러 상위에 올라온다. 그래서 x≥6 기준 + 짧은 점근식 같은 「적당히 정확하고 빠른」 구현이 이 분야에서 흔하다2.
디리클레 모수 추정. 디리클레 MLE 고정점 반복은 ψ(αknew)=ψ(∑jαj)+lnpk 형태라 역디감마ψ−1(y) 가 필요하다. 민카의 처방은 초기값을 y≥−2.22 이면 ey+21, 아니면 −1/(y+γ) 로 잡고 뉴턴 5회를 돌리는 것이다. ψ 가 양의 축에서 단조라 해가 유일하다.
꼴이다(k 번째 이웃 거리 안에 든 주변 점 개수 nx, ny). 여기서 ln 대신 ψ 가 들어가는 이유는 k 번째 이웃 거리의 확률질량에 대한 ln 의 기댓값이 정확히 ψ(k)−ψ(N) 이기 때문이다 — 작은 정수 개수에서 lnn 으로 바꾸면 편향이 생긴다. 시계열 인과 분석·전달 엔트로피 추정에서 이 꼴을 그대로 쓴다3.