154강과 155강의 연쇄는 상태가 유한하고 시간이 이산이었습니다. 이 강의는 두 제약을 차례로 풉니다.
가장 단순한 마르코프 연쇄에서 출발합니다.
141강에서 이미 다룬 독립 합인데, 이제 을 시간으로 읽습니다. 같은 대상을 시간의 눈으로 보면 전혀 다른 질문이 나옵니다.
| 질문 | 답하는 문제 |
|---|---|
| 얼마나 멀리 가는가 | 문제 1 |
| 돌아오는가 | 문제 2 |
| 걸음을 잘게 쪼개면 | 문제 3 |
| 그 극한은 어떤 성질인가 | 문제 4 |
| 표류와 확산을 함께 넣으면 | 문제 5 |
셋째 질문의 답이 브라운 운동이며, 143강의 중심극한정리가 하나의 값이 아니라 경로 전체에 적용된 결과입니다.
그리고 그 위에서 확률미분방정식이 세워집니다. 119강 심화 5에서 미리 본 학습의 잡음 흐름, 261강의 확산모형이 모두 이 강의의 언어를 씁니다.
문제. 대칭 랜덤워크를 걸음 걷습니다.
(1) 을 재세요.
(2) 을 확인하세요.
(3) 거리가 에 어떻게 의존하는지 쓰세요.
생각의 실마리. 이므로 평균 위치는 원점입니다. 얼마나 흩어지는지를 물어야 의미가 있습니다.
풀이. (1)(2)(3) 검산 결과입니다.
| 수치 | \sqrt | 분산 수치 | 이론 | ||
|---|---|---|---|---|---|
| 10^ | 10^ |
**분산이 정확히 **입니다. 133강의 독립 합의 가법성이며 각 걸음의 분산이 이기 때문입니다.
**평균 거리가 **입니다. 143강의 중심극한정리로 이므로 입니다.
마지막 열이 근처로 안정됩니다. 이며 정규근사가 맞습니다.
이 문제에서 배우는 것: 확산의 척도.
확산 법칙. 랜덤워크의 거리는 시간의 제곱근으로 자랍니다.
**직진하면 인데 무작위로 걸으면 **입니다. 왔다 갔다 하며 대부분 상쇄되기 때문입니다.
| 현상 | 거리와 시간 |
|---|---|
| 등속 운동 | 에 비례 |
| 확산 | 에 비례 |
| 표류 있는 확산 | 큰 에서 가 이깁니다 |
142강의 과 같은 뿌리입니다. 표본평균 의 오차가 인 것과 자체가 인 것은 같은 사실을 두 방향에서 본 것입니다.
물리에서 이 법칙이 확산계수를 정의합니다. 잉크가 물에 퍼지는 거리, 분자의 이동, 열의 전파가 모두 이며, 147강의 몬테카를로 오차도 같은 이유로 입니다.
바로 확인 1.
확인 1-1. 의 평균과 분산을 쓰세요.
답. 과 입니다.
확인 1-2. 의 근사식을 쓰세요.
답. 입니다.
확인 1-3. 거리가 시간에 어떻게 의존하는지 쓰세요.
답. 제곱근에 비례합니다.
문제. 차원을 올려 가며 원점 복귀를 조사합니다.
(1) 걸음 안에 복귀한 비율을 재세요.
(2) 평균 복귀 횟수도 재세요.
(3) 차원에 따라 무엇이 달라지는지 판정하세요.
생각의 실마리. 155강 심화 4에서 무한 상태 연쇄가 재귀일 수도 일시적일 수도 있다고 했습니다. 랜덤워크가 그 경계를 보여 주는 표준 예입니다.
풀이. (1)(2)(3) 만 번 시행한 결과입니다.
| 차원 | 걸음 안에 복귀한 비율 | 평균 복귀 횟수 | 이론 |
|---|---|---|---|
| (재귀) | |||
| (재귀) | |||
| (일시적) | |||
| (일시적) | |||
| 에 가까움 | (일시적) |
는 재귀이고 은 일시적입니다. 폴리아의 정리입니다.
의 수치가 인 것은 유한 시간 때문입니다. 이론은 확률 로 돌아오지만 그 시간이 아주 길 수 있으며, 걸음으로는 부족한 경우가 있습니다.
가 로 훨씬 작습니다. 재귀는 맞지만 수렴이 매우 느립니다. 복귀 확률이 이라 로그로만 올라갑니다.
은 유한 시간 결과가 이론값에 이미 가깝습니다. 돌아올 거면 일찍 돌아오기 때문입니다.
이 문제에서 배우는 것: 폴리아의 정리.
폴리아의 정리. 의 대칭 랜덤워크는 에서 재귀이고 에서 일시적입니다.
증명의 뼈대가 급수의 수렴입니다. 원점에 있을 확률의 합이 발산하면 재귀이고 수렴하면 일시적인데, 이므로 다음이 갈림점입니다.
18강의 급수가 여기서 확률의 결론을 냅니다. 이고 이면 발산합니다.
| 차원 | 복귀 확률 | 이름 |
|---|---|---|
| 재귀 | ||
| 재귀 | ||
| 폴리아 상수 | ||
| 일시적 | ||
| 일시적 |
"술취한 사람은 집에 돌아오지만 술취한 새는 못 돌아온다."
복귀 횟수가 재귀성을 더 분명히 보여 줍니다. 재귀이면 무한히 자주 돌아오고 일시적이면 유한 번만 돌아옵니다. 검산에서 이 번, 가 번입니다.
146강 심화 5의 고차원 측도 집중과 같은 계열입니다. 차원이 오르면 공간이 넓어져 우연히 같은 자리에 있기가 어려워집니다.
바로 확인 2.
확인 2-1. 폴리아의 정리를 쓰세요.
답. 에서 재귀이고 에서 일시적입니다.
확인 2-2. 증명의 갈림점이 되는 급수를 쓰세요.
답. 이며 에서 발산합니다.
확인 2-3. 차원의 복귀 확률을 쓰세요.
답. 폴리아 상수 입니다.
문제. 걸음을 개로 쪼개고 으로 나눕니다.
(1) 의 분포를 확인하세요.
(2) 경로의 공분산을 재세요.
(3) 극한이 무엇인지 쓰세요.
생각의 실마리. 143강은 한 시점의 분포만 말했습니다. 이제 여러 시점을 함께 보면 경로 전체의 극한이 나옵니다.
풀이. (1) 검산 결과입니다.
| 평균 | 분산 | 왜도 | 표준정규와의 최대 거리 | |
|---|---|---|---|---|
거리가 이 배가 될 때마다 약 배로 줄어듭니다. 143강 문제 4의 베리-에센 이며, 대칭이라 왜도가 이라 빠릅니다.
(2) 에서 두 시점의 공분산입니다.
| 공분산 수치 | 차이 | |||
|---|---|---|---|---|
**공분산이 정확히 **입니다.
(3) 극한이 브라운 운동입니다.
이 문제에서 배우는 것: 스케일링 극한.
돈스커의 정리. 걸음을 으로 줄이고 시간을 으로 늘리면 경로가 브라운 운동으로 수렴합니다.
143강의 중심극한정리를 경로로 올린 것이라 함수 중심극한정리라고도 부릅니다.
브라운 운동의 정의. 다음 넷을 만족하는 과정입니다.
| 조건 | 내용 |
|---|---|
| 시작점 | |
| 독립 증분 | 겹치지 않는 구간의 증분이 독립 |
| 정규 증분 | |
| 연속 경로 | 경로가 연속입니다 |
공분산이 인 것이 둘째와 셋째에서 나옵니다. 이면 이고 뒤쪽이 와 독립이므로 입니다.
왜 개별 걸음의 분포가 상관없는가. 중심극한정리 덕분입니다. 걸음이 이든 정규든 균등이든 분산만 유한하면 같은 극한에 이르며, 이것을 보편성이라 부릅니다.
140강의 다변량 정규가 여기서 무한 차원이 됩니다. 브라운 운동은 유한 개 시점을 뽑으면 언제나 다변량 정규이며, 공분산행렬이 인 가우스 과정입니다.
바로 확인 3.
확인 3-1. 스케일링 극한의 표준화를 쓰세요.
답. 시간을 배 늘리고 값을 으로 나눕니다.
확인 3-2. 브라운 운동의 공분산을 쓰세요.
답. 입니다.
확인 3-3. 개별 걸음의 분포가 극한에 남는지 쓰세요.
답. 남지 않으며 분산만 유한하면 같은 극한입니다.
문제. 구간 을 조각으로 나눠 변동을 잽니다.
(1) 이차변동을 재세요.
(2) 일차변동을 재세요.
(3) 경로가 미분가능한지 판정하세요.
생각의 실마리. 매끄러운 함수는 조각을 잘게 나눌수록 입니다. 브라운 운동에서는 어떻게 되겠습니까.
풀이. (1)(2) 검산 결과입니다.
| 이차변동 | 이론 | 일차변동 | \sqrt | |
|---|---|---|---|---|
| 10^ | ||||
| 10^ |
이차변동이 정확히 로 고정되고 일차변동이 으로 발산합니다.
(3) 미분되지 않습니다. 일차변동이 무한이면 어느 구간에서도 유계변동이 아니고, 따라서 미분가능한 점이 없습니다.
증분의 독립성과 정규성도 확인했습니다.
| 항목 | 수치 | 이론 |
|---|---|---|
| 증분 의 분산 | ||
| 증분 의 분산 | ||
| 두 증분의 상관 |
이 문제에서 배우는 것: 이차변동이 시간입니다.
이차변동. 분할을 잘게 하면
조각이면 각 증분의 분산이 이고 그것이 개이므로 합이 입니다. 그리고 분산이 이라 흔들림도 사라집니다.
| 함수 | 일차변동 | 이차변동 |
|---|---|---|
| 매끄러운 함수 | 유한 | |
| 브라운 운동 | 무한 |
이 표 한 줄이 이토 미적분의 출발점입니다. 보통 미적분에서 은 무시했는데, 브라운 운동에서는 라 무시할 수 없습니다.
이토 공식. 가 두 번 미분가능하면
두 번째 항이 보통 미적분에는 없습니다. 테일러 전개의 차 항에서 가 살아남기 때문이며, 문제 5의 이토 보정이 이 항입니다.
경로가 연속인데 어디에서도 미분되지 않습니다. 그림으로 보면 아무리 확대해도 같은 정도로 거칠며, 자기유사한 구조입니다. 실제로 와 가 같은 분포입니다.
바로 확인 4.
확인 4-1. 브라운 운동의 이차변동을 쓰세요.
답. 구간 길이 와 같습니다.
확인 4-2. 경로가 미분되지 않는 이유를 쓰세요.
답. 일차변동이 무한이기 때문입니다.
확인 4-3. 이토 공식에서 보통 미적분에 없는 항을 쓰세요.
답. 입니다.
문제. 확률미분방정식 두 개를 돌립니다.
(1) 오른슈타인-울렌벡 과정의 정상분포를 확인하세요.
(2) 기하 브라운 운동의 평균과 중앙값을 견주세요.
(3) 차이가 어디에서 오는지 쓰세요.
생각의 실마리. 브라운 운동은 분산이 로 계속 커집니다. 되돌리는 힘을 넣으면 어떻게 되겠습니까.
풀이. (1) 이며 , 입니다.
| 항목 | 수치 | 이론 |
|---|---|---|
| 정상분포 평균 | ||
| 정상분포 분산 |
퍼지지 않고 멈춥니다. 브라운 운동은 분산이 로 무한히 커지는데, 되돌리는 힘이 있으면 에서 균형을 이룹니다.
(2) 이며 , 입니다.
| 항목 | 수치 | 이론 |
|---|---|---|
| 중앙값 | ||
| 의 평균 | ||
| 의 분산 |
(3) 평균은 인데 중앙값은 그보다 작습니다.
이 문제에서 배우는 것: 확률미분방정식과 이토 보정.
확률미분방정식.
| 과정 | 표류 | 확산 | 성질 |
|---|---|---|---|
| 브라운 운동 | 분산이 | ||
| 표류 브라운 운동 | 평균이 | ||
| 오른슈타인-울렌벡 | 정상분포 | ||
| 기하 브라운 운동 | 로그가 표류 브라운 운동 |
셋째 줄이 155강과 이어집니다. 오른슈타인-울렌벡은 정상분포를 갖는 연속시간 과정이며, 평균 회귀가 155강의 기약성과 같은 역할을 합니다.
이토 보정. 기하 브라운 운동의 로그는 표류가 가 아니라 입니다.
문제 4의 이토 공식에 를 넣은 결과입니다. 이고 확산이 이므로 보정항이 입니다.
132강 심화의 젠센 부등식이 그대로 나타납니다. 로그가 오목하므로 이며, 그 차이가 입니다.
| 해석 | 내용 |
|---|---|
| 평균 | 로 자랍니다 |
| 중앙값 | 로 자랍니다 |
| 전형적인 경로 | 중앙값을 따릅니다 |
| 평균을 끌어올리는 것 | 드물게 매우 큰 값 |
셋째와 넷째 줄이 실무의 함정입니다. 변동성이 크면 평균 수익률이 양수여도 거의 모든 경로가 손실일 수 있습니다. 이면 중앙값이 줄어듭니다.
261강의 확산모형이 이 언어를 씁니다. 자료에 잡음을 더하는 순방향 과정이 확률미분방정식이고, 학습하는 것은 그 과정을 시간 역방향으로 도는 방정식입니다. 역방향에도 표류와 확산이 있으며 표류에 점수함수가 들어갑니다.
119강 심화 5의 학습 흐름도 같은 꼴입니다. 미니배치 잡음이 확산 항이 되고 기울기가 표류 항이 되며, 236강에서 그 정상분포가 학습률과 배치 크기로 정해짐을 봅니다.
바로 확인 5.
확인 5-1. 오른슈타인-울렌벡의 정상분포를 쓰세요.
답. 입니다.
확인 5-2. 기하 브라운 운동에서 로그의 표류를 쓰세요.
답. 입니다.
확인 5-3. 이토 보정이 어디에서 오는지 쓰세요.
답. 이토 공식의 이차 항이며 때문입니다.
| 개념 | 식 |
|---|---|
| 랜덤워크 | , |
| 분산 | |
| 평균 거리 | \mathbb{E}\lvert S_{n}\rvert\approx\sqrt |
| 폴리아 정리 | 재귀, 일시적 |
| 재귀 판정 | 의 수렴 여부 |
| 돈스커 정리 | |
| 브라운 공분산 | |
| 이차변동 | |
| 이토 공식 | |
| 확률미분방정식 | |
| 오른슈타인-울렌벡 | 정상분포 |
| 이토 보정 | 의 표류가 |
| 차원 | 복귀 확률 |
|---|---|
| 함수 | 일차변동 | 이차변동 |
|---|---|---|
| 매끄러운 함수 | 유한 | |
| 브라운 운동 | 무한 |
| 자주 하는 실수 | 바로잡기 |
|---|---|
| 거리가 에 비례한다고 봅니다 | 입니다 |
| 모든 차원에서 돌아온다고 봅니다 | 은 일시적입니다 |
| 걸음의 분포가 극한에 남는다고 봅니다 | 분산만 남습니다 |
| 브라운 경로를 미분합니다 | 어디에서도 미분되지 않습니다 |
| 을 무시합니다 | 와 같아 살아남습니다 |
| 기하 브라운 운동의 평균을 전형이라 봅니다 | 중앙값이 전형입니다 |
문제 6. 의 평균과 분산을 쓰세요.
답. 과 입니다.
문제 7. 의 근사식을 쓰세요.
답. 입니다.
문제 8. 거리가 시간에 어떻게 의존하는지와 그 이유를 쓰세요.
답. 제곱근에 비례하며 왔다 갔다 하며 상쇄되기 때문입니다.
문제 9. 폴리아의 정리를 쓰세요.
답. 에서 재귀이고 에서 일시적입니다.
문제 10. 재귀성 판정의 급수를 쓰세요.
답. 이며 에서 발산합니다.
문제 11. 차원의 복귀 확률을 쓰세요.
답. 폴리아 상수 입니다.
문제 12. 돈스커의 정리를 쓰세요.
답. 이 브라운 운동으로 수렴합니다.
문제 13. 브라운 운동의 네 조건을 쓰세요.
답. , 독립 증분, 정규 증분, 연속 경로입니다.
문제 14. 브라운 운동의 공분산을 쓰세요.
답. 입니다.
문제 15. 이차변동과 일차변동을 각각 쓰세요.
답. 이차변동은 이고 일차변동은 무한입니다.
문제 16. 이토 공식을 쓰세요.
답. 입니다.
문제 17. 오른슈타인-울렌벡의 정상분포를 쓰세요.
답. 입니다.
문제 18. 기하 브라운 운동의 평균과 중앙값을 쓰세요.
답. 와 입니다.
심화 1. 랜덤워크의 정밀한 성질을 정리하세요.
| 성질 | 내용 |
|---|---|
| 반사원리 | |
| 도달시간 | 이지만 확률 |
| 반복로그법칙 | |
| 아크사인 법칙 | 양수로 보낸 시간의 비율이 아크사인분포 |
| 최대점의 분포 | 최댓값에 도달하는 시각도 아크사인 |
셋째 줄이 142강 심화 3에서 예고한 것입니다. 큰 수의 법칙과 중심극한정리 사이의 정확한 진동 폭입니다.
넷째 줄이 직관에 반합니다. 공정한 게임에서 한쪽이 앞선 시간의 비율은 근처가 아니라 이나 근처일 확률이 높습니다. 아크사인분포가 양 끝에서 발산하기 때문이며, "번갈아 앞선다"는 직관이 틀립니다.
둘째 줄이 차원 재귀의 미묘함입니다. 반드시 돌아오는데 평균 시간이 무한이며, 155강 심화 4의 영재귀가 이것입니다.
심화 2. 브라운 운동의 성질을 더 정리하세요.
| 성질 | 내용 |
|---|---|
| 자기유사성 | 와 가 같은 분포 |
| 시간역전 | 도 브라운 운동 |
| 마르코프 | 현재만 알면 미래가 정해집니다 |
| 강마르코프 | 정지시각에서도 성립합니다 |
| 마팅게일 | \mathbb{E}[B_{t}\mid\mathcal{F}_{s}]=B_ |
| 반사원리 | 도달시각 이후를 뒤집어도 같은 분포 |
| 뇌딩거 정리 | 거의 모든 점에서 미분 불가 |
다섯째 줄이 금융과 강화학습을 잇습니다. 마팅게일은 "공정한 게임"의 수학적 정의이며, 137강의 조건부기댓값이 그 언어입니다.
여섯째 줄이 계산 도구입니다. 최댓값의 분포, 첫 도달시각의 분포가 반사원리로 나오며, 심화 1의 첫 줄이 그 이산판입니다.
첫째 줄이 프랙탈 성질입니다. 어느 배율로 확대해도 통계적으로 같은 모습이며, **하우스도르프 차원이 **입니다.
심화 3. 확산과 편미분방정식의 관계를 정리하세요.
브라운 운동의 밀도가 열방정식을 만족합니다.
| 방정식 | 무엇을 기술하는가 |
|---|---|
| 콜모고로프 전진 | 밀도의 시간 전개 |
| 콜모고로프 후진 | 기댓값의 시간 전개 |
| 파인만-칵 공식 | 편미분방정식의 해를 기댓값으로 |
| 열방정식 | 브라운 운동의 밀도 |
셋째 줄이 두 세계를 잇습니다. 편미분방정식을 푸는 대신 경로를 많이 뽑아 평균하면 되며, 147강의 몬테카를로가 고차원에서 유리한 이유가 그대로 적용됩니다.
155강의 정상분포가 여기서 정상 밀도가 됩니다. 오른슈타인-울렌벡의 정상 밀도는 을 푼 것이며 정규분포가 나옵니다.
261강의 확산모형이 콜모고로프 후진 방정식을 씁니다. 역방향 과정의 표류에 가 들어가며, 그 점수함수를 신경망이 학습합니다.
심화 4. 이산과 연속을 오가는 계산법을 정리하세요.
| 방법 | 내용 | 오차 |
|---|---|---|
| 오일러-마루야마 | 강한 차수 | |
| 밀슈타인 | 이토 항을 하나 더 | 강한 차수 |
| 정확한 표집 | 해가 알려진 경우 | 오차 없음 |
| 다층 몬테카를로 | 격자 차이를 쌓습니다 | 비용을 줄입니다 |
첫째 줄이 검산에서 쓴 방법입니다. 가장 단순하고 널리 쓰이지만 강한 수렴 차수가 뿐이라 경로를 정확히 따라가려면 잘게 쪼개야 합니다.
셋째 줄이 기하 브라운 운동과 오른슈타인-울렌벡에서 가능합니다. 두 과정 모두 해가 닫힌 식이라 이산화 오차 없이 뽑을 수 있으며, 검산에서 이산화한 결과가 이론과 소수 넷째 자리까지 맞은 것이 그 확인입니다.
261강의 확산모형이 셋째 줄을 활용합니다. 순방향 과정이 정규라 임의의 시점 의 표본을 한 걸음에 뽑을 수 있으며, 그것이 학습을 가능하게 합니다.
심화 5. 확산 모형이 실무에서 잘못 쓰이는 자리를 정리하세요.
| 실수 | 결과 |
|---|---|
| 기하 브라운 운동의 평균을 기대값으로 봅니다 | 전형적 경로는 중앙값입니다 |
| 정규 증분을 무비판적으로 가정 | 실제 자료는 꼬리가 두껍습니다 |
| 변동성을 상수로 봅니다 | 시간에 따라 변합니다 |
| 이산화 간격을 크게 잡습니다 | 경로가 왜곡됩니다 |
| 연속 경로를 가정 | 실제에는 점프가 있습니다 |
| 마르코프를 가정 | 장기 기억이 있을 수 있습니다 |
둘째 줄이 142강 문제 4와 이어집니다. 금융 수익률은 꼬리가 두꺼워 정규 증분이 극단 사건을 크게 과소평가하며, 143강 심화 5의 넷째 줄이 같은 경고입니다.
다섯째 줄의 대안이 점프 확산입니다. 브라운 운동에 128강의 포아송 과정을 더해 갑작스러운 변화를 담습니다.
넷째 줄이 검산에서도 조심한 부분입니다. 오른슈타인-울렌벡을 로 만 걸음 돌려 정상분포에 확실히 도달하게 했습니다.
심화 6. 기계학습에서 확산이 쓰이는 자리를 정리하세요.
| 자리 | 어떻게 쓰이는가 | 관련 강의 |
|---|---|---|
| 확산모형 | 잡음을 더하고 되돌립니다 | 261강 |
| 점수 기반 생성 | 를 학습합니다 | 261강 |
| 확률경사하강의 극한 | 잡음이 있는 경사흐름 | 236강 |
| 랑주뱅 몬테카를로 | 기울기를 쓰는 표집 | 157강 |
| 신경망의 무한폭 극한 | 가우스 과정 | 213강 |
| 정규화흐름 | 연속시간 판본 | 262강 |
| 탐색의 잡음 | 행동에 확산을 더합니다 | 286강 |
넷째 줄이 157강과 직결됩니다. 목표분포의 로그 기울기를 표류로 쓰면 정상분포가 정확히 목표분포가 되며, 155강 문제 5의 설계를 연속시간으로 옮긴 것입니다.
셋째 줄이 이 강의를 최적화와 잇습니다. 미니배치 기울기의 잡음이 확산 항이 되고, 학습률이 그 세기를 정합니다. 119강 심화 5에서 미리 본 방정식입니다.
둘째 줄이 확산모형의 핵심입니다. 역방향 확률미분방정식의 표류에 점수함수 가 들어가며, 그 함수 하나만 학습하면 생성이 됩니다.
정답.
| 기호 | 읽는 법 | 뜻 |
|---|---|---|
| S_ | 랜덤워크 | 걸음의 합입니다 |
| 브라운 운동 | 연속시간 극한입니다 | |
| dW_ | 브라운 증분 | 확산 항의 잡음입니다 |
| 폴리아 상수 | Polya constant | 차원 복귀 확률 입니다 |
| 재귀 | recurrent | 확률 로 돌아옵니다 |
| 일시적 | transient | 영영 못 돌아올 수 있습니다 |
| 돈스커 정리 | Donsker's theorem | 경로의 중심극한정리입니다 |
| 이차변동 | quadratic variation | 증분 제곱의 합입니다 |
| 이토 공식 | Ito's formula | 확률과정의 연쇄법칙입니다 |
| 이토 보정 | Ito correction | 항입니다 |
| 오른슈타인-울렌벡 | Ornstein-Uhlenbeck | 평균 회귀 확산입니다 |
| 기하 브라운 운동 | geometric Brownian motion | 로그가 브라운 운동입니다 |
| 오일러-마루야마 | Euler-Maruyama | 확률미분방정식의 이산화입니다 |
| 반복로그법칙 | law of the iterated logarithm | 진동의 정확한 폭입니다 |
| 아크사인 법칙 | arcsine law | 앞선 시간 비율의 분포입니다 |
다음은 157강 MCMC와 깁스 샘플링입니다. 155강 문제 5에서 목표분포를 정해 놓고 전이를 만들었고, 이 강의의 심화 6에서 그 연속시간 판본을 보았습니다.
147강 문제 4에서 고차원 기각법이 무너진 자리를 157강이 메웁니다. 수용률이 이던 문제가 마르코프 연쇄로는 풀립니다.
그리고 150강에서 남긴 숙제가 끝납니다. 켤레가 아닌 사후분포는 격자로도 감당할 수 없었는데, 정규화 상수를 몰라도 되는 메트로폴리스와 조건부분포만 쓰는 깁스가 그것을 계산 가능하게 만듭니다.
import numpy as np
rng = np.random.default_rng(20260824)
# --- 문제 1: 무작위로 걸으면 얼마나 멀리 가는가 -------------------------
print(" 대칭 랜덤워크를 걷습니다. 한 걸음은 +1 이나 -1 입니다")
M = 200000
print(" n E|S_n| 수치 sqrt(2n/pi) S_n 의 분산 수치 이론 n P(|S_n| <= sqrt(n))")
for n in [10, 100, 1000, 10000]:
S = (2 * rng.integers(0, 2, size=(M, n)) - 1).sum(1).astype(float)
print(" %9d %13.6f %14.6f %16.4f %8d %18.6f"
% (n, float(np.abs(S).mean()), np.sqrt(2 * n / np.pi), float(S.var()), n,
float((np.abs(S) <= np.sqrt(n)).mean())))
print(" 거리가 n 이 아니라 sqrt(n) 으로 자랍니다. 왔다 갔다 하며 상쇄되기 때문입니다")
print(" n 을 100 배 늘려야 거리가 10 배가 됩니다. 142강의 1/sqrt(n) 과 같은 뿌리입니다")
# --- 문제 2: 돌아오는가 --------------------------------------------------
print(" 차원을 올려 가며 원점으로 돌아오는지 봅니다. 2000 걸음, 2 만 번 시행입니다")
L, W = 2000, 20000
print(" 차원 d 2000 걸음 안에 복귀한 비율 평균 복귀 횟수 이론")
theory = {1: "1 (재귀)", 2: "1 (재귀)", 3: "0.3405 (일시적)",
4: "0.1932 (일시적)", 5: "0.1352 (일시적)"}
for d in [1, 2, 3, 4, 5]:
pos = np.zeros((W, d), dtype=np.int32)
ret = np.zeros(W, dtype=bool)
cnt = np.zeros(W, dtype=np.int32)
for _ in range(L):
ax = rng.integers(0, d, size=W)
sg = 2 * rng.integers(0, 2, size=W) - 1
pos[np.arange(W), ax] += sg
at0 = ~pos.any(axis=1)
ret |= at0
cnt += at0
print(" %9d %26.6f %18.4f %16s"
% (d, float(ret.mean()), float(cnt.mean()), theory[d]))
print(" 1 차원과 2 차원은 반드시 돌아오고 3 차원부터는 영영 못 돌아올 수 있습니다")
print(" 술취한 사람은 집에 돌아오지만 술취한 새는 못 돌아온다는 말이 이것입니다")
print(" 복귀 횟수도 갈립니다. 재귀이면 무한히 자주 돌아오고 일시적이면 유한 번입니다")
# --- 문제 3: 걸음을 잘게 쪼개면 -----------------------------------------
print(" 걸음을 n 개로 쪼개고 sqrt(n) 으로 나눈 경로를 봅니다")
M3 = 200000
print(" n S_n/sqrt(n) 평균 분산 왜도 표준정규와의 최대 거리")
zg = (np.arange(240001) - 120000) * 1e-4
phig = np.exp(-zg * zg / 2) / np.sqrt(2 * np.pi)
cdfg = (np.cumsum(phig) - 0.5 * phig) * 1e-4
cdfg = cdfg - cdfg[120000] + 0.5
gr = np.linspace(-4, 4, 4001)
Fg = np.interp(gr, zg, cdfg)
for n in [4, 16, 100, 1000]:
S = (2 * rng.integers(0, 2, size=(M3, n)) - 1).sum(1) / np.sqrt(n)
ss = np.sort(S)
Fn = np.searchsorted(ss, gr, side="right") / M3
print(" %9d %16.6f %8.6f %10.6f %22.6f"
% (n, float(S.mean()), float(S.var()),
float((S ** 3).mean()), float(np.max(np.abs(Fn - Fg)))))
print(" 143강 중심극한정리가 그대로 쓰입니다. 극한이 표준정규입니다")
print(" 경로 전체를 보면 공분산이 min(s,t) 인지 확인합니다. n = 4000 입니다")
n4 = 4000
X = (2 * rng.integers(0, 2, size=(60000, n4)) - 1).astype(np.float32)
Cu = np.cumsum(X, axis=1) / np.sqrt(n4)
print(" s t 공분산 수치 min(s,t) 차이")
for s_, t_ in [(0.2, 0.5), (0.3, 0.3), (0.5, 0.9), (0.7, 1.0)]:
a = Cu[:, int(s_ * n4) - 1]
b = Cu[:, int(t_ * n4) - 1]
c = float((a * b).mean())
print(" %9.1f %6.1f %14.6f %12.6f %10.6f" % (s_, t_, c, min(s_, t_), abs(c - min(s_, t_))))
print(" 공분산이 min(s,t) 입니다. 이것이 브라운 운동의 정의입니다")
# --- 문제 4: 브라운 운동의 성질 -----------------------------------------
print(" 브라운 운동의 변동을 잽니다. 구간 [0,1] 을 m 조각으로 나눕니다")
print(" m 이차변동 평균 이론 1 일차변동 평균 sqrt(2m/pi)")
for m in [100, 1000, 10000, 100000]:
dB = rng.normal(0, np.sqrt(1.0 / m), size=(200, m))
qv = float((dB * dB).sum(1).mean())
tvv = float(np.abs(dB).sum(1).mean())
print(" %9d %14.8f %10.1f %14.4f %14.4f"
% (m, qv, 1.0, tvv, np.sqrt(2 * m / np.pi)))
print(" 이차변동은 1 로 고정되고 일차변동은 sqrt(m) 으로 발산합니다")
print(" 일차변동이 무한이므로 브라운 운동의 경로는 어디에서도 미분되지 않습니다")
print(" 이차변동이 유한하고 0 이 아닌 것이 이토 미적분의 출발점입니다")
print(" 증분의 독립성과 정규성을 확인합니다")
B = np.cumsum(rng.normal(0, np.sqrt(0.001), size=(200000, 1000)), axis=1)
d1 = B[:, 299] - B[:, 199]
d2 = B[:, 699] - B[:, 499]
print(" 증분1 분산 %.6f (이론 0.100), 증분2 분산 %.6f (이론 0.200), 상관 %.6f"
% (float(d1.var()), float(d2.var()), float(np.corrcoef(d1, d2)[0, 1])))
# --- 문제 5: 표류와 확산을 함께 넣으면 ----------------------------------
print(" 오른슈타인-울렌벡 과정을 돌립니다. dX = -theta X dt + sigma dW")
th, sig, dt, T5 = 2.0, 1.0, 0.001, 20000
Xo = np.zeros(100000)
for _ in range(T5):
Xo += -th * Xo * dt + sig * np.sqrt(dt) * rng.normal(0, 1, Xo.shape)
print(" 정상분포 평균 %.6f (이론 0), 분산 %.6f (이론 %.6f)"
% (float(Xo.mean()), float(Xo.var()), sig ** 2 / (2 * th)))
print(" 평균으로 되돌리는 힘이 있어 퍼지지 않고 정상분포에 머뭅니다")
print(" 브라운 운동은 분산이 t 로 계속 커지는데 이쪽은 sigma^2/(2 theta) 에서 멈춥니다")
print(" 기하 브라운 운동을 봅니다. dS = mu S dt + sigma S dW 입니다")
mu, sg2, T6, dt6 = 0.1, 0.4, 1.0, 0.0002
steps = int(T6 / dt6)
S0 = 1.0
lg = np.zeros(200000)
for _ in range(steps):
lg += (mu - 0.5 * sg2 ** 2) * dt6 + sg2 * np.sqrt(dt6) * rng.normal(0, 1, lg.shape)
S = S0 * np.exp(lg)
print(" E[S_1] 수치 %.6f, 이론 exp(mu) = %.6f" % (float(S.mean()), np.exp(mu)))
print(" 중앙값 수치 %.6f, 이론 exp(mu - sigma^2/2) = %.6f"
% (float(np.median(S)), np.exp(mu - 0.5 * sg2 ** 2)))
print(" log S 의 평균 %.6f (이론 %.6f), 분산 %.6f (이론 %.6f)"
% (float(lg.mean()), mu - 0.5 * sg2 ** 2, float(lg.var()), sg2 ** 2))
print(" 평균은 exp(mu) 인데 중앙값은 그보다 작습니다. 이토 보정 -sigma^2/2 입니다")
print(" 132강 심화의 젠센 부등식이 그대로 나타납니다. 로그는 오목합니다")
print(" 잡음이 곱으로 들어가면 표류가 저절로 줄어듭니다. 261강 확산모형의 배경입니다")
# 대칭 랜덤워크를 걷습니다. 한 걸음은 +1 이나 -1 입니다
# n E|S_n| 수치 sqrt(2n/pi) S_n 의 분산 수치 이론 n P(|S_n| <= sqrt(n))
# 10 2.473530 2.523133 10.0756 10 0.652935
# 100 7.970920 7.978846 100.1202 100 0.728530
# 1000 25.274510 25.231325 1001.5731 1000 0.671235
# 10000 79.715140 79.788456 9992.6691 10000 0.687720
# 거리가 n 이 아니라 sqrt(n) 으로 자랍니다. 왔다 갔다 하며 상쇄되기 때문입니다
# n 을 100 배 늘려야 거리가 10 배가 됩니다. 142강의 1/sqrt(n) 과 같은 뿌리입니다
# 차원을 올려 가며 원점으로 돌아오는지 봅니다. 2000 걸음, 2 만 번 시행입니다
# 차원 d 2000 걸음 안에 복귀한 비율 평균 복귀 횟수 이론
# 1 0.982150 34.9282 1 (재귀)
# 2 0.698350 2.2936 1 (재귀)
# 3 0.331750 0.5009 0.3405 (일시적)
# 4 0.190850 0.2356 0.1932 (일시적)
# 5 0.132800 0.1527 0.1352 (일시적)
# 1 차원과 2 차원은 반드시 돌아오고 3 차원부터는 영영 못 돌아올 수 있습니다
# 술취한 사람은 집에 돌아오지만 술취한 새는 못 돌아온다는 말이 이것입니다
# 복귀 횟수도 갈립니다. 재귀이면 무한히 자주 돌아오고 일시적이면 유한 번입니다
# 걸음을 n 개로 쪼개고 sqrt(n) 으로 나눈 경로를 봅니다
# n S_n/sqrt(n) 평균 분산 왜도 표준정규와의 최대 거리
# 4 -0.000045 1.001655 -0.002145 0.187060
# 16 -0.002505 0.997124 -0.003371 0.099390
# 100 -0.001819 1.001125 -0.003940 0.041050
# 1000 0.000011 0.994188 -0.002701 0.013430
# 143강 중심극한정리가 그대로 쓰입니다. 극한이 표준정규입니다
# 경로 전체를 보면 공분산이 min(s,t) 인지 확인합니다. n = 4000 입니다
# s t 공분산 수치 min(s,t) 차이
# 0.2 0.5 0.199174 0.200000 0.000826
# 0.3 0.3 0.296446 0.300000 0.003554
# 0.5 0.9 0.496271 0.500000 0.003729
# 0.7 1.0 0.691688 0.700000 0.008312
# 공분산이 min(s,t) 입니다. 이것이 브라운 운동의 정의입니다
# 브라운 운동의 변동을 잽니다. 구간 [0,1] 을 m 조각으로 나눕니다
# m 이차변동 평균 이론 1 일차변동 평균 sqrt(2m/pi)
# 100 1.01230242 1.0 8.0570 7.9788
# 1000 0.99684378 1.0 25.1939 25.2313
# 10000 0.99957499 1.0 79.7814 79.7885
# 100000 0.99999318 1.0 252.3115 252.3133
# 이차변동은 1 로 고정되고 일차변동은 sqrt(m) 으로 발산합니다
# 일차변동이 무한이므로 브라운 운동의 경로는 어디에서도 미분되지 않습니다
# 이차변동이 유한하고 0 이 아닌 것이 이토 미적분의 출발점입니다
# 증분의 독립성과 정규성을 확인합니다
# 증분1 분산 0.100201 (이론 0.100), 증분2 분산 0.200766 (이론 0.200), 상관 0.003262
# 오른슈타인-울렌벡 과정을 돌립니다. dX = -theta X dt + sigma dW
# 정상분포 평균 -0.002125 (이론 0), 분산 0.251033 (이론 0.250000)
# 평균으로 되돌리는 힘이 있어 퍼지지 않고 정상분포에 머뭅니다
# 브라운 운동은 분산이 t 로 계속 커지는데 이쪽은 sigma^2/(2 theta) 에서 멈춥니다
# 기하 브라운 운동을 봅니다. dS = mu S dt + sigma S dW 입니다
# E[S_1] 수치 1.105137, 이론 exp(mu) = 1.105171
# 중앙값 수치 1.020052, 이론 exp(mu - sigma^2/2) = 1.020201
# log S 의 평균 0.019898 (이론 0.020000), 분산 0.160259 (이론 0.160000)
# 평균은 exp(mu) 인데 중앙값은 그보다 작습니다. 이토 보정 -sigma^2/2 입니다
# 132강 심화의 젠센 부등식이 그대로 나타납니다. 로그는 오목합니다
# 잡음이 곱으로 들어가면 표류가 저절로 줄어듭니다. 261강 확산모형의 배경입니다