4장 — 라그랑지안과 최소 작용 원리

정류 작용 원리: 최소가 아니라 기울기 0

지금까지 본 예에서는 실제 경로의 점수가 비교한 다른 경로들보다 작았다. 그렇다면 경로에 걸리는 시간을 더 길게 잡아도 실제 경로는 여전히 가장 작을까? 오일러–라그랑주 방정식이 말해 주는 것은 작용의 기울기가 0이라는 조건뿐이다. 그런데 기울기가 0인 점은 최솟값일 수도 있지만, 말안장 가운데처럼 한 방향으로는 오르막이고 다른 방향으로는 내리막인 안장점일 수도 있다. 그렇다면 실제 경로는 언제 최솟값이고 언제 그렇지 않을까?

용수철 추를 흔들어 보기

진자 대신 용수철에 달린 추를 쓰자. 용수철은 늘어난 거리에 비례하는 힘으로 추를 되돌리므로 위치에너지가 거리의 제곱에 비례하고, 그래서 흔들었을 때 작용이 얼마나 변하는지가 식 하나로 깔끔하게 나온다. 각진동수 ω(오메가) = 1(한 번 왕복하는 주기가 2π/ω ≈ 6.28), 질량 1인 추라면 라그랑지안은 L = ½q̇² − ½q²이다. 실제 경로에 양 끝이 0인 흔들림 ε sin(πt/T)를 더하면, 작용은 다음만큼 변한다. 이 식이 어디서 오는지는 아래 문제 9에서 함께 따져 보자.

