산비탈에 서서 “여기서 가장 가파르게 올라가는 방향은 어디일까?”를 묻는다고 합시다. 동쪽으로 한 걸음, 북쪽으로 한 걸음 갈 때의 기울기를 각각 재면(편미분) 모든 방향의 기울기와 가장 가파른 방향을 알 수 있습니다. 그 방향을 가리키는 벡터가 그래디언트이고, 머신러닝의 학습(경사하강법)은 그 반대 방향으로 계속 걸어 내려가는 것입니다.
2.1 편미분
다른 변수를 모두 상수로 묶어 두고 한 변수로만 미분합니다.
정의 2.1 (편미분). f ( x , y ) f(x, y) f ( x , y ) 의 x x x 에 대한 편미분 (partial derivative)은
∂ f ∂ x ( a , b ) = lim h → 0 f ( a + h , b ) − f ( a , b ) h \frac{\partial f}{\partial x}(a, b) = \lim_{h \to 0}\frac{f(a + h, b) - f(a, b)}{h} ∂ x ∂ f ( a , b ) = h → 0 lim h f ( a + h , b ) − f ( a , b )
입니다. f x f_x f x 로도 씁니다. y y y 에 대한 편미분도 같습니다.
기호 ∂ \partial ∂ 는 “편(partial)”이라는 뜻의 둥근 d로 “라운드 디” 또는 “파셜”이라 읽습니다. 계산은 미적분학 4장의 규칙을 그대로 쓰되, 다른 변수를 상수로 봅니다.
예제 2.2. f ( x , y ) = x 3 y 2 + sin ( x y ) f(x, y) = x^3y^2 + \sin(xy) f ( x , y ) = x 3 y 2 + sin ( x y ) .
f x = 3 x 2 y 2 + y cos ( x y ) , f y = 2 x 3 y + x cos ( x y ) . f_x = 3x^2y^2 + y\cos(xy), \qquad f_y = 2x^3y + x\cos(xy). f x = 3 x 2 y 2 + y cos ( x y ) , f y = 2 x 3 y + x cos ( x y ) .
그래프로 보면 f x ( a , b ) f_x(a, b) f x ( a , b ) 는 곡면을 평면 y = b y = b y = b 로 자른 곡선의 기울기, 곧 “x x x 축 방향의 경사”입니다.
2.2 고계 편미분
편미분을 다시 편미분할 수 있습니다: f x x = ∂ 2 f ∂ x 2 f_{xx} = \frac{\partial^2 f}{\partial x^2} f xx = ∂ x 2 ∂ 2 f , f x y = ∂ ∂ y ( ∂ f ∂ x ) f_{xy} = \frac{\partial}{\partial y}\left(\frac{\partial f}{\partial x}\right) f x y = ∂ y ∂ ( ∂ x ∂ f ) 등.
정리 2.3 (클레로). f x y f_{xy} f x y 와 f y x f_{yx} f y x 가 연속이면 f x y = f y x f_{xy} = f_{yx} f x y = f y x 입니다.
예제 2.4. 예제 2.2에서 f x y = 6 x 2 y + cos ( x y ) − x y sin ( x y ) = f y x f_{xy} = 6x^2y + \cos(xy) - xy\sin(xy) = f_{yx} f x y = 6 x 2 y + cos ( x y ) − x y sin ( x y ) = f y x . 미분하는 순서를 바꿔도 같습니다. 4장의 헤세 행렬이 대칭인 이유입니다.
2.3 방향도함수
정의 2.5 (방향도함수). 단위벡터 u \mathbf{u} u 방향의 방향도함수 (directional derivative)는
D u f ( a ) = lim h → 0 f ( a + h u ) − f ( a ) h . D_{\mathbf{u}}f(\mathbf{a}) = \lim_{h\to0}\frac{f(\mathbf{a} + h\mathbf{u}) - f(\mathbf{a})}{h}. D u f ( a ) = h → 0 lim h f ( a + h u ) − f ( a ) .
u = ( 1 , 0 ) \mathbf{u} = (1, 0) u = ( 1 , 0 ) 이면 f x f_x f x , u = ( 0 , 1 ) \mathbf{u} = (0, 1) u = ( 0 , 1 ) 이면 f y f_y f y 입니다. 다른 방향의 기울기는 편미분 두 개로 계산됩니다.
정리 2.6. f f f 가 미분 가능하면(3장) D u f = f x u 1 + f y u 2 D_{\mathbf{u}}f = f_x u_1 + f_y u_2 D u f = f x u 1 + f y u 2 .
2.4 그래디언트
정의 2.7 (그래디언트). 편미분을 모은 벡터 ∇ f = ( ∂ f ∂ x 1 , … , ∂ f ∂ x n ) \nabla f = \left(\dfrac{\partial f}{\partial x_1}, \dots, \dfrac{\partial f}{\partial x_n}\right) ∇ f = ( ∂ x 1 ∂ f , … , ∂ x n ∂ f ) 를 f f f 의 그래디언트 (gradient)라 합니다.
∇ \nabla ∇ 는 “나블라(nabla)” 또는 “델”이라 읽습니다. 정리 2.6 은 내적으로 D u f = ∇ f ⋅ u D_{\mathbf{u}}f = \nabla f\cdot\mathbf{u} D u f = ∇ f ⋅ u 라 쓸 수 있습니다.
정리 2.8 (가장 가파른 방향). ∇ f ( a ) ≠ 0 \nabla f(\mathbf{a}) \ne \mathbf{0} ∇ f ( a ) = 0 이면
D u f D_{\mathbf{u}}f D u f 가 가장 큰 방향은 ∇ f \nabla f ∇ f 의 방향이고, 그 최댓값은 ∥ ∇ f ∥ \|\nabla f\| ∥∇ f ∥ 입니다.
가장 작은(가장 가파르게 내려가는) 방향은 − ∇ f -\nabla f − ∇ f 입니다.
∇ f \nabla f ∇ f 에 수직인 방향으로는 기울기가 0입니다.
증명. D u f = ∇ f ⋅ u = ∥ ∇ f ∥ ∥ u ∥ cos θ = ∥ ∇ f ∥ cos θ D_{\mathbf{u}}f = \nabla f\cdot\mathbf{u} = \|\nabla f\|\|\mathbf{u}\|\cos\theta = \|\nabla f\|\cos\theta D u f = ∇ f ⋅ u = ∥∇ f ∥∥ u ∥ cos θ = ∥∇ f ∥ cos θ 이고, cos θ \cos\theta cos θ 는 θ = 0 \theta = 0 θ = 0 에서 1(최대), π \pi π 에서 − 1 -1 − 1 (최소), π / 2 \pi/2 π /2 에서 0입니다. □
함수와 학습률을 바꾸면 화살표(그래디언트)와 빨간 경로(그래디언트 반대로 걷기)가 바뀝니다. 그림을 누르면 그곳에서 출발합니다 이 위젯은 JavaScript가 필요합니다
예제 2.9. f ( x , y ) = x 2 + 3 y 2 f(x, y) = x^2 + 3y^2 f ( x , y ) = x 2 + 3 y 2 , 점 ( 1 , 1 ) (1, 1) ( 1 , 1 ) . ∇ f = ( 2 x , 6 y ) = ( 2 , 6 ) \nabla f = (2x, 6y) = (2, 6) ∇ f = ( 2 x , 6 y ) = ( 2 , 6 ) . 가장 가파르게 오르는 방향은 ( 2 , 6 ) / ∥ ( 2 , 6 ) ∥ = ( 1 , 3 ) / 10 (2, 6)/\|(2, 6)\| = (1, 3)/\sqrt{10} ( 2 , 6 ) /∥ ( 2 , 6 ) ∥ = ( 1 , 3 ) / 10 이고 그 기울기는 40 = 2 10 \sqrt{40} = 2\sqrt{10} 40 = 2 10 입니다. 방향 ( 1 , 0 ) (1, 0) ( 1 , 0 ) 으로는 기울기 2, 방향 ( 3 , − 1 ) / 10 (3, -1)/\sqrt{10} ( 3 , − 1 ) / 10 으로는 6 − 6 10 = 0 \frac{6 - 6}{\sqrt{10}} = 0 10 6 − 6 = 0 입니다.
2.5 그래디언트와 등위선
정리 2.10. ∇ f ( a ) \nabla f(\mathbf{a}) ∇ f ( a ) 는 a \mathbf{a} a 를 지나는 등위선(등위면)에 수직입니다.
증명. 등위선 위의 곡선 r ( t ) \mathbf{r}(t) r ( t ) 에서 f ( r ( t ) ) = c f(\mathbf{r}(t)) = c f ( r ( t )) = c 이고, 미분하면(3장의 연쇄법칙) ∇ f ⋅ r ′ ( t ) = 0 \nabla f\cdot\mathbf{r}'(t) = 0 ∇ f ⋅ r ′ ( t ) = 0 입니다. r ′ \mathbf{r}' r ′ 은 등위선의 접선 방향이므로 ∇ f \nabla f ∇ f 는 그에 수직입니다. □
등고선 지도에서 물이 흐르는 방향(가장 가파른 내리막)이 등고선에 수직인 이유입니다. 곡면 F ( x , y , z ) = c F(x, y, z) = c F ( x , y , z ) = c 의 법선벡터가 ∇ F \nabla F ∇ F 라는 것도 이 정리이고, 이것으로 접평면을 구합니다.
예제 2.11. 구 x 2 + y 2 + z 2 = 9 x^2 + y^2 + z^2 = 9 x 2 + y 2 + z 2 = 9 위의 점 ( 1 , 2 , 2 ) (1, 2, 2) ( 1 , 2 , 2 ) 에서 접평면: ∇ F = ( 2 , 4 , 4 ) \nabla F = (2, 4, 4) ∇ F = ( 2 , 4 , 4 ) 이므로 2 ( x − 1 ) + 4 ( y − 2 ) + 4 ( z − 2 ) = 0 2(x - 1) + 4(y - 2) + 4(z - 2) = 0 2 ( x − 1 ) + 4 ( y − 2 ) + 4 ( z − 2 ) = 0 , 곧 x + 2 y + 2 z = 9 x + 2y + 2z = 9 x + 2 y + 2 z = 9 입니다.
2.6 이 장의 요약
편미분 ∂ f / ∂ x \partial f/\partial x ∂ f / ∂ x : 다른 변수를 상수로 두고 미분합니다.
∇ f \nabla f ∇ f = 편미분의 벡터. 가장 가파르게 오르는 방향, 크기는 그 기울기.
D u f = ∇ f ⋅ u D_{\mathbf{u}}f = \nabla f\cdot\mathbf{u} D u f = ∇ f ⋅ u . ∇ f \nabla f ∇ f 는 등위선에 수직입니다.
쓰이는 곳. 머신러닝 논문의 ∇ θ L \nabla_\theta L ∇ θ L 은 손실을 파라미터로 편미분한 벡터이고, 학습은 θ ← θ − η ∇ θ L \theta \leftarrow \theta - \eta\nabla_\theta L θ ← θ − η ∇ θ L (경사하강법, 5장)입니다. 물리에서는 퍼텐셜의 그래디언트가 힘(F = − ∇ U \mathbf{F} = -\nabla U F = − ∇ U )이고 전기장(E = − ∇ V \mathbf{E} = -\nabla V E = − ∇ V )입니다. 이미지 처리의 경계 검출도 밝기의 그래디언트를 씁니다.
문제
2.1 [계산] · 확인 문제
f ( x , y ) = x 2 y + e x y f(x, y) = x^2y + e^{xy} f ( x , y ) = x 2 y + e x y 의 점 ( 1 , 0 ) (1, 0) ( 1 , 0 ) 에서의 값을 씁니다.
값
답
f x ( 1 , 0 ) f_x(1, 0) f x ( 1 , 0 )
[?]
f y ( 1 , 0 ) f_y(1, 0) f y ( 1 , 0 )
[?]
f x y ( 1 , 0 ) f_{xy}(1, 0) f x y ( 1 , 0 )
[?]
정답 풀이 f x = 2 x y + y e x y f_x = 2xy + ye^{xy} f x = 2 x y + y e x y 이므로 f x ( 1 , 0 ) = 0 f_x(1, 0) = 0 f x ( 1 , 0 ) = 0 . f y = x 2 + x e x y f_y = x^2 + xe^{xy} f y = x 2 + x e x y 이므로 f y ( 1 , 0 ) = 1 + 1 = 2 f_y(1, 0) = 1 + 1 = 2 f y ( 1 , 0 ) = 1 + 1 = 2 . f x y = ∂ ∂ y ( 2 x y + y e x y ) = 2 x + e x y + x y e x y f_{xy} = \frac{\partial}{\partial y}(2xy + ye^{xy}) = 2x + e^{xy} + xye^{xy} f x y = ∂ y ∂ ( 2 x y + y e x y ) = 2 x + e x y + x y e x y 이므로 f x y ( 1 , 0 ) = 2 + 1 + 0 = 3 f_{xy}(1, 0) = 2 + 1 + 0 = 3 f x y ( 1 , 0 ) = 2 + 1 + 0 = 3 .
2.2 [계산] · 확인 문제
f ( x , y ) = x 2 + x y + y 2 f(x, y) = x^2 + xy + y^2 f ( x , y ) = x 2 + x y + y 2 의 점 ( 1 , 1 ) (1, 1) ( 1 , 1 ) 에서, 방향 u = ( 3 / 5 , 4 / 5 ) \mathbf{u} = (3/5, 4/5) u = ( 3/5 , 4/5 ) 로의 방향도함수는?
정답 풀이 ∇ f = ( 2 x + y , x + 2 y ) = ( 3 , 3 ) \nabla f = (2x + y, x + 2y) = (3, 3) ∇ f = ( 2 x + y , x + 2 y ) = ( 3 , 3 ) 이므로 D u f = 3 ⋅ 3 5 + 3 ⋅ 4 5 = 21 5 D_{\mathbf{u}}f = 3\cdot\frac35 + 3\cdot\frac45 = \frac{21}5 D u f = 3 ⋅ 5 3 + 3 ⋅ 5 4 = 5 21 입니다.
2.3 [계산] · 확인 문제
f ( x , y , z ) = x y z f(x, y, z) = xyz f ( x , y , z ) = x y z 의 점 ( 1 , 2 , 3 ) (1, 2, 3) ( 1 , 2 , 3 ) 에서 가장 가파르게 증가하는 방향의 기울기(그 최댓값)는?
정답 풀이 ∇ f = ( y z , x z , x y ) = ( 6 , 3 , 2 ) \nabla f = (yz, xz, xy) = (6, 3, 2) ∇ f = ( y z , x z , x y ) = ( 6 , 3 , 2 ) 이고 ∥ ∇ f ∥ = 36 + 9 + 4 = 7 \|\nabla f\| = \sqrt{36 + 9 + 4} = 7 ∥∇ f ∥ = 36 + 9 + 4 = 7 입니다.
2.4 [계산]
곡면 z = x 2 + y 2 z = x^2 + y^2 z = x 2 + y 2 위의 점 ( 1 , 1 , 2 ) (1, 1, 2) ( 1 , 1 , 2 ) 에서의 접평면을 z = a x + b y + c z = ax + by + c z = a x + b y + c 로 쓸 때 c c c 는?
힌트 1 F ( x , y , z ) = x 2 + y 2 − z = 0 F(x, y, z) = x^2 + y^2 - z = 0 F ( x , y , z ) = x 2 + y 2 − z = 0 으로 보고 ∇ F \nabla F ∇ F 를 법선벡터로 씁니다.
정답 풀이 ∇ F = ( 2 x , 2 y , − 1 ) = ( 2 , 2 , − 1 ) \nabla F = (2x, 2y, -1) = (2, 2, -1) ∇ F = ( 2 x , 2 y , − 1 ) = ( 2 , 2 , − 1 ) 이므로 2 ( x − 1 ) + 2 ( y − 1 ) − ( z − 2 ) = 0 2(x - 1) + 2(y - 1) - (z - 2) = 0 2 ( x − 1 ) + 2 ( y − 1 ) − ( z − 2 ) = 0 , 곧 z = 2 x + 2 y − 2 z = 2x + 2y - 2 z = 2 x + 2 y − 2 입니다.
2.5 [증명]
정리 2.8 을 써서, 점 a \mathbf{a} a 에서 ∇ f ( a ) = 0 \nabla f(\mathbf{a}) = \mathbf{0} ∇ f ( a ) = 0 이 아니면 a \mathbf{a} a 는 f f f 의 극대점도 극소점도 아님을 보입니다.
풀이 ∇ f ≠ 0 \nabla f \ne \mathbf{0} ∇ f = 0 이면 방향 u = ∇ f / ∥ ∇ f ∥ \mathbf{u} = \nabla f/\|\nabla f\| u = ∇ f /∥∇ f ∥ 로의 방향도함수가 ∥ ∇ f ∥ > 0 \|\nabla f\| > 0 ∥∇ f ∥ > 0 입니다. 그러므로 그 방향으로 조금 가면 f f f 가 커지고(극대가 아님), 반대 방향 − u -\mathbf{u} − u 로 조금 가면 작아집니다(극소가 아님). 따라서 극값이 되려면 ∇ f = 0 \nabla f = \mathbf{0} ∇ f = 0 이어야 합니다(미분 가능할 때).