104강에서 극좌표를 썼습니다. 원형 영역이 직사각형이 되는 대신 넓이 요소가 바뀌었습니다.
dA=rdrdθ
이 r이 야코비 행렬식이었습니다. 98강 문제 4에서 계산해 두었고 104강에서 실제로 썼습니다.
그렇다면 극좌표만 특별한 것인가를 물어야 합니다. 답은 아닙니다. 어떤 좌표변환이든 같은 구조가 성립합니다.
∬Df(x,y)dA=∬D′f(g(u,v))∣detJg∣dudv
한 변수의 치환적분을 다변수로 옮긴 것이며, 53강의
∫f(x)dx=∫f(g(u))g′(u)du
에서 g′가 ∣detJ∣로 자란 형태입니다.
근거는 이미 두 번 세웠습니다. 79강에서 행렬식이 부피 배율이라 증명했고, 98강 문제 3에서 야코비 행렬식이 국소 부피 배율임을 확인했습니다. 이 강의는 그 사실을 적분 공식으로 만듭니다.
좌표를 바꿔 영역을 단순하게 만들고 그 대가를 야코비로 치릅니다
- 변수변환 공식을 쓰고 조건을 말할 수 있습니다.
- 선형변환의 부피 배율을 계산할 수 있습니다.
- 영역을 단순하게 만드는 변환을 설계할 수 있습니다.
- 정방향과 역방향 야코비의 관계를 쓸 수 있습니다.
- 타원과 다변량 가우스의 정규화를 계산할 수 있습니다.
문제. A=(2113)이고 T(u,v)=A(u,v)⊤이라 합니다.
(1) detA를 구하세요.
(2) 단위정사각형 [0,1]2의 상의 넓이를 예측하세요.
(3) 수치로 확인하세요.
생각의 실마리. 79강에서 답한 문제입니다. 행렬식이 부피 배율이었습니다.
풀이. (1) detA=6−1=5입니다.
(2) 단위정사각형의 넓이가 1이므로 상의 넓이가 5입니다.
(3) 검산에서 몬테카를로로 4.9996이 나옵니다.
이 문제에서 배우는 것: 야코비가 상수인 경우.
선형변환의 야코비는 모든 점에서 A 자신입니다. 98강 문제 13에서 확인했습니다. 따라서
∣detJT∣=∣detA∣
이고 위치에 무관합니다. 79강의 결과가 그대로 적분 공식이 됩니다.
∬T(S)fdA=∣detA∣∬Sf(Au)dudv
부호를 버리는 이유를 짚어 둡니다. detA가 음수이면 방향이 뒤집히는데, 넓이는 언제나 양수입니다. 한 변수에서는 적분 구간의 방향으로 부호를 다뤘지만
∫bafdx=−∫abfdx
다변수에서는 영역에 방향을 주지 않으므로 절댓값을 씁니다. 미분형식으로 다루면 부호를 살릴 수 있으나 이 과목의 범위를 넘습니다.
바로 확인 1.
확인 1-1. 선형변환의 야코비를 쓰세요.
답. 행렬 A 자신이며 모든 점에서 같습니다.
확인 1-2. 부피 배율을 쓰세요.
답. ∣detA∣입니다.
확인 1-3. 절댓값을 쓰는 이유를 쓰세요.
답. 넓이는 양수이고 다변수에서는 영역에 방향을 주지 않기 때문입니다.
문제. D=T([0,1]2)가 문제 1의 평행사변형이라 합니다.
(1) x+y를 u,v로 표현하세요.
(2) ∬D(x+y)dA를 계산하세요.
(3) 수치로 확인하세요.
생각의 실마리. 변환이 (x,y)=(2u+v, u+3v)이므로 피적분함수를 새 변수로 바꿔 쓰고 야코비를 곱하면 됩니다.
풀이. (1) x+y=(2u+v)+(u+3v)=3u+4v입니다.
(2) 공식을 적용합니다.
∬D(x+y)dA=∫01∫01(3u+4v)⋅5dudv=5(23+2)=17.5
(3) 검산에서 17.500000입니다.
이 문제에서 배우는 것: 변수변환 공식.
변수변환 정리. g:D′→D가 C1이고 D′의 내부에서 일대일이며 detJg=0이면
∬Df(x,y)dxdy=∬D′f(g(u,v))∣detJg(u,v)∣dudv
입니다.
세 가지를 동시에 바꿔야 합니다.
| 바꿀 것 |
어떻게 |
| 영역 |
D를 D′로 |
| 피적분함수 |
f(x,y)를 f(g(u,v))로 |
| 넓이 요소 |
dxdy를 ∣detJ∣dudv로 |
셋 중 하나라도 빠뜨리면 틀립니다. 104강 문제 2에서 r을 빠뜨렸을 때 답이 두 배가 된 것이 셋째를 놓친 경우입니다.
조건을 하나씩 봅니다.
| 조건 |
왜 필요한가 |
| C^ |
야코비가 정의되고 연속이어야 합니다 |
| 일대일 |
같은 곳을 두 번 세지 않아야 합니다 |
| detJ=0 |
차원이 무너지지 않아야 합니다 |
"내부에서"라는 단서가 중요합니다. 극좌표에서 r=0이나 θ=0과 θ=2π가 같은 점을 주지만, 그 집합의 넓이가 0이라 적분에 영향을 주지 않습니다. 경계에서의 위반은 허용됩니다.
한 변수와 비교하면 구조가 같습니다.
∫abf(x)dx=∫αβf(g(u))g′(u)du
| 항목 |
한 변수 |
다변수 |
| 배율 |
g′(u) |
∣detJ∣ |
| 부호 |
구간 방향으로 처리 |
절댓값 |
| 일대일 |
단조성으로 보장 |
명시적 조건 |
바로 확인 2.
확인 2-1. 변수변환 공식을 쓰세요.
답. ∬fdxdy=∬f(g)∣detJ∣dudv입니다.
확인 2-2. 동시에 바꿔야 할 세 가지를 쓰세요.
답. 영역, 피적분함수, 넓이 요소입니다.
확인 2-3. 정리의 조건 세 가지를 쓰세요.
답. C1이고 일대일이며 detJ=0입니다.
문제. D가 1≤x+y≤3이고 0≤x−y≤2인 영역이라 합니다.
(1) 영역을 직사각형으로 만드는 변환을 고르세요.
(2) 야코비 행렬식을 구하세요.
(3) ∬D(x+y)2dA를 계산하세요.
생각의 실마리. 영역의 조건이 이미 x+y와 x−y로 쓰여 있습니다. 그 조합을 새 변수로 삼으면 조건이 상수 범위가 됩니다.
풀이. (1) u=x+y, v=x−y로 두면
1≤u≤3,0≤v≤2
직사각형입니다.
(2) 공식을 쓰려면 g:(u,v)↦(x,y)가 필요하므로 역으로 풉니다.
x=2u+v,y=2u−v
야코비는
Jg=(1/21/21/2−1/2),detJg=−21
검산에서 ∣detJ∣=0.5입니다.
(3) (x+y)2=u2이므로
∫13∫02u2⋅21dvdu=21⋅2⋅[3u3]13=327−1=326
검산에서 8.666667이고 수치가 일치합니다.
이 문제에서 배우는 것: 변환 설계의 원칙.
영역의 조건에 나타나는 식을 새 변수로 삼습니다
절차를 정리합니다.
| 단계 |
하는 일 |
| 1 |
영역의 부등식을 봅니다 |
| 2 |
반복되는 식을 u,v로 잡습니다 |
| 3 |
역으로 풀어 x,y를 u,v로 씁니다 |
| 4 |
야코비를 구합니다 |
| 5 |
세 가지를 모두 바꿔 적분합니다 |
셋째 단계가 번거로울 수 있습니다. 역으로 풀기 어려우면 문제 4의 방법을 씁니다.
피적분함수도 함께 봅니다. 이 문제에서 (x+y)2=u2이 되어 함수까지 단순해졌습니다. 영역과 함수가 같은 변환을 원하면 이상적입니다.
| 상황 |
판단 |
| 영역과 함수가 같은 변환을 원합니다 |
즉시 씁니다 |
| 영역만 단순해집니다 |
대개 씁니다 |
| 함수만 단순해집니다 |
저울질합니다 |
둘째 줄이 기본입니다. 104강 문제 5에서 말한 대로 범위가 복잡하면 계산 자체가 성립하지 않는 반면, 함수가 복잡한 것은 길어질 뿐입니다.
바로 확인 3.
확인 3-1. 변환 설계의 원칙을 한 문장으로 쓰세요.
답. 영역의 조건에 나타나는 식을 새 변수로 삼습니다.
확인 3-2. u=x+y, v=x−y의 ∣detJg∣를 쓰세요.
답. 1/2입니다.
확인 3-3. 영역과 함수가 다른 변환을 원하면 어느 쪽을 따릅니까?
답. 대개 영역입니다.
문제. 문제 3에서 u=x+y, v=x−y의 야코비를 직접 봅니다.
(1) h:(x,y)↦(u,v)의 야코비 행렬식을 구하세요.
(2) 문제 3의 detJg와의 관계를 쓰세요.
(3) 어느 쪽을 계산해도 되는 이유를 설명하세요.
생각의 실마리. g와 h는 서로 역함수입니다. 98강 심화 2에서 역함수의 야코비를 다뤘습니다.
풀이. (1) u=x+y, v=x−y이므로
Jh=(111−1),detJh=−2
(2) 검산에서 detJg⋅detJh=(−0.5)×(−2)=1.0입니다.
∣detJg∣=∣detJh∣1=21
(3) g∘h=id이고 항등사상의 야코비가 I이므로, 98강의 연쇄법칙에서
JgJh=I⟹detJgdetJh=1
이 문제에서 배우는 것: 어느 방향으로 계산해도 됩니다.
∣detJg∣=∣detJh∣1
실용적으로 중요합니다. 역으로 푸는 것이 어려운 경우가 흔한데, 그때는 쉬운 쪽을 계산해 역수를 취하면 됩니다.
표기 관습이 하나 있습니다.
∂(u,v)∂(x,y)=detJg,∂(x,y)∂(u,v)=detJh
이 기호로 쓰면 관계가 분수처럼 보입니다.
∂(u,v)∂(x,y)⋅∂(x,y)∂(u,v)=1
94강 심화 3에서 편미분을 분수로 다루면 안 된다고 했는데, 여기서는 성립합니다. 차이는 이것이 한 성분의 편미분이 아니라 행렬식 전체라는 점에 있습니다. 연쇄법칙이 행렬 곱이고 행렬식이 곱셈적이라 깔끔하게 떨어집니다.
세 변수 관계 ∂y∂x∂z∂y∂x∂z=−1과 대조하면 구별이 분명합니다.
| 대상 |
분수처럼 되는가 |
| 편미분 하나 |
되지 않습니다 |
| 야코비 행렬식 |
됩니다 |
바로 확인 4.
확인 4-1. 정방향과 역방향 야코비 행렬식의 관계를 쓰세요.
답. 서로 역수입니다.
확인 4-2. 그 근거를 쓰세요.
답. 연쇄법칙에서 JgJh=I이고 행렬식이 곱셈적이기 때문입니다.
확인 4-3. ∂(x,y)/∂(u,v)가 무엇을 뜻합니까?
답. 야코비 행렬식입니다.
문제. (1) 타원 x2/9+y2/4≤1의 넓이를 변수변환으로 구하세요.
(2) 공분산이 Σ=(4112)인 이변량 가우스의 정규화 상수를 구하세요.
(3) 수치로 확인하세요.
생각의 실마리. 타원은 원을 늘인 것이고, 일반 가우스는 표준 가우스를 선형변환한 것입니다. 둘 다 선형변환이니 야코비가 상수입니다.
풀이. (1) x=3u, y=2v로 두면 조건이 u2+v2≤1이 되어 단위원판입니다. 야코비는
J=(3002),∣detJ∣=6
따라서
넓이=6×π=6π
검산에서 18.849556입니다.
(2) 밀도가 다음 형태입니다.
p(x)=Z1exp(−21x⊤Σ−1x)
Σ=LL⊤로 콜레스키 분해하고 x=Lz로 두면 지수부가 −21∥z∥2이 되고 ∣detJ∣=∣detL∣=detΣ이므로
Z=∫e−21∥z∥2∣detL∣dz=(2π)n/2detΣ
n=2이고 detΣ=8−1=7이므로
Z=2π7
(3) 검산에서 detΣ=7.0이고 Z=16.623746이며, 표본 공분산이 Σ와 소수 셋째 자리까지 일치합니다.
이 문제에서 배우는 것: 세 강의가 합쳐집니다.
이 계산에 세 가지가 함께 쓰였습니다.
| 도구 |
어디서 |
| 가우스 적분 \sqrt |
104강 |
| 변수변환과 ∣detJ∣ |
105강 |
| 콜레스키 분해 |
87강 |
detΣ가 나타나는 이유가 이제 분명합니다. 표준 가우스를 늘인 만큼 부피가 커지고 그만큼 정규화 상수가 커집니다.
Z=(2π)n/2detΣ
Σ=I이면 (2π)n/2이고, 이는 104강의 2π를 n번 곱한 것입니다.
140강에서 이 분포를 정면으로 다룹니다. 등고선이 87강의 타원이고, 그 축이 Σ의 고유벡터이며 반축의 길이가 λi에 비례합니다. 99강 심화 3에서 헤세와 정밀도행렬을 대응시킨 표가 여기서 구체화됩니다.
확률변수의 변환도 같은 공식입니다.
pY(y)=pX(x)∣detJg∣−1
적분에서는 ∣detJ∣를 곱하고 밀도에서는 나눕니다. 방향이 반대인 것은, 적분에서는 조각의 부피를 세고 밀도에서는 단위부피당 확률을 재기 때문입니다. 부피가 늘면 밀도는 묽어집니다. 139강에서 정리합니다.
바로 확인 5.
확인 5-1. 반축 a,b인 타원의 넓이를 쓰세요.
답. πab입니다.
확인 5-2. 다변량 가우스의 정규화 상수를 쓰세요.
답. (2π)n/2detΣ입니다.
확인 5-3. 밀도 변환에서 야코비를 곱합니까 나눕니까?
답. 나눕니다. 부피가 늘면 밀도가 묽어지기 때문입니다.
| 개념 |
내용 |
| 변수변환 공식 |
∬fdxdy=∬f(g)∣detJ∣dudv |
| 조건 |
C1, 내부에서 일대일, detJ=0 |
| 바꿀 것 셋 |
영역, 함수, 넓이 요소 |
| 역방향 |
∣detJg∣=1/∣detJh∣ |
| 설계 원칙 |
영역의 조건에 나타나는 식을 변수로 |
| 변환 |
∣detJ∣ |
| 선형 A\mathbf |
∣detA∣ |
| 극 |
r |
| u=x+y, v=x−y |
1/2 |
| x=au, y=bv |
ab |
| 원기둥 |
r |
| 구면 |
ρ2sinϕ |
| 자주 하는 실수 |
바로잡기 |
| 야코비를 빠뜨립니다 |
셋을 모두 바꿉니다 |
| 절댓값을 잊습니다 |
넓이는 양수입니다 |
| 방향을 거꾸로 씁니다 |
역수 관계를 확인합니다 |
| 밀도에서 곱합니다 |
밀도는 나눕니다 |
| 일대일을 확인하지 않습니다 |
같은 곳을 두 번 셉니다 |
문제 6. A=(3005)의 부피 배율을 쓰세요.
답. 15입니다.
문제 7. 회전행렬의 부피 배율을 쓰세요.
답. 1입니다. detQ=1이므로 넓이가 보존됩니다.
문제 8. x=au, y=bv의 야코비 행렬식을 쓰세요.
답. ab입니다.
문제 9. 반축 2와 5인 타원의 넓이를 구하세요.
답. 10π입니다.
문제 10. u=2x+y, v=x−y의 ∣detJh∣를 구하세요.
답. ∣−2−1∣=3입니다.
문제 11. 문제 10에서 ∣detJg∣를 구하세요.
답. 1/3입니다.
문제 12. 극좌표의 야코비 행렬식을 쓰세요.
답. r입니다.
문제 13. 변수변환 공식의 조건 세 가지를 쓰세요.
답. C1, 내부에서 일대일, detJ=0입니다.
문제 14. 극좌표에서 r=0이 조건을 어기는데 왜 괜찮습니까?
답. 그 집합의 넓이가 0이라 적분에 영향이 없습니다.
문제 15. detΣ=16이고 n=2이면 가우스 정규화 상수를 구하세요.
답. 2π⋅4=8π입니다.
문제 16. 확률밀도 변환에서 야코비가 어떻게 들어갑니까?
답. pY=pX∣detJ∣−1로 나눕니다.
문제 17. 선형변환의 야코비가 상수인 이유를 쓰세요.
답. 선형사상의 미분이 자기 자신이기 때문입니다.
문제 18. ∣detJ∣>1이면 부피는 어떻게 됩니까?
답. 늘어납니다.
심화 1. 변수변환 공식을 선형근사로 설명하세요.
정식 증명은 측도론이 필요하지만 왜 성립하는지는 이 과목의 도구로 설명됩니다.
(u,v) 평면에서 작은 직사각형 R을 잡습니다. 한 꼭짓점이 a이고 변이 Δu, Δv라 합니다.
95강의 선형근사를 씁니다.
g(a+h)≈g(a)+Jh
따라서 R의 상은 근사적으로 J가 R을 보낸 평행사변형입니다. 두 변이
J(Δu0)과J(0Δv)
이고, 79강에서 두 벡터가 이루는 평행사변형의 넓이가 행렬식의 절댓값이라 했으므로
Area(g(R))≈∣detJ(a)∣ΔuΔv
이제 리만합을 세웁니다. D′를 작은 직사각형으로 나누면
∬DfdA≈k∑f(g(ak))⋅Area(g(Rk))≈k∑f(g(ak))∣detJ(ak)∣ΔuΔv
오른쪽이 정확히 ∬D′f(g)∣detJ∣dudv의 리만합입니다. 극한을 취하면 공식이 나옵니다.
엄밀하게 하려면 근사의 오차가 합쳐도 0으로 감을 보여야 하고, 여기에 g가 C1이라는 조건이 쓰입니다. 100강 심화 3의 오차 상한과 같은 종류의 논증입니다.
미분이 선형근사이므로 국소적으로는 선형변환이고, 그 부피 배율이 행렬식입니다
95강 심화 5의 "미분은 선형사상"이 여기서 값어치를 냅니다. 79강의 선형대수 결과를 국소적으로 적용할 수 있는 근거가 그것입니다.
심화 2. 조건이 깨지면 무슨 일이 생기는지 보이세요.
첫째, 일대일이 아니면 두 번 셉니다.
g(u,v)=(u2,v)를 [−1,1]×[0,1]에서 봅니다. u와 −u가 같은 곳으로 가므로 일대일이 아닙니다. 상은 [0,1]×[0,1]이고 넓이가 1인데
∬∣detJ∣dudv=∫−11∫01∣2u∣dvdu=∫−112∣u∣du=2
두 배가 나옵니다. 정의역을 [0,1]로 제한하면 1이 되어 맞습니다.
둘째, detJ=0이면 정보가 사라집니다.
g(u,v)=(u,u)는 평면 전체를 직선으로 보냅니다. detJ=0이고 상의 넓이가 0입니다. 이런 변환으로는 적분을 옮길 수 없습니다.
셋째, C1이 아니면 야코비가 정의되지 않습니다.
실무에서 조심할 자리를 정리합니다.
| 상황 |
위험 |
| 극좌표의 θ 범위를 2π 넘게 |
두 번 셉니다 |
| r<0을 허용 |
같은 점을 두 번 |
| 특이점을 지나는 변환 |
차원이 무너집니다 |
| 조각별로 정의된 변환 |
이음매에서 확인 필요 |
흐름 기반 생성모형에서 이 조건들이 설계 제약이 됩니다. 273강의 정규화 흐름은 가역이어야 하므로 일대일과 detJ=0을 구조적으로 보장하는 층만 쓸 수 있습니다.
| 층 |
가역성 보장 방식 |
| 아핀 결합 |
삼각행렬이라 det가 대각의 곱 |
| 자기회귀 |
삼각 구조 |
| 가역 1×1 합성곱 |
LU 분해로 det 관리 |
70강의 LU 분해가 여기서 쓰입니다. 행렬식을 싸게 계산하려고 삼각 구조를 만드는 것이며, 98강 심화 2에서 예고한 log∣detJ∣의 합 구조와 이어집니다.
심화 3. 확률변수의 변환 공식을 유도하세요.
문제 5에서 밀도가 야코비로 나뉜다고 했습니다. 유도합니다.
X가 밀도 pX를 갖고 Y=g(X)라 합니다. g가 가역이고 C1이라 두면, 임의의 영역 B에 대해
P(Y∈B)=P(X∈g−1(B))=∫g−1(B)pX(x)dx
여기에 변수변환을 적용합니다. x=g−1(y)로 두면
=∫BpX(g−1(y))∣detJg−1(y)∣dy
이 식이 모든 B에 대해 성립하므로 피적분함수가 곧 pY입니다.
pY(y)=pX(g−1(y))∣detJg−1(y)∣
문제 4의 역수 관계를 쓰면 다른 형태가 됩니다.
pY(y)=∣detJg(x)∣pX(x)(y=g(x))
두 식이 같은 것이며, 어느 쪽이 편한지에 따라 골라 씁니다.
해석이 명확합니다.
확률은 보존되고 부피만 바뀌므로 밀도가 그만큼 조정됩니다
∣detJ∣>1이면 부피가 늘어 밀도가 묽어지고, <1이면 진해집니다.
한 변수의 경우를 확인하면 익숙한 공식이 나옵니다.
pY(y)=∣g′(x)∣pX(x)
흐름 기반 모형의 로그가능도가 이 식에서 나옵니다. 층을 L개 쌓으면
logpY(y)=logpX(x)−i=1∑Llog∣detJi∣
곱이 합이 되어 다룰 수 있습니다. 273강에서 이 구조를 씁니다.
심화 4. 좌표변환이 최적화에서 무엇에 대응하는지 논하세요.
이 강의에서 좌표를 바꿔 계산을 쉽게 만들었습니다. 최적화에도 같은 발상이 있습니다.
96강 심화 3에서 최급강하 방향이 노름에 의존한다고 했고, 99강 심화 1에서 좌표를 바꾸면 조건수가 변한다고 했습니다.
x=Py⟹H→P⊤HP
P를 잘 고르면 조건수를 줄일 수 있습니다. 이것이 전처리입니다.
| 대상 |
좌표변환의 목적 |
| 적분 |
영역이나 함수를 단순하게 |
| 최적화 |
조건수를 작게 |
| 확률 |
분포를 표준형으로 |
| 선형계 |
수렴을 빠르게 |
넷째 줄이 91강과 이어집니다. 조건수가 큰 선형계를 풀 때 전처리행렬 M을 곱해 M−1Ax=M−1b를 푸는데, 이것도 좌표변환입니다.
P=Σ−1/2 같은 선택이 여러 곳에서 나타납니다.
| 이름 |
하는 일 |
| 백색화 |
Σ→I로 만듭니다 |
| 뉴턴법 |
H→I로 만듭니다 |
| 배치 정규화 |
층마다 척도를 되돌립니다 |
| 자연경사법 |
피셔 정보행렬로 잽니다 |
셋째 줄이 흥미롭습니다. 251강의 배치 정규화가 하는 일이 각 층의 입력 분포를 표준화하는 것이며, 이는 손실 지형의 조건수를 낮춥니다. 이 강의의 언어로는 좌표를 바꿔 등고선을 원에 가깝게 만드는 일입니다.
같은 문제를 다른 좌표에서 보면 쉬워집니다
다만 대가가 있습니다. 적분에서 야코비를 치렀듯, 최적화에서도 P를 계산하고 곱하는 비용이 듭니다. 뉴턴법이 H−1을 요구하는 것이 그 비용이며, 112강에서 이 저울질을 다룹니다.
심화 5. 야코비 행렬식을 싸게 계산하는 구조들을 정리하세요.
n×n 행렬식을 일반적으로 계산하려면 O(n3)이 듭니다. 78강에서 LU 분해로 계산한다고 했습니다.
n이 크면 이것도 비쌉니다. 그래서 행렬식이 싸게 나오는 구조를 설계합니다.
| 구조 |
det |
비용 |
| 대각 |
대각 원소의 곱 |
O(n) |
| 삼각 |
대각 원소의 곱 |
O(n) |
| 직교 |
±1 |
O(1) |
| I+\mathbf{u}\mathbf{v}^ |
1+\mathbf{v}^{\top}\mathbf |
O(n) |
| 블록 삼각 |
블록 행렬식의 곱 |
블록 크기에 의존 |
넷째 줄이 행렬 판별 보조정리이며 69강 심화의 셔먼-모리슨과 짝을 이룹니다.
이 표가 흐름 기반 모형의 설계도입니다.
| 층 |
구조 |
log∣detJ∣ |
| 성분별 변환 |
대각 |
∑log∣fi′∣ |
| 아핀 결합 |
삼각 |
\sum s_ |
| 자기회귀 |
삼각 |
대각의 합 |
| 회전 |
직교 |
0 |
| 평면 흐름 |
랭크 1 갱신 |
log∣1+v⊤u∣ |
둘째 줄의 아핀 결합이 대표적입니다. 입력을 두 조각으로 나눠
y1=x1,y2=x2⊙es(x1)+t(x1)
로 두면 야코비가 블록 하삼각이고
detJ=i∏esi(x1)⟹log∣detJ∣=i∑si
s와 t는 아무리 복잡한 신경망이어도 됩니다. 야코비 행렬식이 그 복잡함에 무관하게 s의 합으로 나오기 때문입니다. 역변환도 명시적입니다.
제약을 구조에 심으면 표현력을 잃지 않고 계산을 얻습니다
99강 심화 4의 Hv와 같은 발상입니다. 큰 행렬을 만들지 않고 필요한 양만 계산합니다.
심화 6. 106강으로 어떻게 이어지는지 정리하세요.
이 강의에서 평면의 변수변환을 세웠습니다. 106강이 차원을 하나 올립니다.
∭EfdV=∭E′f(g)∣detJ∣dudvdw
형태가 같고 야코비가 3×3이 될 뿐입니다.
두 표준 좌표계를 다룹니다.
원기둥좌표는 극좌표에 z를 붙인 것입니다.
(x,y,z)=(rcosθ, rsinθ, z),∣detJ∣=r
z 방향은 그대로이므로 야코비가 극좌표와 같습니다. 축 대칭인 물체에 씁니다.
구면좌표는 원점에서의 거리와 두 각으로 잡습니다.
(x,y,z)=(ρsinϕcosθ, ρsinϕsinθ, ρcosϕ),∣detJ∣=ρ2sinϕ
ρ2sinϕ의 두 인자가 각각 뜻을 갖습니다. ρ2은 구면의 넓이가 ρ2에 비례하기 때문이고, sinϕ는 위도에 따라 경도선 사이 간격이 달라지기 때문입니다. 극지방에서 경도선이 모이는 것이 그것입니다.
확인해 봅니다.
∫02π∫0πρ2sinϕdϕdθ=2π⋅2⋅ρ2=4πρ2
구면의 넓이가 나옵니다. 104강 심화 3에서 S2(ρ)=4πρ2이라 한 것과 맞습니다.
106강에서 다룰 것들을 정리합니다.
| 항목 |
내용 |
| 삼중적분의 정의 |
리만합의 극한, 부피 |
| 반복적분 |
세 번의 한 변수 적분 |
| 원기둥좌표 |
∣detJ∣=r |
| 구면좌표 |
∣detJ∣=ρ2sinϕ |
| 부피와 질량 |
밀도의 적분 |
106강으로 03단원이 끝나고 04단원에서 최적화로 돌아갑니다. 이 단원에서 세운 적분이 S6의 확률 전체와 이어지며, 235강의 확률적 최적화에서 다시 만납니다.
import numpy as np
# --- 문제 1: 선형변환의 부피 배율 ---------------------------------------
A = np.array([[2.0, 1.0], [1.0, 3.0]])
print(" T(u,v) = A (u,v), A =\n", A)
print(" det A = %.1f" % np.linalg.det(A))
print(" 단위정사각형의 상은 넓이 %.1f 인 평행사변형" % abs(np.linalg.det(A)))
# 몬테카를로로 확인: 상 영역의 넓이
rng = np.random.default_rng(20260809)
N = 2000000
P = rng.random((N, 2)) # 단위정사각형
Q = P @ A.T # 상
Ainv = np.linalg.inv(A)
box_lo = Q.min(axis=0); box_hi = Q.max(axis=0)
S = rng.random((N, 2))*(box_hi - box_lo) + box_lo
back = S @ Ainv.T
inside = np.all((back >= 0) & (back <= 1), axis=1).mean()
print(" 수치 넓이 %.4f" % (inside*np.prod(box_hi - box_lo)))
# T(u,v) = A (u,v), A =
# [[2. 1.]
# [1. 3.]]
# det A = 5.0
# 단위정사각형의 상은 넓이 5.0 인 평행사변형
# 수치 넓이 4.9996
# --- 문제 2: 변수변환 공식으로 적분 -------------------------------------
# int over parallelogram T([0,1]^2) of (x + y)
print(" D = T([0,1]^2) 위에서 x+y 를 적분")
print(" x+y = (2u+v) + (u+3v) = 3u + 4v")
print(" = int_0^1 int_0^1 (3u + 4v) |det A| du dv = (3/2 + 2) * 5 = %.4f" % ((1.5 + 2)*5))
M = 1500
g = (np.arange(M) + 0.5)/M
U, V = np.meshgrid(g, g, indexing='ij')
print(" 수치 %.6f" % (((3*U + 4*V)*abs(np.linalg.det(A))).sum()/M**2))
# D = T([0,1]^2) 위에서 x+y 를 적분
# x+y = (2u+v) + (u+3v) = 3u + 4v
# = int_0^1 int_0^1 (3u + 4v) |det A| du dv = (3/2 + 2) * 5 = 17.5000
# 수치 17.500000
# --- 문제 3: 영역을 단순하게 만드는 변환 --------------------------------
# D: 1<=x+y<=3, 0<=x-y<=2 위에서 (x+y)^2 을 적분. u=x+y, v=x-y
print(" D: 1<=x+y<=3, 0<=x-y<=2. u=x+y, v=x-y 로 두면 직사각형")
print(" x=(u+v)/2, y=(u-v)/2 이므로 야코비")
Jg = np.array([[0.5, 0.5], [0.5, -0.5]])
print(" J =\n", Jg)
print(" det J = %.1f, |det J| = %.1f" % (np.linalg.det(Jg), abs(np.linalg.det(Jg))))
print(" int_1^3 int_0^2 u^2 * (1/2) dv du = (1/2)*2*[u^3/3]_1^3 = %.6f" % ((1/2)*2*(27-1)/3))
K = 3000
uu = 1 + 2*(np.arange(K) + 0.5)/K
vv = 2*(np.arange(K) + 0.5)/K
UU, VV = np.meshgrid(uu, vv, indexing='ij')
print(" 수치 %.6f" % ((UU**2*0.5).sum()*(2/K)*(2/K)))
# D: 1<=x+y<=3, 0<=x-y<=2. u=x+y, v=x-y 로 두면 직사각형
# x=(u+v)/2, y=(u-v)/2 이므로 야코비
# J =
# [[ 0.5 0.5]
# [ 0.5 -0.5]]
# det J = -0.5, |det J| = 0.5
# int_1^3 int_0^2 u^2 * (1/2) dv du = (1/2)*2*[u^3/3]_1^3 = 8.666667
# 수치 8.666667
# det J 가 음수여도 절댓값을 씁니다. 넓이는 양수입니다.
# --- 문제 4: 역방향 야코비 ----------------------------------------------
print(" 역변환 u=x+y, v=x-y 의 야코비")
Jh = np.array([[1.0, 1.0], [1.0, -1.0]])
print(" det = %.1f, 1/|det| = %.1f" % (np.linalg.det(Jh), 1/abs(np.linalg.det(Jh))))
print(" 정변환 det J = %.1f 와 곱하면 %.1f" % (np.linalg.det(Jg), np.linalg.det(Jg)*np.linalg.det(Jh)))
# 역변환 u=x+y, v=x-y 의 야코비
# det = -2.0, 1/|det| = 0.5
# 정변환 det J = -0.5 와 곱하면 1.0
# 서로 역수입니다. 어느 쪽을 계산해도 됩니다.
# --- 문제 5: 타원의 넓이와 n차원 가우스 ---------------------------------
a, b = 3.0, 2.0
print(" 타원 x^2/9 + y^2/4 <= 1 을 x=3u, y=2v 로 보내면 단위원판")
print(" |det J| = %.1f 이므로 넓이 = pi * %.1f = %.6f" % (a*b, a*b, np.pi*a*b))
Sg = np.array([[4.0, 1.0], [1.0, 2.0]]) # 공분산
print(" 다변량 가우스: Sigma =\n", Sg)
print(" det Sigma = %.1f, 정규화 상수 (2pi)^{n/2} sqrt(det Sigma) = %.6f"
% (np.linalg.det(Sg), (2*np.pi)**1.0 * np.sqrt(np.linalg.det(Sg))))
L = np.linalg.cholesky(Sg)
Z = rng.standard_normal((2000000, 2)) @ L.T
print(" 표본 공분산 =\n", np.round(np.cov(Z.T), 4))
# 타원 x^2/9 + y^2/4 <= 1 을 x=3u, y=2v 로 보내면 단위원판
# |det J| = 6.0 이므로 넓이 = pi * 6.0 = 18.849556
# 다변량 가우스: Sigma =
# [[4. 1.]
# [1. 2.]]
# det Sigma = 7.0, 정규화 상수 (2pi)^{n/2} sqrt(det Sigma) = 16.623746
# 표본 공분산 =
# [[3.998 0.9992]
# [0.9992 2.0002]]
# 콜레스키 L 로 표준정규를 보내면 공분산이 Sigma 가 됩니다. |det L| = sqrt(det Sigma) 입니다.
문제 5가 세 강의를 합칩니다. 104강의 가우스 적분, 이 강의의 변수변환, 87강의 콜레스키 분해가 함께 쓰여 다변량 정규분포의 정규화 상수가 나옵니다.
Z=(2π)n/2detΣ
detΣ가 곧 부피 배율입니다. 106강에서 차원을 하나 더 올립니다.
- 변수변환 공식을 쓰세요.
- 동시에 바꿔야 할 세 가지를 쓰세요.
- 정리의 조건 세 가지를 쓰세요.
- 절댓값을 쓰는 이유를 쓰세요.
- 선형변환의 야코비와 부피 배율을 쓰세요.
- 변환 설계의 원칙을 쓰세요.
- 정방향과 역방향 야코비 행렬식의 관계를 쓰세요.
- 그 근거를 쓰세요.
- 다변량 가우스의 정규화 상수를 쓰세요.
- 확률밀도 변환에서 야코비가 어떻게 들어갑니까?
정답.
- ∬fdxdy=∬f(g)∣detJ∣dudv입니다.
- 영역, 피적분함수, 넓이 요소입니다.
- C1이고 내부에서 일대일이며 detJ=0입니다.
- 넓이는 양수이고 다변수에서는 영역에 방향을 주지 않기 때문입니다.
- 야코비가 A 자신이고 배율이 ∣detA∣입니다.
- 영역의 조건에 나타나는 식을 새 변수로 삼습니다.
- 서로 역수입니다.
- 연쇄법칙에서 JgJh=I이고 행렬식이 곱셈적이기 때문입니다.
- (2π)n/2detΣ입니다.
- 나눕니다. 부피가 늘면 밀도가 묽어지기 때문입니다.
| 기호 |
읽는 법 |
뜻 |
| ∣detJg∣ |
야코비 행렬식의 절댓값 |
국소 부피 배율입니다 |
| \dfrac{\partial(x,y)} |
야코비 행렬식 |
같은 것의 다른 표기입니다 |
| \mathbf |
변환 |
새 좌표에서 옛 좌표로 갑니다 |
| \mathbf{h}=\mathbf{g}^ |
역변환 |
야코비가 역수입니다 |
| C^ |
연속미분가능 |
변환에 요구되는 매끈함입니다 |
| \Sigma=LL^ |
콜레스키 분해 |
87강에서 다뤘습니다 |
| (2\pi)^{n/2}\sqrt |
가우스 정규화 상수 |
140강에서 씁니다 |
| p_{Y}=p_{X}\lvert\det J\rvert^ |
밀도 변환 |
139강에서 정리합니다 |
다음 106강에서는 삼중적분과 부피를 다룹니다. 이 강의의 공식이 그대로 3차원으로 확장되며, 원기둥좌표와 구면좌표의 야코비 행렬식을 구합니다. 특히 구면좌표의 ρ2sinϕ에서 4πρ2이 나오는 것을 확인하고, 이것으로 03단원이 끝납니다.