ΔA=ε2T4[(πT)2−ω2]\Delta \textcolor{#66a61e}{\mathcal{A}} = \frac{\textcolor{#6d45e6}{\varepsilon}^2 \textcolor{#a67a63}{T}}{4} \left[ \left( \frac{\pi}{\textcolor{#a67a63}{T}} \right)^2 - \textcolor{#735639}{\omega}^2 \right]
ΔA흔들었을 때 작용의 변화량ε흔들림의 크기T경로에 걸리는 시간ω각진동수\begin{array}{ll} \Delta \textcolor{#66a61e}{\mathcal{A}} & \text{흔들었을 때 작용의 변화량} \\ \textcolor{#6d45e6}{\varepsilon} & \text{흔들림의 크기} \\ \textcolor{#a67a63}{T} & \text{경로에 걸리는 시간} \\ \textcolor{#735639}{\omega} & \text{각진동수} \end{array}
경로 시간 T Δ𝒜 실제 경로는
2 +0.73ε² 최솟값
3 +0.07ε² 최솟값
4 −0.38ε² 최솟값이 아님 (안장점)

경로 시간 T가 짧을 때는 흔들림을 더하면 작용이 늘어나므로 실제 경로가 최솟값이다. 그런데 T가 반주기 π/ω를 넘으면 괄호 안이 음수가 되어, 실제 경로보다 작용이 작은 경로가 생긴다. 그래도 실제 경로는 여전히 기울기가 0인 경로다. 그래서 이 원리의 정확한 이름은 정류 작용 원리 (기울기가 0인 경로, principle of stationary action)이고, "최소"는 역사적으로 남은 이름일 뿐이다. 여기서 정류(停留)는 「제자리에 머문다」는 뜻으로, ReLU나 rectified flow의 정류(整流, rectified)와는 다른 말이다.

용수철 추(ω = 1)의 실제 경로에 흔들림 ε sin(πt/T)를 더했을 때 작용의 변화 Δ𝒜. T = 2와 3에서는 어느 쪽으로 흔들어도 작용이 늘지만, T = 4에서는 줄어든다. 세 경우 모두 ε = 0에서 곡선의 기울기는 0이다.
용수철 추(ω = 1)의 실제 경로에 흔들림 ε sin(πt/T)를 더했을 때 작용의 변화 Δ𝒜. T = 2와 3에서는 어느 쪽으로 흔들어도 작용이 늘지만, T = 4에서는 줄어든다. 세 경우 모두 ε = 0에서 곡선의 기울기는 0이다.
직접 움직여 보기최소가 아니라 정류새 창에서 열기 ↗

역사: 야코비가 찾은 경계

"최소 작용"이라는 이름은 1744년 모페르튀이가 붙였다. 실제 경로가 언제나 최소인지를 따진 사람은 거의 100년 뒤의 야코비였다. 야코비는 1837년 논문에서 흔들었을 때 작용이 어떻게 휘는지, 곧 작용을 두 번 미분한 양을 살폈다. 같은 출발점에서 조금씩 다르게 출발한 실제 경로들이 다시 한 점에서 만나기 전까지는 실제 경로가 최소이고, 그 점을 지나면 작용이 더 작은 이웃 경로가 생긴다는 것이다. 용수철 추에서는 같은 자리에서 출발한 실제 경로들이 모두 반주기 뒤에 다시 한 점에 모인다. 위 표에서 T가 π를 넘자 부호가 바뀐 것이 바로 이 경계다.

ML에서: 기울기 0이 곧 최솟값은 아니다

신경망의 손실 함수에서도 기울기가 0인 점이 안장점일 수 있다. 같은 이야기다. 이 차이는 경로를 경사하강으로 풀 때 직접 드러난다. 던진 공의 작용은 아래로 볼록한 그릇 모양이라 경사하강이 실제 경로로 수렴했지만, 그 코드의 위치에너지를 용수철 ½y²로 바꾸고 T를 4로 늘리면 실제 경로가 안장점이 되어 경사하강이 수렴하지 않고 경로가 끝없이 커진다.

문제 9. 용수철을 네 배 단단하게 하면

본문의 용수철 추(질량 1)를 네 배 단단한 용수철로 바꾸었다. 위치에너지가 ½·4q², 곧 각진동수 ω = 2가 된다. 경로 시간 T = 2에서 실제 경로에 양 끝이 0인 흔들림 ε sin(πt/T)를 더하면 작용은 늘어나는가, 줄어드는가? Δ𝒜 식의 (π/T)²와 ω²는 각각 어디서 오는가? (풀어 본 뒤 위젯 3의 「문제 9 불러오기」로 확인해 보자.)

이서연 S01
이서연

본문 표에서 T = 2는 +0.73ε²로 최솟값이었어요. 이번에도 늘어나겠죠.

선생님 T12
선생님

계산해 보세요. 본문에 식이 있어요.

김민준 M01
김민준

(ε²T/4)[(π/T)² − 1]에 T = 2를 넣으면 +0.73ε². 서연이 말이 맞네.

이서연 S05
이서연

잠깐, 식의 1은 ω²였어. 이번엔 ω = 2니까 (π/2)² − 4 ≈ 2.47 − 4 = −1.53이고, T/4 = 0.5를 곱하면 −0.77ε². 줄어들어요. 실제 경로보다 작용이 작은 경로가 있네요.

선생님 T14
선생님

반주기가 π/ω ≈ 1.57이라 T = 2가 이미 넘었어요. 반주기를 넘으면 실제 경로는 최솟값이 아니라 안장점이에요. 그래도 기울기는 0이에요. 원리가 요구하는 건 기울기 0뿐이에요.

선생님 T01
선생님

그럼 두 항이 어디서 오는지 봐요. 흔들림의 속도는 ε(π/T) cos(πt/T)예요. 작용의 운동에너지 쪽은 얼마나 늘죠?

김민준 M04
김민준

½∫ε²(π/T)² cos²(πt/T) dt인데 cos²을 0부터 T까지 적분하면 T/2라서 (ε²T/4)(π/T)². 실제 경로와 흔들림이 곱해진 항은 기울기가 0이라 한꺼번에 사라지고요.

이서연 S07
이서연

위치에너지 쪽은 −½ω²∫ε² sin²(πt/T) dt = −(ε²T/4)ω². 흔들림이 빠르게 오르내릴수록, 곧 T가 짧을수록 운동에너지 쪽이 이기고, 용수철이 단단할수록 위치에너지 쪽이 이기는 거네요.

김민준 M09
김민준

이거 딥러닝 수업에서 들은 거랑 같아요. 손실의 기울기가 0이라고 최솟값은 아니고, 고차원에서는 안장점이 훨씬 많다고 했어요.

선생님 T13
선생님

같은 수학이에요. 코드로 풀면 차이가 보여요. 본문의 용수철(ω = 1)이면 T = 2에서는 경사하강이 실제 경로로 수렴하지만, T = 4에서는 음의 방향으로 끝없이 내려가서 수렴하지 않아요.

이서연 S10
이서연

그럼 "최소"가 아니라 "정류"라고 불러야겠네요. 이름이 거짓말을 하는 거고요.

선생님 T01
선생님

이름이 먼저 붙고 수학이 나중에 정리된 경우예요. 짧은 시간 구간에서는 대개 최솟값이라서 틀린 이름이 오래 살아남았어요.

문제 10. 기울기가 거의 0인데 멈춰도 될까

가중치 두 개 (a, b)의 손실이 a²/2 − b²/2 + b⁴/4다. (1, 0.001)에서 학습률 0.1로 경사하강을 하면 35번 뒤 기울기의 크기가 약 0.04로 줄고 손실은 0 근처에서 거의 움직이지 않는다. 여기서 학습을 멈춰도 되는가? 원점에서 a 방향과 b 방향으로 손실은 각각 어떻게 휘는가?

김민준 M11
김민준

기울기가 0.04면 거의 0이고 손실도 멈췄으니 수렴한 거죠. 여기가 최솟값이에요.

이서연 S06
이서연

민준아, 용수철 문제랑 같은 거 아니야? 기울기가 0이어도 최솟값인지는 휘는 방향을 봐야 했잖아. 원점에서 a로 두 번 미분하면 +1, b로 두 번 미분하면 −1이야.

선생님 T14
선생님

맞아요. a 방향으로는 그릇, b 방향으로는 뒤집힌 그릇이라 원점은 안장점이에요. 흔들림에 따라 작용이 줄어들던 T = 4의 용수철과 같아요. b는 0.001에서 출발해 한 걸음에 약 1.1배씩 커지는데, 처음엔 너무 작아서 손실이 거의 안 변해 보여요.

김민준 M05
김민준

그럼 계속 돌리면요?

선생님 T12
선생님

직접 돌려 봐요. 60번쯤에 b ≈ 0.29, 80번쯤에 0.92가 되고, 100번이면 손실이 −0.25, 곧 b = ±1인 진짜 최솟값에 닿아요. 멈춘 것처럼 보이던 구간은 안장점 근처를 천천히 빠져나가는 중이었어요.

이서연 S09
이서연

0.001이 1 근처가 되려면 1.1배를 70번쯤 해야 하니까(1.1⁷² ≈ 1000), 출발점이 안장점에 가까울수록 오래 머물겠네.

김민준 M10
김민준

등산하다 평평한 고개 마루에 올라서면 한동안 정상인 줄 아는 거랑 같네요. 옆을 보면 내리막인데요. 학습 곡선이 평평하다고 바로 멈추면 안 되겠어요.