94강에서 편미분은 좌표축 방향만 봤습니다. 95강에서 기울기 벡터를 세웠고, 그 벡터가 등고선에 수직이며 크기가 "가파른 정도"라고 했습니다.
아직 증명하지 않은 것이 하나 남았습니다.
∥ ∇ f ∥ 가 정말 가장 큰 증가율인가 \lVert\nabla f\rVert\ \text{가 정말 가장 큰 증가율인가}
∥ ∇ f ∥ 가 정말 가장 큰 증가율인가
이를 확인하려면 임의의 방향으로 변화율을 재는 도구 가 필요합니다. 축 방향만 재는 편미분으로는 답할 수 없습니다.
방법은 단순합니다. 단위벡터 u \mathbf{u}u 를 정하고 그 방향으로 직선을 따라가면, 한 변수 함수가 하나 만들어집니다.
t ⟼ f ( a + t u ) t\ \longmapsto\ f(\mathbf{a}+t\mathbf{u})
t ⟼ f ( a + t u )
이것을 t = 0 t=0t = 0 에서 미분하면 됩니다. 94강에서 축 방향으로 했던 일을 임의 방향으로 하는 것뿐입니다.
이 강의의 결론은 한 줄입니다.
D u f ( a ) = ∇ f ( a ) ⋅ u D_{\mathbf{u}}f(\mathbf{a})=\nabla f(\mathbf{a})\cdot\mathbf{u}
D u f ( a ) = ∇ f ( a ) ⋅ u
무한히 많은 방향의 변화율이 벡터 하나에 전부 들어 있습니다. 그리고 여기에 63강의 코시-슈바르츠를 쓰면 최급증가 방향이 곧바로 나옵니다. 109강 경사하강법이 왜 − ∇ f -\nabla f− ∇ f 방향으로 가는지가 이 강의에서 정해집니다.
방향도함수를 정의하고 정의대로 계산할 수 있습니다.
D u f = ∇ f ⋅ u D_{\mathbf{u}}f=\nabla f\cdot\mathbf{u}D u f = ∇ f ⋅ u 를 유도하고 쓸 수 있습니다.
최급증가와 최급감소 방향을 구할 수 있습니다.
방향에 따른 변화율을 각도로 설명할 수 있습니다.
공식이 성립하려면 전미분가능성이 필요함을 압니다.
문제. f ( x , y ) = x 2 + y 2 f(x,y)=x^{2}+y^{2}f ( x , y ) = x 2 + y 2 과 점 ( 3 , 4 ) (3,4)( 3 , 4 ) 를 봅니다.
(1) 방향 u = ( 1 , 0 ) \mathbf{u}=(1,0)u = ( 1 , 0 ) , ( 1 , 1 ) / 2 (1,1)/\sqrt2( 1 , 1 ) / 2 , ( 0 , 1 ) (0,1)( 0 , 1 ) 각각에 대해 ( f ( a + t u ) − f ( a ) ) / t \bigl(f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})\bigr)/t( f ( a + t u ) − f ( a ) ) / t 를 작은 t tt 에서 구하세요.
(2) 각 방향에 대해 ∇ f ( 3 , 4 ) ⋅ u \nabla f(3,4)\cdot\mathbf{u}∇ f ( 3 , 4 ) ⋅ u 를 구하세요.
(3) 두 결과를 비교하세요.
생각의 실마리. 방향 u \mathbf{u}u 를 고정하면 직선 위를 걷는 것 이 되고, 그 위에서 f ff 는 한 변수 함수입니다. 37강의 미분을 그대로 씁니다.
풀이. (1)과 (2) 검산에서 ∇ f ( 3 , 4 ) = ( 6 , 8 ) \nabla f(3,4)=(6,8)∇ f ( 3 , 4 ) = ( 6 , 8 ) 이며
방향 \mathbf
차분비
\nabla f\cdot\mathbf
( + 1.0000 , + 0.0000 ) (+1.0000,+0.0000)( + 1 . 0 0 0 0 , + 0 . 0 0 0 0 )
+ 6.000000 +6.000000+ 6 . 0 0 0 0 0 0
+ 6.000000 +6.000000+ 6 . 0 0 0 0 0 0
( + 0.7071 , + 0.7071 ) (+0.7071,+0.7071)( + 0 . 7 0 7 1 , + 0 . 7 0 7 1 )
+ 9.899495 +9.899495+ 9 . 8 9 9 4 9 5
+ 9.899495 +9.899495+ 9 . 8 9 9 4 9 5
( + 0.0000 , + 1.0000 ) (+0.0000,+1.0000)( + 0 . 0 0 0 0 , + 1 . 0 0 0 0 )
+ 8.000000 +8.000000+ 8 . 0 0 0 0 0 0
+ 8.000000 +8.000000+ 8 . 0 0 0 0 0 0
( − 0.8000 , + 0.6000 ) (-0.8000,+0.6000)( − 0 . 8 0 0 0 , + 0 . 6 0 0 0 )
+ 0.000000 +0.000000+ 0 . 0 0 0 0 0 0
+ 0.000000 +0.000000+ 0 . 0 0 0 0 0 0
(3) 모든 방향에서 정확히 같습니다.
이 문제에서 배우는 것: 방향도함수.
방향도함수. 단위벡터 u \mathbf{u}u 에 대해
D u f ( a ) = t → 0 f ( a + t u ) − f ( a ) t D_{\mathbf{u}}f(\mathbf{a})=\lim_{t\to0}\frac{f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})}{t}
D u f ( a ) = t → 0 lim t f ( a + t u ) − f ( a )
를 a \mathbf{a}a 에서 u \mathbf{u}u 방향의 방향도함수라 합니다.
u \mathbf{u}u 가 단위벡터라는 조건이 붙는 이유가 있습니다. u \mathbf{u}u 를 두 배로 늘이면 같은 거리를 가는 데 t tt 가 절반이면 되므로 값도 두 배가 됩니다. 크기를 1 11 로 고정해야 "단위 거리당 변화율"이 되어 방향들끼리 비교할 수 있습니다.
공식을 증명합니다.
정리. f ff 가 a \mathbf{a}a 에서 전미분가능하면 모든 단위벡터 u \mathbf{u}u 에 대해
D u f ( a ) = ∇ f ( a ) ⋅ u D_{\mathbf{u}}f(\mathbf{a})=\nabla f(\mathbf{a})\cdot\mathbf{u}
D u f ( a ) = ∇ f ( a ) ⋅ u
입니다.
증명. 95강의 정의에서 h = t u \mathbf{h}=t\mathbf{u}h = t u 로 두면 ∥ h ∥ = ∣ t ∣ \lVert\mathbf{h}\rVert=\lvert t\rvert∥ h ∥ = ∣ t ∣ 이므로
f ( a + t u ) − f ( a ) = ∇ f ( a ) ⋅ ( t u ) + o ( ∣ t ∣ ) f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})=\nabla f(\mathbf{a})\cdot(t\mathbf{u})+o(\lvert t\rvert)
f ( a + t u ) − f ( a ) = ∇ f ( a ) ⋅ ( t u ) + o ( ∣ t ∣ )
양변을 t tt 로 나누면
f ( a + t u ) − f ( a ) t = ∇ f ( a ) ⋅ u + o ( ∣ t ∣ ) t \frac{f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})}{t}=\nabla f(\mathbf{a})\cdot\mathbf{u}+\frac{o(\lvert t\rvert)}{t}
t f ( a + t u ) − f ( a ) = ∇ f ( a ) ⋅ u + t o ( ∣ t ∣ )
이고 t → 0 t\to0t → 0 에서 마지막 항이 0 00 으로 갑니다. ■ \blacksquare■
증명이 세 줄인 것은 95강에서 무거운 일을 이미 했기 때문 입니다. 전미분가능성이 "모든 방향을 한꺼번에 근사한다"는 조건이었으니, 방향 하나를 골라 꺼내 쓰는 일은 대입에 지나지 않습니다.
무한히 많은 방향의 정보가 벡터 하나에 압축되어 있습니다 \text{무한히 많은 방향의 정보가 벡터 하나에 압축되어 있습니다}
무한히 많은 방향의 정보가 벡터 하나에 압축되어 있습니다
이것이 기울기 벡터의 값어치입니다. 방향마다 따로 극한을 계산할 필요 없이 내적 한 번 이면 됩니다.
바로 확인 1.
확인 1-1. 방향도함수의 정의를 쓰세요.
답. t → 0 ( f ( a + t u ) − f ( a ) ) / t \lim_{t\to0}\bigl(f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})\bigr)/tlim t → 0 ( f ( a + t u ) − f ( a ) ) / t 입니다.
확인 1-2. u \mathbf{u}u 가 단위벡터여야 하는 이유를 쓰세요.
답. 크기를 고정해야 방향들끼리 값을 비교할 수 있기 때문입니다.
확인 1-3. D u f D_{\mathbf{u}}fD u f 의 계산 공식을 쓰세요.
답. ∇ f ⋅ u \nabla f\cdot\mathbf{u}∇ f ⋅ u 입니다.
문제. 같은 함수와 점을 봅니다.
(1) u = e 1 = ( 1 , 0 ) \mathbf{u}=\mathbf{e}_{1}=(1,0)u = e 1 = ( 1 , 0 ) 일 때 D u f D_{\mathbf{u}}fD u f 를 구하세요.
(2) u = e 2 = ( 0 , 1 ) \mathbf{u}=\mathbf{e}_{2}=(0,1)u = e 2 = ( 0 , 1 ) 일 때 구하세요.
(3) 두 값이 무엇인지 말하세요.
생각의 실마리. 표준기저 방향으로 재면 다른 좌표는 움직이지 않습니다. 이것이 바로 94강에서 한 일입니다.
풀이. 검산에서
D e 1 f = ∇ f ⋅ ( 1 , 0 ) = 6 , D e 2 f = ∇ f ⋅ ( 0 , 1 ) = 8 D_{\mathbf{e}_{1}}f=\nabla f\cdot(1,0)=6,\qquad D_{\mathbf{e}_{2}}f=\nabla f\cdot(0,1)=8
D e 1 f = ∇ f ⋅ ( 1 , 0 ) = 6 , D e 2 f = ∇ f ⋅ ( 0 , 1 ) = 8
(3) 각각 f x ( 3 , 4 ) f_{x}(3,4)f x ( 3 , 4 ) 와 f y ( 3 , 4 ) f_{y}(3,4)f y ( 3 , 4 ) 입니다.
이 문제에서 배우는 것: 편미분은 방향도함수의 특수한 경우입니다.
f x = D e 1 f , f y = D e 2 f f_{x}=D_{\mathbf{e}_{1}}f,\qquad f_{y}=D_{\mathbf{e}_{2}}f
f x = D e 1 f , f y = D e 2 f
내적을 성분으로 풀어 쓰면 이유가 분명합니다.
∇ f ⋅ e i = ( f x 1 , … , f x n ) ⋅ e i = f x i \nabla f\cdot\mathbf{e}_{i}=(f_{x_{1}},\dots,f_{x_{n}})\cdot\mathbf{e}_{i}=f_{x_{i}}
∇ f ⋅ e i = ( f x 1 , … , f x n ) ⋅ e i = f x i
표준기저와의 내적이 성분을 뽑아내는 연산 이며, 72강에서 정규직교기저의 좌표가 내적으로 구해진다고 한 것과 같습니다.
개념들의 포함관계를 정리합니다.
개념
보는 방향
개수
편미분
좌표축
n nn 개
방향도함수
임의의 단위벡터
무한히 많습니다
기울기 벡터
전부를 담습니다
하나
아래로 갈수록 정보가 많아 보이지만 실은 그렇지 않습니다. 전미분가능하면 셋이 같은 정보량을 갖습니다. 편미분 n nn 개가 ∇ f \nabla f∇ f 를 정하고, ∇ f \nabla f∇ f 가 모든 방향도함수를 정합니다.
n 개의 수 ⟶ 무한히 많은 방향의 변화율 n\text{개의 수}\ \longrightarrow\ \text{무한히 많은 방향의 변화율}
n 개의 수 ⟶ 무한히 많은 방향의 변화율
다만 전미분가능하지 않으면 이 사슬이 끊어집니다. 문제 5에서 봅니다.
바로 확인 2.
확인 2-1. f x f_{x}f x 를 방향도함수로 쓰세요.
답. D e 1 f D_{\mathbf{e}_{1}}fD e 1 f 입니다.
확인 2-2. ∇ f ⋅ e i \nabla f\cdot\mathbf{e}_{i}∇ f ⋅ e i 는 무엇입니까?
답. i ii 번째 편미분입니다.
확인 2-3. 편미분 n nn 개로 무엇을 알 수 있습니까?
답. 전미분가능하다면 모든 방향의 변화율을 알 수 있습니다.
문제. 같은 함수와 점을 봅니다.
(1) ∥ ∇ f ( 3 , 4 ) ∥ \lVert\nabla f(3,4)\rVert∥ ∇ f ( 3 , 4 ) ∥ 를 구하세요.
(2) D u f D_{\mathbf{u}}fD u f 가 최대가 되는 u \mathbf{u}u 와 그 값을 구하세요.
(3) 최소가 되는 경우도 구하세요.
생각의 실마리. D u f = ∇ f ⋅ u D_{\mathbf{u}}f=\nabla f\cdot\mathbf{u}D u f = ∇ f ⋅ u 이고 u \mathbf{u}u 는 단위벡터입니다. 고정된 벡터와의 내적을 단위벡터 위에서 최대화 하는 문제이며, 63강에서 이미 답을 아는 문제입니다.
풀이. (1) ∥ ( 6 , 8 ) ∥ = 10 \lVert(6,8)\rVert=10∥ ( 6 , 8 ) ∥ = 1 0 입니다.
(2) 코시-슈바르츠에 의해
∣ ∇ f ⋅ u ∣ ≤ ∥ ∇ f ∥ ∥ u ∥ = ∥ ∇ f ∥ = 10 \lvert\nabla f\cdot\mathbf{u}\rvert\le\lVert\nabla f\rVert\,\lVert\mathbf{u}\rVert=\lVert\nabla f\rVert=10
∣ ∇ f ⋅ u ∣ ≤ ∥ ∇ f ∥ ∥ u ∥ = ∥ ∇ f ∥ = 1 0
이고 등호는 u \mathbf{u}u 가 ∇ f \nabla f∇ f 와 나란할 때입니다. 따라서 u = ( 0.6 , 0.8 ) \mathbf{u}=(0.6,0.8)u = ( 0 . 6 , 0 . 8 ) 에서 최댓값 10 101 0 입니다.
(3) u = ( − 0.6 , − 0.8 ) \mathbf{u}=(-0.6,-0.8)u = ( − 0 . 6 , − 0 . 8 ) 에서 최솟값 − 10 -10− 1 0 입니다. 검산에서 각도를 100000 1000001 0 0 0 0 0 개로 촘촘히 훑어도 최댓값 10.000000 10.0000001 0 . 0 0 0 0 0 0 , 최솟값 − 10.000000 -10.000000− 1 0 . 0 0 0 0 0 0 입니다.
이 문제에서 배우는 것: 기울기가 최급증가 방향입니다.
최급증가 정리. f ff 가 a \mathbf{a}a 에서 전미분가능하고 ∇ f ( a ) ≠ 0 \nabla f(\mathbf{a})\ne\mathbf{0}∇ f ( a ) = 0 이면
∥ u ∥ = 1 D u f ( a ) = ∥ ∇ f ( a ) ∥ \max_{\lVert\mathbf{u}\rVert=1}D_{\mathbf{u}}f(\mathbf{a})=\lVert\nabla f(\mathbf{a})\rVert
∥ u ∥ = 1 max D u f ( a ) = ∥ ∇ f ( a ) ∥
이며 최댓값은 u = ∇ f / ∥ ∇ f ∥ \mathbf{u}=\nabla f/\lVert\nabla f\rVertu = ∇ f / ∥ ∇ f ∥ 에서, 최솟값 − ∥ ∇ f ∥ -\lVert\nabla f\rVert− ∥ ∇ f ∥ 는 그 반대 방향에서 달성됩니다.
95강 문제 3에서 예고한 세 가지 뜻이 이로써 모두 증명됐습니다.
성질
증명한 곳
선형근사의 계수
95강 문제 1
등고선에 수직
95강 문제 4
최급증가 방향
이 문제
세 성질이 서로 무관하지 않습니다. 등고선에 수직인 방향이 곧 가장 가파른 방향입니다. 등고선을 따라 걸으면 높이가 그대로이고, 거기서 조금 벗어날수록 높이가 변하며, 완전히 직각으로 벗어날 때 가장 많이 변합니다.
이 정리가 곧바로 알고리즘이 됩니다.
경사하강법의 근거. f ff 를 줄이려면 − ∇ f -\nabla f− ∇ f 방향으로 움직입니다. 그 방향의 순간 감소율 ∥ ∇ f ∥ \lVert\nabla f\rVert∥ ∇ f ∥ 가 모든 방향 중 가장 큽니다.
109강에서 이를 반복하는 알고리즘을 세웁니다.
x k + 1 = x k − η ∇ f ( x k ) \mathbf{x}_{k+1}=\mathbf{x}_{k}-\eta\,\nabla f(\mathbf{x}_{k})
x k + 1 = x k − η ∇ f ( x k )
"가장 가파른"이 "가장 빠른"은 아닙니다. 이 정리는 순간적인 감소율만 말하고, 한 걸음 뒤의 일은 말하지 않습니다. 93강 심화 5에서 길쭉한 등고선을 봤는데, 그런 지형에서는 순간적으로 최선인 방향이 목적지를 향하지 않습니다. 심화 3에서 이 어긋남을 정량화합니다.
바로 확인 3.
확인 3-1. 최급증가 방향을 쓰세요.
답. ∇ f / ∥ ∇ f ∥ \nabla f/\lVert\nabla f\rVert∇ f / ∥ ∇ f ∥ 입니다.
확인 3-2. 그때의 변화율을 쓰세요.
답. ∥ ∇ f ∥ \lVert\nabla f\rVert∥ ∇ f ∥ 입니다.
확인 3-3. 증명에 쓴 부등식의 이름을 쓰세요.
답. 코시-슈바르츠 부등식입니다.
문제. 같은 함수와 점을 봅니다.
(1) 등고선 접선 방향 ( − 0.8 , 0.6 ) (-0.8,0.6)( − 0 . 8 , 0 . 6 ) 에서 D u f D_{\mathbf{u}}fD u f 를 구하세요.
(2) 6 0 ∘ 60^{\circ}6 0 ∘ 방향 ( cos 6 0 ∘ , sin 6 0 ∘ ) (\cos60^{\circ},\sin60^{\circ})( cos 6 0 ∘ , sin 6 0 ∘ ) 에서 구하세요.
(3) D u f D_{\mathbf{u}}fD u f 를 기울기와 u \mathbf{u}u 가 이루는 각 θ \thetaθ 로 표현하세요.
생각의 실마리. 내적은 각도로 쓸 수 있습니다. 63강의 a ⋅ b = ∥ a ∥ ∥ b ∥ cos θ \mathbf{a}\cdot\mathbf{b}=\lVert\mathbf{a}\rVert\lVert\mathbf{b}\rVert\cos\thetaa ⋅ b = ∥ a ∥ ∥ b ∥ cos θ 를 쓰면 됩니다.
풀이. (1) 검산에서 − 8.882 × 1 0 − 16 -8.882\times10^{-16}− 8 . 8 8 2 × 1 0 − 1 6 이며 **참값은 0 00 **입니다. 95강 문제 4에서 본 부동소수점 잔여가 그대로 나타납니다.
(2) 9.928203 9.9282039 . 9 2 8 2 0 3 입니다.
(3) ∥ u ∥ = 1 \lVert\mathbf{u}\rVert=1∥ u ∥ = 1 이므로
D u f = ∥ ∇ f ∥ cos θ D_{\mathbf{u}}f=\lVert\nabla f\rVert\cos\theta
D u f = ∥ ∇ f ∥ cos θ
이 문제에서 배우는 것: 코사인 법칙이 전부를 설명합니다.
∥ ∇ f ∥ = 10 \lVert\nabla f\rVert=10∥ ∇ f ∥ = 1 0 인 이 점에서 방향별 변화율을 정리합니다.
θ \thetaθ
cos θ \cos\thetacos θ
D u f D_{\mathbf{u}}fD u f
뜻
0^
1 11
10 101 0
최급증가
60^
0.5 0.50 . 5
5 55
절반만 오릅니다
90^
0 00
0 00
등고선을 따라갑니다
180^
− 1 -1− 1
− 10 -10− 1 0
최급감소
(2)의 6 0 ∘ 60^{\circ}6 0 ∘ 는 x xx 축 기준이라 기울기 방향 ( 0.6 , 0.8 ) (0.6,0.8)( 0 . 6 , 0 . 8 ) 과의 각이 6 0 ∘ 60^{\circ}6 0 ∘ 가 아닙니다. 기울기의 편각은 arctan ( 8 / 6 ) ≈ 53.1 3 ∘ \arctan(8/6)\approx53.13^{\circ}arctan ( 8 / 6 ) ≈ 5 3 . 1 3 ∘ 이므로 사잇각은 약 6.8 7 ∘ 6.87^{\circ}6 . 8 7 ∘ 이고
10 cos 6.8 7 ∘ ≈ 9.928 10\cos6.87^{\circ}\approx9.928
1 0 cos 6 . 8 7 ∘ ≈ 9 . 9 2 8
로 검산값과 맞습니다.
cos θ \cos\thetacos θ 의 모양이 실무에서 뜻하는 바가 있습니다. θ \thetaθ 가 작을 때 cos θ ≈ 1 − θ 2 / 2 \cos\theta\approx1-\theta^{2}/2cos θ ≈ 1 − θ 2 / 2 이므로, 최적 방향에서 조금 벗어나도 손해가 이차로만 커집니다.
벗어난 각
남는 비율
10^
98.5 % 98.5\%9 8 . 5 %
30^
86.6 % 86.6\%8 6 . 6 %
45^
70.7 % 70.7\%7 0 . 7 %
80^
17.4 % 17.4\%1 7 . 4 %
3 0 ∘ 30^{\circ}3 0 ∘ 나 벗어나도 87 % 87\%8 7 % 가 남습니다. 235강의 확률적 경사하강법이 잡음 섞인 방향으로 움직여도 작동하는 이유가 여기 있습니다. 방향이 정확할 필요는 없고 예각이기만 하면 값이 줄어듭니다.
∇ f ⋅ d < 0 ⟹ d 는 하강 방향입니다 \nabla f\cdot\mathbf{d}<0\ \Longrightarrow\ \mathbf{d}\ \text{는 하강 방향입니다}
∇ f ⋅ d < 0 ⟹ d 는 하강 방향입니다
이것이 109강에서 정의할 하강 방향의 조건이며, − ∇ f -\nabla f− ∇ f 는 그중 하나일 뿐입니다.
바로 확인 4.
확인 4-1. D u f D_{\mathbf{u}}fD u f 를 각도로 표현하세요.
답. ∥ ∇ f ∥ cos θ \lVert\nabla f\rVert\cos\theta∥ ∇ f ∥ cos θ 입니다.
확인 4-2. 등고선 방향의 방향도함수는 얼마입니까?
답. 0 00 입니다.
확인 4-3. 하강 방향의 조건을 쓰세요.
답. ∇ f ⋅ d < 0 \nabla f\cdot\mathbf{d}<0∇ f ⋅ d < 0 입니다.
문제. 93강과 94강에서 본 함수를 다시 봅니다.
G ( x , y ) = { x 2 y x 4 + y 2 ( x , y ) ≠ ( 0 , 0 ) 0 ( x , y ) = ( 0 , 0 ) G(x,y)=\begin{cases}\dfrac{x^{2}y}{x^{4}+y^{2}} & (x,y)\ne(0,0)\\[2mm] 0 & (x,y)=(0,0)\end{cases}
G ( x , y ) = ⎩ ⎪ ⎨ ⎪ ⎧ x 4 + y 2 x 2 y 0 ( x , y ) = ( 0 , 0 ) ( x , y ) = ( 0 , 0 )
(1) ∇ G ( 0 , 0 ) \nabla G(0,0)∇ G ( 0 , 0 ) 을 구하세요.
(2) 3 0 ∘ 30^{\circ}3 0 ∘ , 4 5 ∘ 45^{\circ}4 5 ∘ , 6 0 ∘ 60^{\circ}6 0 ∘ 방향의 방향도함수를 정의대로 구하세요.
(3) D u G = ∇ G ⋅ u D_{\mathbf{u}}G=\nabla G\cdot\mathbf{u}D u G = ∇ G ⋅ u 가 성립합니까?
생각의 실마리. 94강 심화 2에서 이 함수는 모든 방향도함수가 존재 한다고 했습니다. 그러니 공식의 좌변은 모든 방향에서 정의됩니다. 우변은 어떨지 확인합니다.
풀이. (1) 두 축 위에서 G ≡ 0 G\equiv0G ≡ 0 이므로 G x ( 0 , 0 ) = G y ( 0 , 0 ) = 0 G_{x}(0,0)=G_{y}(0,0)=0G x ( 0 , 0 ) = G y ( 0 , 0 ) = 0 이고
∇ G ( 0 , 0 ) = ( 0 , 0 ) \nabla G(0,0)=(0,0)
∇ G ( 0 , 0 ) = ( 0 , 0 )
(2) 94강 심화 2에서 u = ( cos θ , sin θ ) \mathbf{u}=(\cos\theta,\sin\theta)u = ( cos θ , sin θ ) 에 대해 sin θ ≠ 0 \sin\theta\ne0sin θ = 0 이면 D u G = 2 θ / sin θ D_{\mathbf{u}}G=\cos^{2}\theta/\sin\thetaD u G = cos 2 θ / sin θ 였습니다. 검산에서
각
정의로 잰 D u G D_{\mathbf{u}}GD u G
\nabla G\cdot\mathbf
0^
+ 0.000000 +0.000000+ 0 . 0 0 0 0 0 0
0 00
30^
+ 1.500000 +1.500000+ 1 . 5 0 0 0 0 0
0 00
45^
+ 0.707107 +0.707107+ 0 . 7 0 7 1 0 7
0 00
60^
+ 0.288675 +0.288675+ 0 . 2 8 8 6 7 5
0 00
(3) 성립하지 않습니다. 좌변은 방향마다 다른 값을 갖는데 우변은 항상 0 00 입니다.
이 문제에서 배우는 것: 공식의 전제는 전미분가능성입니다.
문제 1의 증명을 다시 보면 전미분가능성을 정확히 한 곳에서 썼습니다. o ( ∣ t ∣ ) / t → 0 o(\lvert t\rvert)/t\to0o ( ∣ t ∣ ) / t → 0 이라는 부분입니다. 이 함수는 그 조건을 만족하지 않으므로 증명이 진행되지 않습니다.
무엇이 잘못됐는지 표로 봅니다.
성질
G GG
모든 방향도함수가 존재합니까
존재합니다
D u G D_{\mathbf{u}}GD u G 가 u \mathbf{u}u 에 선형입니까
선형이 아닙니다
전미분가능합니까
아닙니다
원점에서 연속입니까
아닙니다
둘째 줄이 진단입니다. ∇ f ⋅ u \nabla f\cdot\mathbf{u}∇ f ⋅ u 는 u \mathbf{u}u 에 대해 선형인데, 2 θ / sin θ \cos^{2}\theta/\sin\thetacos 2 θ / sin θ 는 선형이 아닙니다. 확인해 봅니다. u 1 = ( 1 , 0 ) \mathbf{u}_{1}=(1,0)u 1 = ( 1 , 0 ) 과 u 2 = ( 0 , 1 ) \mathbf{u}_{2}=(0,1)u 2 = ( 0 , 1 ) 에서 각각 0 00 인데, 그 합의 방향인 4 5 ∘ 45^{\circ}4 5 ∘ 에서는 0.707 0.7070 . 7 0 7 입니다.
D u 1 + u 2 G ≠ D u 1 G + D u 2 G D_{\mathbf{u}_{1}+\mathbf{u}_{2}}G\ne D_{\mathbf{u}_{1}}G+D_{\mathbf{u}_{2}}G
D u 1 + u 2 G = D u 1 G + D u 2 G
전미분가능성이 요구하는 것이 바로 이 선형성 입니다. 95강 심화 5에서 미분이 선형사상이라 했는데, 이 함수의 "미분"은 선형사상이 아니라서 미분이라 부를 자격이 없습니다.
정리하면 계층이 이렇습니다.
조건
방향도함수 존재
D_{\mathbf{u}}f=\nabla f\cdot\mathbf
연속
편미분만 존재
아닐 수 있습니다
아닙니다
아닙니다
방향도함수 전부 존재
그렇습니다
아닙니다
아닙니다
전미분가능
그렇습니다
그렇습니다
그렇습니다
가운데 줄이 이 함수의 자리 입니다. 도구는 다 있는데 그것들이 하나의 선형사상으로 묶이지 않습니다.
정보가 있는 것과 정보가 정리되는 것은 다릅니다 \text{정보가 있는 것과 정보가 정리되는 것은 다릅니다}
정보가 있는 것과 정보가 정리되는 것은 다릅니다
실무에서는 대부분의 함수가 C 1 C^{1}C 1 이라 이 구별이 드러나지 않습니다. 다만 ReLU처럼 꺾인 활성화 함수 를 쓰면 꺾이는 점에서 이런 현상이 생기며, 그 자리를 다루는 것이 열구배와 240강의 논의입니다.
바로 확인 5.
확인 5-1. ∇ G ( 0 , 0 ) \nabla G(0,0)∇ G ( 0 , 0 ) 을 쓰세요.
답. ( 0 , 0 ) (0,0)( 0 , 0 ) 입니다.
확인 5-2. 공식이 깨진 이유를 쓰세요.
답. 전미분가능하지 않기 때문입니다.
확인 5-3. D u f D_{\mathbf{u}}fD u f 가 u \mathbf{u}u 에 대해 가져야 할 성질은 무엇입니까?
답. 선형성입니다.
개념
정의
D u f D_{\mathbf{u}}fD u f
t → 0 ( f ( a + t u ) − f ( a ) ) / t \lim_{t\to0}\bigl(f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})\bigr)/tlim t → 0 ( f ( a + t u ) − f ( a ) ) / t
계산 공식
∇ f ⋅ u \nabla f\cdot\mathbf{u}∇ f ⋅ u (전미분가능할 때)
각도 표현
∥ ∇ f ∥ cos θ \lVert\nabla f\rVert\cos\theta∥ ∇ f ∥ cos θ
편미분
D e i f D_{\mathbf{e}_{i}}fD e i f
하강 방향
∇ f ⋅ d < 0 \nabla f\cdot\mathbf{d}<0∇ f ⋅ d < 0
방향
D u f D_{\mathbf{u}}fD u f
∇ f \nabla f∇ f 와 같은 방향
+ ∥ ∇ f ∥ +\lVert\nabla f\rVert+ ∥ ∇ f ∥ (최대)
등고선 방향
0 00
∇ f \nabla f∇ f 의 반대 방향
− ∥ ∇ f ∥ -\lVert\nabla f\rVert− ∥ ∇ f ∥ (최소)
θ \thetaθ 만큼 벗어남
∥ ∇ f ∥ cos θ \lVert\nabla f\rVert\cos\theta∥ ∇ f ∥ cos θ
자주 하는 실수
바로잡기
u \mathbf{u}u 를 단위화하지 않습니다
값이 크기에 비례해 달라집니다
공식을 무조건 씁니다
전미분가능해야 합니다
최급증가를 최단경로로 봅니다
순간적인 방향일 뿐입니다
방향도함수 존재를 미분가능으로 봅니다
선형성이 더 필요합니다
문제 6. f ( x , y ) = x 2 y f(x,y)=x^{2}yf ( x , y ) = x 2 y 의 ( 1 , 2 ) (1,2)( 1 , 2 ) 에서 ∇ f \nabla f∇ f 를 구하세요.
답. ( 2 x y , x 2 ) = ( 4 , 1 ) (2xy,x^{2})=(4,1)( 2 x y , x 2 ) = ( 4 , 1 ) 입니다.
문제 7. 문제 6에서 u = ( 3 , 4 ) / 5 \mathbf{u}=(3,4)/5u = ( 3 , 4 ) / 5 방향의 방향도함수를 구하세요.
답. ( 4 , 1 ) ⋅ ( 0.6 , 0.8 ) = 2.4 + 0.8 = 3.2 (4,1)\cdot(0.6,0.8)=2.4+0.8=3.2( 4 , 1 ) ⋅ ( 0 . 6 , 0 . 8 ) = 2 . 4 + 0 . 8 = 3 . 2 입니다.
문제 8. 문제 6에서 최급증가 방향과 그 값을 구하세요.
답. ( 4 , 1 ) / 17 (4,1)/\sqrt{17}( 4 , 1 ) / 1 7 방향이며 값은 17 ≈ 4.123 \sqrt{17}\approx4.1231 7 ≈ 4 . 1 2 3 입니다.
문제 9. f ( x , y ) = e x sin y f(x,y)=e^{x}\sin yf ( x , y ) = e x sin y 의 ( 0 , 0 ) (0,0)( 0 , 0 ) 에서 ∇ f \nabla f∇ f 를 구하세요.
답. f x = e x sin y = 0 f_{x}=e^{x}\sin y=0f x = e x sin y = 0 , f y = e x cos y = 1 f_{y}=e^{x}\cos y=1f y = e x cos y = 1 이므로 ( 0 , 1 ) (0,1)( 0 , 1 ) 입니다.
문제 10. ∥ ∇ f ∥ = 6 \lVert\nabla f\rVert=6∥ ∇ f ∥ = 6 이고 u \mathbf{u}u 가 기울기와 6 0 ∘ 60^{\circ}6 0 ∘ 를 이루면 D u f D_{\mathbf{u}}fD u f 는 얼마입니까?
답. 6 cos 6 0 ∘ = 3 6\cos60^{\circ}=36 cos 6 0 ∘ = 3 입니다.
문제 11. 방향도함수가 0 00 이 되는 방향은 몇 개입니까?
답. 평면에서는 ∇ f ≠ 0 \nabla f\ne\mathbf{0}∇ f = 0 일 때 두 개이며 서로 반대입니다.
문제 12. v = ( 3 , 4 ) \mathbf{v}=(3,4)v = ( 3 , 4 ) 방향으로 재려면 무엇을 먼저 해야 합니까?
답. 단위화해서 ( 0.6 , 0.8 ) (0.6,0.8)( 0 . 6 , 0 . 8 ) 로 만들어야 합니다.
문제 13. f ( x , y , z ) = x y z f(x,y,z)=xyzf ( x , y , z ) = x y z 의 ( 1 , 1 , 1 ) (1,1,1)( 1 , 1 , 1 ) 에서 ∇ f \nabla f∇ f 를 구하세요.
답. ( y z , x z , x y ) = ( 1 , 1 , 1 ) (yz,xz,xy)=(1,1,1)( y z , x z , x y ) = ( 1 , 1 , 1 ) 입니다.
문제 14. 문제 13에서 u = ( 1 , 1 , 1 ) / 3 \mathbf{u}=(1,1,1)/\sqrt3u = ( 1 , 1 , 1 ) / 3 방향의 값을 구하세요.
답. 3 / 3 = 3 ≈ 1.732 3/\sqrt3=\sqrt3\approx1.7323 / 3 = 3 ≈ 1 . 7 3 2 이며 이것이 최댓값입니다.
문제 15. ∇ f = 0 \nabla f=\mathbf{0}∇ f = 0 이면 모든 방향도함수는 얼마입니까?
답. 전미분가능하다면 모두 0 00 입니다.
문제 16. d = ( − 1 , − 1 ) \mathbf{d}=(-1,-1)d = ( − 1 , − 1 ) 이 ∇ f = ( 2 , 3 ) \nabla f=(2,3)∇ f = ( 2 , 3 ) 인 점에서 하강 방향입니까?
답. ∇ f ⋅ d = − 2 − 3 = − 5 < 0 \nabla f\cdot\mathbf{d}=-2-3=-5<0∇ f ⋅ d = − 2 − 3 = − 5 < 0 이므로 하강 방향입니다.
문제 17. d = ( 3 , − 2 ) \mathbf{d}=(3,-2)d = ( 3 , − 2 ) 는 같은 점에서 하강 방향입니까?
답. 6 − 6 = 0 6-6=06 − 6 = 0 이므로 하강 방향이 아니며 등고선 방향입니다.
문제 18. 최적 방향에서 4 5 ∘ 45^{\circ}4 5 ∘ 벗어나면 감소율의 몇 퍼센트가 남습니까?
답. cos 4 5 ∘ ≈ 0.707 \cos45^{\circ}\approx0.707cos 4 5 ∘ ≈ 0 . 7 0 7 이므로 약 70.7 % 70.7\%7 0 . 7 % 입니다.
심화 1. 최급증가 정리를 코시-슈바르츠로 증명하고 등호 조건을 확인하세요.
63강의 부등식을 씁니다.
코시-슈바르츠. ∣ a ⋅ b ∣ ≤ ∥ a ∥ ∥ b ∥ \lvert\mathbf{a}\cdot\mathbf{b}\rvert\le\lVert\mathbf{a}\rVert\lVert\mathbf{b}\rVert∣ a ⋅ b ∣ ≤ ∥ a ∥ ∥ b ∥ 이며 등호는 두 벡터가 일차종속일 때입니다.
증명. ∥ u ∥ = 1 \lVert\mathbf{u}\rVert=1∥ u ∥ = 1 이므로
∣ D u f ∣ = ∣ ∇ f ⋅ u ∣ ≤ ∥ ∇ f ∥ ⋅ 1 = ∥ ∇ f ∥ \lvert D_{\mathbf{u}}f\rvert=\lvert\nabla f\cdot\mathbf{u}\rvert\le\lVert\nabla f\rVert\cdot1=\lVert\nabla f\rVert
∣ D u f ∣ = ∣ ∇ f ⋅ u ∣ ≤ ∥ ∇ f ∥ ⋅ 1 = ∥ ∇ f ∥
이라 모든 방향도함수가 [ − ∥ ∇ f ∥ , ∥ ∇ f ∥ ] [-\lVert\nabla f\rVert,\lVert\nabla f\rVert][ − ∥ ∇ f ∥ , ∥ ∇ f ∥ ] 안에 있습니다. 이제 상한이 실제로 달성됨을 보입니다. ∇ f ≠ 0 \nabla f\ne\mathbf{0}∇ f = 0 이면 u ∗ = ∇ f / ∥ ∇ f ∥ \mathbf{u}^{*}=\nabla f/\lVert\nabla f\rVertu ∗ = ∇ f / ∥ ∇ f ∥ 가 단위벡터이고
D u ∗ f = ∇ f ⋅ ∇ f ∥ ∇ f ∥ = ∥ ∇ f ∥ 2 ∥ ∇ f ∥ = ∥ ∇ f ∥ D_{\mathbf{u}^{*}}f=\nabla f\cdot\frac{\nabla f}{\lVert\nabla f\rVert}=\frac{\lVert\nabla f\rVert^{2}}{\lVert\nabla f\rVert}=\lVert\nabla f\rVert
D u ∗ f = ∇ f ⋅ ∥ ∇ f ∥ ∇ f = ∥ ∇ f ∥ ∥ ∇ f ∥ 2 = ∥ ∇ f ∥
입니다. 같은 방식으로 − u ∗ -\mathbf{u}^{*}− u ∗ 에서 − ∥ ∇ f ∥ -\lVert\nabla f\rVert− ∥ ∇ f ∥ 입니다. ■ \blacksquare■
등호 조건이 유일성을 줍니다. 코시-슈바르츠의 등호는 u \mathbf{u}u 와 ∇ f \nabla f∇ f 가 일차종속일 때인데, u \mathbf{u}u 가 단위벡터라는 제약이 붙으면 ± u ∗ \pm\mathbf{u}^{*}± u ∗ 둘뿐입니다. 최급증가 방향은 정확히 하나 이고 최급감소 방향도 하나입니다.
∇ f = 0 \nabla f=\mathbf{0}∇ f = 0 이면 상황이 다릅니다. 모든 방향도함수가 0 00 이라 가장 가파른 방향이 없습니다. 이 점이 임계점이며, 어느 쪽으로 가야 할지를 일차 정보로는 알 수 없습니다. 99강의 헤세 행렬이 필요해지는 지점입니다.
63강 심화에서 코시-슈바르츠가 여러 곳에서 쓰인다고 했는데, 최적화의 방향 선택이 그중 가장 실용적인 용도 입니다.
심화 2. 방향도함수의 정의에서 단위벡터를 요구하지 않으면 무엇이 달라지는지 논하세요.
정의에서 u \mathbf{u}u 의 크기 제약을 빼고 임의의 v ≠ 0 \mathbf{v}\ne\mathbf{0}v = 0 을 넣어 봅니다.
D v f = t → 0 f ( a + t v ) − f ( a ) t = ∇ f ⋅ v D_{\mathbf{v}}f=\lim_{t\to0}\frac{f(\mathbf{a}+t\mathbf{v})-f(\mathbf{a})}{t}=\nabla f\cdot\mathbf{v}
D v f = t → 0 lim t f ( a + t v ) − f ( a ) = ∇ f ⋅ v
전미분가능하면 이 값은 여전히 잘 정의되고 v \mathbf{v}v 에 선형 입니다. 그런데 크기가 문제가 됩니다.
D 2 u f = 2 D u f D_{2\mathbf{u}}f=2D_{\mathbf{u}}f
D 2 u f = 2 D u f
같은 방향인데 값이 두 배 입니다. t v t\mathbf{v}t v 에서 v \mathbf{v}v 가 크면 같은 t tt 에 더 멀리 가기 때문입니다.
규약
값
뜻
∥ u ∥ = 1 \lVert\mathbf{u}\rVert=1∥ u ∥ = 1
∥ ∇ f ∥ cos θ \lVert\nabla f\rVert\cos\theta∥ ∇ f ∥ cos θ
단위 거리당 변화율
제약 없음
∥ ∇ f ∥ ∥ v ∥ cos θ \lVert\nabla f\rVert\lVert\mathbf{v}\rVert\cos\theta∥ ∇ f ∥ ∥ v ∥ cos θ
v \mathbf{v}v 만큼 갔을 때 변화량
두 규약 모두 쓰입니다. 방향들을 비교하려면 첫째가 맞고, 실제 걸음을 계산하려면 둘째가 편합니다. 경사하강법의 갱신식
Δ f ≈ ∇ f ⋅ ( − η ∇ f ) = − η ∥ ∇ f ∥ 2 \Delta f\approx\nabla f\cdot(-\eta\nabla f)=-\eta\lVert\nabla f\rVert^{2}
Δ f ≈ ∇ f ⋅ ( − η ∇ f ) = − η ∥ ∇ f ∥ 2
은 둘째 규약을 쓴 것이며, v = − η ∇ f \mathbf{v}=-\eta\nabla fv = − η ∇ f 가 단위벡터가 아닙니다. 감소량이 ∥ ∇ f ∥ \lVert\nabla f\rVert∥ ∇ f ∥ 가 아니라 그 제곱에 비례 하는 것이 여기서 나오고, 110강의 수렴 해석이 이 식에서 출발합니다.
혼동을 피하는 규칙은 단순합니다. "방향도함수"라 부를 때는 단위벡터를 쓰고, 걸음을 계산할 때는 단위화하지 않은 채로 내적합니다.
심화 3. 최급강하 방향이 거리 재는 방식에 의존함을 보이세요.
문제 3에서 − ∇ f -\nabla f− ∇ f 가 가장 가파른 감소 방향이라 했습니다. 이 결론에는 숨은 전제가 있습니다.
증명에서 "단위벡터"를 ∥ u ∥ 2 = 1 \lVert\mathbf{u}\rVert_{2}=1∥ u ∥ 2 = 1 로 잡았습니다. 90강에서 노름이 여러 가지라고 했는데, 다른 노름으로 "단위"를 정하면 답이 달라집니다.
일반화된 최급강하 방향은 다음 문제의 답입니다.
d ∗ = arg ∥ d ∥ = 1 ∇ f ⋅ d \mathbf{d}^{*}=\arg\min_{\lVert\mathbf{d}\rVert=1}\ \nabla f\cdot\mathbf{d}
d ∗ = arg ∥ d ∥ = 1 min ∇ f ⋅ d
양정치 대칭행렬 A AA 가 정하는 노름 ∥ d ∥ A = d ⊤ A d \lVert\mathbf{d}\rVert_{A}=\sqrt{\mathbf{d}^{\top}A\mathbf{d}}∥ d ∥ A = d ⊤ A d 를 쓰면 답이
d ∗ ∝ − A − 1 ∇ f \mathbf{d}^{*}\propto-A^{-1}\nabla f
d ∗ ∝ − A − 1 ∇ f
가 됩니다. A = I A=IA = I 면 익숙한 − ∇ f -\nabla f− ∇ f 입니다.
차이가 얼마나 큰지 확인합니다. 93강 심화 5의 함수를 씁니다.
f ( x , y ) = 1 2 ( x 2 + 100 y 2 ) , H = ( 1 0 0 100 ) f(x,y)=\tfrac12(x^{2}+100y^{2}),\qquad H=\begin{pmatrix}1&0\\0&100\end{pmatrix}
f ( x , y ) = 2 1 ( x 2 + 1 0 0 y 2 ) , H = ( 1 0 0 1 0 0 )
점 ( 1 , 1 ) (1,1)( 1 , 1 ) 에서 ∇ f = ( 1 , 100 ) \nabla f=(1,100)∇ f = ( 1 , 1 0 0 ) 입니다. 최소점은 원점이므로 **정답 방향은 − ( 1 , 1 ) / 2 -(1,1)/\sqrt2− ( 1 , 1 ) / 2 **입니다. 검산에서
방식
방향
정답과의 각
ℓ 2 \ell^{2}ℓ 2 최급강하
( − 0.01 , − 0.99995 ) (-0.01,-0.99995)( − 0 . 0 1 , − 0 . 9 9 9 9 5 )
44.4271^
헤세 노름 최급강하
( − 0.707107 , − 0.707107 ) (-0.707107,-0.707107)( − 0 . 7 0 7 1 0 7 , − 0 . 7 0 7 1 0 7 )
0.0000^
ℓ 2 \ell^{2}ℓ 2 최급강하가 정답에서 44 444 4 도나 벗어납니다. y yy 성분의 기울기가 100 1001 0 0 배 크다 보니 거의 수직으로 내려가는데, 실제로 가야 할 곳은 대각선 방향입니다. 반면 헤세 노름으로 재면 정확히 최소점을 가리킵니다.
− H − 1 ∇ f = − ( 1 0 0 0.01 ) ( 1 100 ) = ( − 1 − 1 ) -H^{-1}\nabla f=-\begin{pmatrix}1&0\\0&0.01\end{pmatrix}\begin{pmatrix}1\\100\end{pmatrix}=\begin{pmatrix}-1\\-1\end{pmatrix}
− H − 1 ∇ f = − ( 1 0 0 0 . 0 1 ) ( 1 1 0 0 ) = ( − 1 − 1 )
이것이 112강 뉴턴법의 갱신 방향입니다. 뉴턴법은 헤세 행렬이 정하는 노름에서의 최급강하 이며, 이차함수에서는 한 걸음에 최소점에 도달합니다.
여기서 얻는 관점이 중요합니다.
"가장 가파르다"는 절대적인 말이 아니라 거리 재는 방식에 딸린 말입니다 \text{"가장 가파르다"는 절대적인 말이 아니라 거리 재는 방식에 딸린 말입니다}
" 가장 가파르다 " 는 절대적인 말이 아니라 거리 재는 방식에 딸린 말입니다
이 관점이 최적화 알고리즘들을 하나로 꿰맵니다.
알고리즘
쓰는 A AA
강의
경사하강법
I II
109
뉴턴법
헤세 H HH
112
준뉴턴법
H HH 의 근사
112
Adam
대각 근사
111
자연경사법
피셔 정보행렬
236
111강의 Adam이 성분마다 학습률을 다르게 주는 것 도 이 틀에서 보면 대각행렬 A AA 를 쓰는 최급강하입니다. 알고리즘을 새로 외우는 대신 "어떤 노름을 쓰는가"만 물으면 됩니다.
심화 4. 3변수에서 등위면의 접평면을 방향도함수로 유도하세요.
F ( x , y , z ) = c F(x,y,z)=cF ( x , y , z ) = c 인 등위면 위의 점 p \mathbf{p}p 를 봅니다. 이 면 위를 따라 u \mathbf{u}u 방향으로 움직이면 F FF 가 변하지 않으므로
D u F ( p ) = ∇ F ( p ) ⋅ u = 0 D_{\mathbf{u}}F(\mathbf{p})=\nabla F(\mathbf{p})\cdot\mathbf{u}=0
D u F ( p ) = ∇ F ( p ) ⋅ u = 0
즉 등위면의 접평면에 놓인 모든 방향이 ∇ F \nabla F∇ F 와 수직 입니다. 95강 문제 4의 3차원 판입니다.
따라서 접평면은 p \mathbf{p}p 를 지나고 ∇ F ( p ) \nabla F(\mathbf{p})∇ F ( p ) 를 법선으로 갖는 평면입니다.
∇ F ( p ) ⋅ ( x − p ) = 0 \nabla F(\mathbf{p})\cdot(\mathbf{x}-\mathbf{p})=0
∇ F ( p ) ⋅ ( x − p ) = 0
구면에서 확인합니다. F = x 2 + y 2 + z 2 = 14 F=x^{2}+y^{2}+z^{2}=14F = x 2 + y 2 + z 2 = 1 4 위의 점 ( 1 , 2 , 3 ) (1,2,3)( 1 , 2 , 3 ) 에서 ∇ F = ( 2 , 4 , 6 ) \nabla F=(2,4,6)∇ F = ( 2 , 4 , 6 ) 이므로 접평면은
2 ( x − 1 ) + 4 ( y − 2 ) + 6 ( z − 3 ) = 0 ⟺ x + 2 y + 3 z = 14 2(x-1)+4(y-2)+6(z-3)=0\quad\Longleftrightarrow\quad x+2y+3z=14
2 ( x − 1 ) + 4 ( y − 2 ) + 6 ( z − 3 ) = 0 ⟺ x + 2 y + 3 z = 1 4
법선이 ( 1 , 2 , 3 ) (1,2,3)( 1 , 2 , 3 ) 이며 이는 반지름 방향입니다. 구면의 접평면이 반지름에 수직 이라는 초등기하의 사실이 그대로 나옵니다.
이 결과가 뒤에서 쓰이는 자리를 적어 둡니다.
쓰임
내용
강의
곡면의 법선
조명 계산의 기본입니다
398, 402
부호거리함수
∥ ∇ F ∥ = 1 \lVert\nabla F\rVert=1∥ ∇ F ∥ = 1 인 등위면 표현입니다
397
제약의 접공간
라그랑주 조건의 무대입니다
113
음함수 정리
∇ F ≠ 0 \nabla F\ne\mathbf{0}∇ F = 0 이면 국소적으로 그래프입니다
93 심화 1
둘째 줄이 특히 실용적입니다. 397강의 부호거리함수는 ∥ ∇ F ∥ = 1 \lVert\nabla F\rVert=1∥ ∇ F ∥ = 1 이 되도록 정규화한 F FF 이며, 그러면 ∇ F \nabla F∇ F 가 곧 단위법선이라 렌더링에서 바로 씁니다.
심화 5. 등고선 간격과 방향도함수의 관계를 정량화하세요.
93강 문제 3에서 등고선 간격이 기울기에 반비례한다고 했고, 95강에서 그 기울기가 ∥ ∇ f ∥ \lVert\nabla f\rVert∥ ∇ f ∥ 임을 봤습니다. 이제 정확한 식을 쓸 수 있습니다.
높이 c cc 인 등고선에서 출발해 u \mathbf{u}u 방향으로 걸어 높이 c + Δ c c+\Delta cc + Δ c 인 등고선에 닿을 때까지의 거리를 Δ s \Delta sΔ s 라 하면
Δ c ≈ D u f ⋅ Δ s = ∥ ∇ f ∥ cos θ ⋅ Δ s \Delta c\approx D_{\mathbf{u}}f\cdot\Delta s=\lVert\nabla f\rVert\cos\theta\cdot\Delta s
Δ c ≈ D u f ⋅ Δ s = ∥ ∇ f ∥ cos θ ⋅ Δ s
이므로
Δ s ≈ Δ c ∥ ∇ f ∥ cos θ \Delta s\approx\frac{\Delta c}{\lVert\nabla f\rVert\cos\theta}
Δ s ≈ ∥ ∇ f ∥ cos θ Δ c
세 가지 결론이 나옵니다.
첫째, θ = 0 \theta=0θ = 0 일 때 Δ s \Delta sΔ s 가 최소입니다. 등고선을 수직으로 가로지르는 것이 두 등고선 사이의 최단 경로 입니다.
둘째, θ → 9 0 ∘ \theta\to90^{\circ}θ → 9 0 ∘ 이면 Δ s → ∞ \Delta s\to\inftyΔ s → ∞ 입니다. 등고선과 나란히 걸으면 다음 등고선에 영원히 닿지 않습니다.
셋째, 지도에서 재는 등고선 간격은 θ = 0 \theta=0θ = 0 인 최단 거리입니다. 그래서 지도의 간격이 곧 Δ c / ∥ ∇ f ∥ \Delta c/\lVert\nabla f\rVertΔ c / ∥ ∇ f ∥ 입니다.
f = x 2 + y 2 f=x^{2}+y^{2}f = x 2 + y 2 에서 확인합니다. 양의 x xx 축 위 x = c x=\sqrt cx = c 인 점에서 ∥ ∇ f ∥ = 2 c \lVert\nabla f\rVert=2\sqrt c∥ ∇ f ∥ = 2 c 이므로
Δ s ≈ Δ c 2 c \Delta s\approx\frac{\Delta c}{2\sqrt c}
Δ s ≈ 2 c Δ c
93강의 표에서 c = 1 → 2 c=1\to2c = 1 → 2 일 때 Δ c = 1 \Delta c=1Δ c = 1 이고 c ≈ 1.2 \sqrt c\approx1.2c ≈ 1 . 2 근처이므로 Δ s ≈ 1 / 2.4 ≈ 0.417 \Delta s\approx1/2.4\approx0.417Δ s ≈ 1 / 2 . 4 ≈ 0 . 4 1 7 인데, 실제 간격이 0.4142 0.41420 . 4 1 4 2 였습니다. 근사식이 잘 맞습니다.
이것이 지형도를 읽는 수학적 근거 입니다. 등고선 지도만 보고도 각 점의 기울기 크기를 알 수 있으며, 방향까지 알려면 등고선에 수직인 쪽을 보면 됩니다.
심화 6. 이 강의가 97강과 어떻게 이어지는지 정리하세요.
이 강의에서 u \mathbf{u}u 방향의 직선을 따라 움직였습니다.
γ ( t ) = a + t u \gamma(t)=\mathbf{a}+t\mathbf{u}
γ ( t ) = a + t u
직선이 아니라 곡선을 따라 움직이면 어떻게 될까요. 이것이 97강의 질문입니다.
γ ( t ) \gamma(t)γ ( t ) 가 임의의 매끈한 곡선이면 f ( γ ( t ) ) f(\gamma(t))f ( γ ( t ) ) 는 t tt 의 한 변수 함수이고, 그 미분은
d d t f ( γ ( t ) ) = ∇ f ( γ ( t ) ) ⋅ γ ′ ( t ) \frac{d}{dt}f(\gamma(t))=\nabla f(\gamma(t))\cdot\gamma'(t)
d t d f ( γ ( t ) ) = ∇ f ( γ ( t ) ) ⋅ γ ′ ( t )
입니다. 직선일 때 γ ′ ( t ) = u \gamma'(t)=\mathbf{u}γ ′ ( t ) = u 이므로 이 강의의 공식이 특별한 경우 로 들어갑니다.
경로
γ ′ ( t ) \gamma'(t)γ ′ ( t )
결과
직선 \mathbf{a}+t\mathbf
\mathbf
D u f D_{\mathbf{u}}fD u f (96강)
임의의 곡선
γ ′ ( t ) \gamma'(t)γ ′ ( t )
연쇄법칙 (97강)
97강은 이 강의를 곡선으로 일반화 하는 셈이며, 더 나아가 여러 변수가 서로 얽혀 의존하는 경우를 다룹니다.
z = f ( x , y ) , x = x ( s , t ) , y = y ( s , t ) ⟹ ∂ z ∂ s = ∂ z ∂ x ∂ x ∂ s + ∂ z ∂ y ∂ y ∂ s z=f(x,y),\quad x=x(s,t),\quad y=y(s,t)\ \Longrightarrow\ \frac{\partial z}{\partial s}=\frac{\partial z}{\partial x}\frac{\partial x}{\partial s}+\frac{\partial z}{\partial y}\frac{\partial y}{\partial s}
z = f ( x , y ) , x = x ( s , t ) , y = y ( s , t ) ⟹ ∂ s ∂ z = ∂ x ∂ z ∂ s ∂ x + ∂ y ∂ z ∂ s ∂ y
이 식이 신경망 역전파의 전부입니다. 층을 하나 지날 때마다 이 규칙을 적용하며, 233강에서 그 반복을 알고리즘으로 정리합니다.
98강에서는 출력이 여럿인 경우로 넓혀 연쇄법칙이 행렬 곱 임을 보입니다. 66강에서 "행렬 곱은 변환의 합성"이라 한 것이 그때 미분의 언어로 되돌아옵니다.
01단원은 미분을 선형대수로 번역하는 단원입니다 \text{01단원은 미분을 선형대수로 번역하는 단원입니다}
01 단원은 미분을 선형대수로 번역하는 단원입니다
import numpy as np
# --- 문제 1: 임의 방향의 변화율 -----------------------------------------
f = lambda x, y: x**2 + y**2
a = np.array([3.0, 4.0]); g = np.array([6.0, 8.0])
print(" 방향 u 차분비 grad.u")
for th in [0.0, np.pi/4, np.pi/2, np.arctan2(3, -4)]:
u = np.array([np.cos(th), np.sin(th)])
t = 1e-7
diff = (f(*(a + t*u)) - f(*a))/t
print(" (%+.4f,%+.4f) %+12.6f %+12.6f" % (u[0], u[1], diff, g @ u))
# 방향 u 차분비 grad.u
# (+1.0000,+0.0000) +6.000000 +6.000000
# (+0.7071,+0.7071) +9.899495 +9.899495
# (+0.0000,+1.0000) +8.000000 +8.000000
# (-0.8000,+0.6000) +0.000000 +0.000000
# --- 문제 2: 편미분은 방향도함수의 특별한 경우 --------------------------
for u, name in [(np.array([1.0,0.0]), "e1"), (np.array([0.0,1.0]), "e2")]:
print(" D_%s f = %+.1f" % (name, g @ u))
# D_e1 f = +6.0
# D_e2 f = +8.0
# --- 문제 3: 최대와 최소 -------------------------------------------------
n = np.linalg.norm(g)
print(" ||grad|| = %.1f" % n)
best = g/n
print(" 최급증가 방향 %s 에서 %+.1f" % (best, g @ best))
print(" 최급감소 방향 %s 에서 %+.1f" % (-best, g @ (-best)))
ths = np.linspace(0, 2*np.pi, 100000)
vals = g[0]*np.cos(ths) + g[1]*np.sin(ths)
print(" 각도를 훑어본 최댓값 %.6f, 최솟값 %.6f" % (vals.max(), vals.min()))
# ||grad|| = 10.0
# 최급증가 방향 [0.6 0.8] 에서 +10.0
# 최급감소 방향 [-0.6 -0.8] 에서 -10.0
# 각도를 훑어본 최댓값 10.000000, 최솟값 -10.000000
# 10만 개 방향을 다 재 봐도 코시-슈바르츠의 상한을 넘지 못합니다.
# --- 문제 4: 등고선 방향은 0 --------------------------------------------
t_vec = np.array([-4.0, 3.0])/5
print(" 등고선 접선 %s 에서 D_u f = %+.3e (참값 0)" % (t_vec, g @ t_vec))
print(" 60도 방향에서 D_u f = %+.6f" % (g @ np.array([np.cos(np.pi/3), np.sin(np.pi/3)])))
# 등고선 접선 [-0.8 0.6] 에서 D_u f = -8.882e-16 (참값 0)
# 60도 방향에서 D_u f = +9.928203
# --- 문제 5: 전미분가능이 아니면 공식이 깨진다 --------------------------
def G(x, y):
if x == 0.0 and y == 0.0: return 0.0
return x*x*y/(x**4 + y*y)
print(" G 의 원점: grad = (0, 0) 이므로 grad.u = 0 이어야 하는데")
print(" 각도 정의로 잰 D_u G grad.u")
for th in [0.0, np.pi/6, np.pi/4, np.pi/3]:
u = np.array([np.cos(th), np.sin(th)]); t = 1e-7
d = (G(*(t*u)) - 0.0)/t
theory = (np.cos(th)**2/np.sin(th)) if abs(np.sin(th)) > 1e-12 else 0.0
print(" %5.1f도 %+16.6f %+8.1f (이론 %+.6f)" % (np.degrees(th), d, 0.0, theory))
# G 의 원점: grad = (0, 0) 이므로 grad.u = 0 이어야 하는데
# 각도 정의로 잰 D_u G grad.u
# 0.0도 +0.000000 +0.0 (이론 +0.000000)
# 30.0도 +1.500000 +0.0 (이론 +1.500000)
# 45.0도 +0.707107 +0.0 (이론 +0.707107)
# 60.0도 +0.288675 +0.0 (이론 +0.288675)
# 방향도함수는 다 있는데 grad 와의 내적으로 표현되지 않습니다. 선형이 아니기 때문입니다.
# --- 심화 3: 최급강하 방향은 노름에 의존한다 ----------------------------
H = np.array([[1.0, 0.0], [0.0, 100.0]])
p = np.array([1.0, 1.0])
gr = H @ p
print(" f = (x^2 + 100y^2)/2 의 (1,1) 에서 grad = %s" % gr)
d2 = -gr/np.linalg.norm(gr)
dH = -np.linalg.solve(H, gr); dH = dH/np.linalg.norm(dH)
dmin = -p/np.linalg.norm(p)
print(" L2 최급강하 방향 %s" % np.round(d2, 6))
print(" 헤세 노름 최급강하 방향 %s" % np.round(dH, 6))
print(" 최소점을 곧장 향하는 방향 %s" % np.round(dmin, 6))
print(" L2 방향과 정답의 각도 %.4f 도" % np.degrees(np.arccos(np.clip(d2 @ dmin, -1, 1))))
print(" 헤세 방향과 정답의 각도 %.4f 도" % np.degrees(np.arccos(np.clip(dH @ dmin, -1, 1))))
# f = (x^2 + 100y^2)/2 의 (1,1) 에서 grad = [ 1. 100.]
# L2 최급강하 방향 [-0.01 -0.99995]
# 헤세 노름 최급강하 방향 [-0.707107 -0.707107]
# 최소점을 곧장 향하는 방향 [-0.707107 -0.707107]
# L2 방향과 정답의 각도 44.4271 도
# 헤세 방향과 정답의 각도 0.0000 도
# 가장 가파른 방향이 목적지를 향하지 않습니다. 노름을 바꾸면 정확히 향합니다.
마지막 결과가 이 강의의 반전입니다. − ∇ f -\nabla f− ∇ f 는 분명히 가장 가파른 감소 방향인데, 목적지에서 44 444 4 도나 어긋납니다.
가장 가파른 것과 가장 빠른 것은 다릅니다 \text{가장 가파른 것과 가장 빠른 것은 다릅니다}
가장 가파른 것과 가장 빠른 것은 다릅니다
이 어긋남이 109강부터 112강까지의 주제입니다.
방향도함수의 정의를 쓰세요.
u \mathbf{u}u 를 단위벡터로 잡는 이유를 쓰세요.
D u f D_{\mathbf{u}}fD u f 의 계산 공식과 그 전제를 쓰세요.
편미분을 방향도함수로 표현하세요.
최급증가 방향과 그 값을 쓰세요.
증명에 쓰는 부등식과 등호 조건을 쓰세요.
D u f D_{\mathbf{u}}fD u f 를 각도로 표현하세요.
하강 방향의 조건을 쓰세요.
모든 방향도함수가 존재해도 공식이 깨지는 이유를 쓰세요.
최급강하 방향이 무엇에 의존합니까?
정답.
t → 0 ( f ( a + t u ) − f ( a ) ) / t \lim_{t\to0}\bigl(f(\mathbf{a}+t\mathbf{u})-f(\mathbf{a})\bigr)/tlim t → 0 ( f ( a + t u ) − f ( a ) ) / t 입니다.
크기를 고정해야 방향들끼리 비교할 수 있기 때문입니다.
∇ f ⋅ u \nabla f\cdot\mathbf{u}∇ f ⋅ u 이며 전미분가능해야 합니다.
f x i = D e i f f_{x_{i}}=D_{\mathbf{e}_{i}}ff x i = D e i f 입니다.
∇ f / ∥ ∇ f ∥ \nabla f/\lVert\nabla f\rVert∇ f / ∥ ∇ f ∥ 방향이며 값은 ∥ ∇ f ∥ \lVert\nabla f\rVert∥ ∇ f ∥ 입니다.
코시-슈바르츠이며 등호는 두 벡터가 나란할 때입니다.
∥ ∇ f ∥ cos θ \lVert\nabla f\rVert\cos\theta∥ ∇ f ∥ cos θ 입니다.
∇ f ⋅ d < 0 \nabla f\cdot\mathbf{d}<0∇ f ⋅ d < 0 입니다.
u \mathbf{u}u 에 대한 선형성이 없기 때문이며 전미분가능하지 않습니다.
거리를 재는 노름에 의존하며 ℓ 2 \ell^{2}ℓ 2 에서는 − ∇ f -\nabla f− ∇ f 입니다.
기호
읽는 법
뜻
D u f D_{\mathbf{u}}fD u f
방향도함수
u \mathbf{u}u 방향의 변화율입니다
\mathbf
단위벡터
∥ u ∥ = 1 \lVert\mathbf{u}\rVert=1∥ u ∥ = 1 입니다
\mathbf{e}_
표준기저
편미분의 방향입니다
θ \thetaθ
사잇각
∇ f \nabla f∇ f 와 u \mathbf{u}u 가 이룹니다
최급증가
steepest ascent
∇ f \nabla f∇ f 방향입니다
최급강하
steepest descent
− ∇ f -\nabla f− ∇ f 방향입니다
하강 방향
descent direction
∇ f ⋅ d < 0 \nabla f\cdot\mathbf{d}<0∇ f ⋅ d < 0 입니다
\lVert\cdot\rVert_
A AA -노름
d ⊤ A d \sqrt{\mathbf{d}^{\top}A\mathbf{d}}d ⊤ A d 입니다
− A − 1 ∇ f -A^{-1}\nabla f− A − 1 ∇ f
일반 최급강하
A AA -노름에서의 방향입니다
다음 97강에서는 다변수 연쇄법칙 을 다룹니다. 이 강의에서 직선을 따라 움직였다면, 이제 곡선을 따라 움직이고 변수들이 서로 얽혀 의존하는 경우를 다룹니다. d d t f ( γ ( t ) ) = ∇ f ⋅ γ ′ ( t ) \frac{d}{dt}f(\gamma(t))=\nabla f\cdot\gamma'(t)d t d f ( γ ( t ) ) = ∇ f ⋅ γ ′ ( t ) 가 출발점이며, 이 규칙의 반복 적용이 신경망의 역전파 입니다.