# 편미분과 그래디언트 분야: CS·데이터사이언스 학교급: 대학 교육과정: 정규 교육과정 외 — 여러 변수 중 하나만 움직여 미분한 값과 그것을 모은 벡터. 경사하강법이 내려가는 방향이 이 벡터다. 정식 URL: https://pi.devxdev.xyz/wiki/math/%ED%8E%B8%EB%AF%B8%EB%B6%84%EA%B3%BC_%EA%B7%B8%EB%9E%98%EB%94%94%EC%96%B8%ED%8A%B8 --- > 이 개념은 정규 교육과정 밖의 내용으로, 여러 변수 중 하나만 움직여 미분한 값(편미분)과 그 값들을 모두 모아 놓은 벡터(그래디언트)를 다루며, 경사하강법이 함수 값을 줄이기 위해 내려가는 방향이 바로 이 그래디언트의 반대 방향이다. ## 정의 $n$개의 변수를 갖는 함수 $f(x_1, x_2, \dots, x_n)$과 점 $p = (a_1,\dots,a_n)$이 주어졌을 때, $f$의 $x_i$에 대한 **편미분**(partial derivative)은 다른 변수를 모두 상수로 고정하고 $x_i$에 대해서만 미분한 값이다. $$\frac{\partial f}{\partial x_i}(p) = \lim_{h \to 0} \frac{f(a_1,\dots,a_i+h,\dots,a_n) - f(a_1,\dots,a_i,\dots,a_n)}{h}$$ $\partial$은 "라운드 디" 또는 "파셜"이라 읽는다. $f_{x_i}(p)$로도 쓴다. $f$의 모든 편미분을 순서대로 모은 벡터를 **그래디언트**(gradient, 기울기벡터)라 하고 $\nabla f$($f$의 그래디언트, "나블라 f"라 읽는다)로 쓴다. $$\nabla f(p) = \left( \frac{\partial f}{\partial x_1}(p), \frac{\partial f}{\partial x_2}(p), \dots, \frac{\partial f}{\partial x_n}(p) \right)$$ ## 직관 지도 위의 등고선을 떠올려 보자. 산 위의 한 지점에서 동쪽으로 한 걸음 갈 때 고도가 얼마나 변하는지, 북쪽으로 한 걸음 갈 때 고도가 얼마나 변하는지는 서로 다르다. 편미분은 정확히 이것을 재는 값이다 — "다른 방향은 그대로 두고 이 축 방향으로만 움직였을 때의 변화율". 그래디언트는 이렇게 각 축 방향의 변화율을 모두 모은 화살표인데, 신기하게도 이 화살표는 그 지점에서 **가장 가파르게 올라가는 방향**을 정확히 가리킨다. 등산로 앱이 "이쪽이 가장 가파른 오르막"이라고 알려준다면, 그것이 바로 고도 함수의 그래디언트 방향이다. ## 유도 한 변수 함수 $f(x)$의 미분계수는 $f'(a) = \lim_{h\to 0} \dfrac{f(a+h)-f(a)}{h}$로, 한 점에서 변화율(접선의 기울기)을 알려준다. 그런데 $f(x,y)$처럼 변수가 두 개면 문제가 생긴다 — 점 $p$에서 "어느 방향으로" $h$만큼 움직일지가 정해져 있지 않다. $x$축 방향, $y$축 방향, 대각선 방향에서 변화율이 모두 다를 수 있기 때문이다. 가장 쉬운 해결책은 일단 방향을 좌표축으로 제한하는 것이다. $y = b$로 고정하면 $g(x) = f(x,b)$는 변수 하나짜리 함수가 되고, 여기에 원래 알던 미분계수 정의를 그대로 적용할 수 있다: $g'(a) = \dfrac{\partial f}{\partial x}(a,b)$. 이것이 편미분이다 — 좌표축 방향으로만 움직이도록 문제를 축소해서 얻은 결과다. 하지만 실제로 궁금한 것은 임의의 방향 $u = (u_1, u_2)$(단위벡터, $|u|=1$)로 움직일 때의 변화율, 즉 방향미분 $D_u f(p) = \lim_{h\to 0} \dfrac{f(p+hu)-f(p)}{h}$이다. 이를 편미분으로 표현해 보자. $\varphi(h) = f(a_1+hu_1,\ a_2+hu_2)$라 두면 연쇄법칙에 의해 $$\varphi'(0) = \frac{\partial f}{\partial x_1}(p)\,u_1 + \frac{\partial f}{\partial x_2}(p)\,u_2$$ 이고 좌변이 곧 $D_u f(p)$다. 이 식의 우변은 벡터 $\left(\dfrac{\partial f}{\partial x_1}, \dfrac{\partial f}{\partial x_2}\right)$와 $u$의 내적이므로, 이 벡터를 $\nabla f(p)$로 정의하면 $$D_u f(p) = \nabla f(p) \cdot u$$ 라는 깔끔한 식이 나온다. 이제 "어느 방향 $u$일 때 $D_u f$가 최대인가?"를 물으면, 코시-슈바르츠 부등식에 의해 $\nabla f(p)\cdot u \le |\nabla f(p)||u| = |\nabla f(p)|$이고 등호는 $u$가 $\nabla f(p)$와 같은 방향일 때 성립한다. 즉 그래디언트 방향이 바로 함수가 가장 가파르게 증가하는 방향이며, 그 최대 증가율이 $|\nabla f(p)|$다. 반대로 가장 가파르게 감소하는 방향은 $-\nabla f(p)$이고, 이것이 경사하강법이 $x_{k+1} = x_k - \eta \nabla f(x_k)$($\eta$는 학습률)로 업데이트하며 함수 값을 줄여나가는 이유다. ## 성질 - 선형성: $\nabla(af+bg) = a\nabla f + b\nabla g$ - 그래디언트는 등고선(레벨 곡선)에 항상 수직이다 — 등고선을 따라 움직이면 함수 값이 변하지 않으므로 그 방향의 방향미분은 0이고, $\nabla f$와 내적이 0이 되려면 수직이어야 한다. - $\nabla f(p) = 0$인 점은 극값(최댓값·최솟값·안장점) 후보가 된다. ## 예시 $f(x,y) = x^2 + y^2$의 편미분과 그래디언트를 구해보자. $$\frac{\partial f}{\partial x} = 2x, \qquad \frac{\partial f}{\partial y} = 2y$$ 점 $(1,1)$에서는 $\nabla f(1,1) = (2,2)$, 크기는 $|\nabla f(1,1)| = 2\sqrt{2}$이고 방향은 원점에서 $(1,1)$로 향하는 방향과 같다. 아래는 $y=1$로 고정한 단면 $f(x,1) = x^2+1$과, 그 지점에서의 $x$방향 변화율을 나타내는 $2x$를 함께 그린 그래프다. 그래프: y=x^2+1, y=2*x (정의역 -5~5) ## 🌍 실생활 예시 등산 내비게이션 앱이나 지형 분석 소프트웨어는 지도의 고도 데이터를 이용해 각 지점에서 "가장 가파른 오르막/내리막 방향"을 계산해 보여준다. 고도를 위치 $(x,y)$의 함수 $h(x,y)$로 볼 때, 이 방향이 바로 $\nabla h$이다. 같은 원리가 인공신경망 학습에도 그대로 쓰인다 — 손실 함수 $L$이 수백만 개의 가중치에 대한 함수일 때, 각 가중치에 대한 편미분을 모은 그래디언트 $\nabla L$을 계산해 그 반대 방향으로 가중치를 조금씩 옮기는 것이 경사하강법의 실체다. ## ⚠️ 흔한 실수 - **다른 변수도 같이 미분하려 함**: $f(x,y)=xy$에서 $\dfrac{\partial f}{\partial x}$를 구할 때 $y$도 변수라고 생각해 곱의 미분법을 쓰는 실수. $y$는 상수로 고정된 것이므로 $\dfrac{\partial f}{\partial x} = y$가 맞다. - **그래디언트를 스칼라로 착각**: "그래디언트가 3이다"처럼 크기만 말하는 실수. 그래디언트는 항상 방향과 크기를 모두 가진 벡터이며, 크기만 필요하면 $|\nabla f|$라고 명시해야 한다. - **경사하강법에서 부호를 반대로 씀**: 최솟값을 찾으려면 $\nabla f$ 방향이 아니라 $-\nabla f$ 방향으로 이동해야 한다. $\nabla f$ 방향은 증가 방향이므로 그대로 따라가면 함수 값이 오히려 커진다. ## 확인 문제 1. $f(x,y) = x^2y + 3y^2$의 $\dfrac{\partial f}{\partial x}$, $\dfrac{\partial f}{\partial y}$를 구하고, 점 $(2,1)$에서의 그래디언트 $\nabla f(2,1)$을 구하라. 2. $f(x,y) = x^2+y^2$에서 점 $(3,4)$의 그래디언트를 구하고, 그 방향이 원점에서 $(3,4)$로 향하는 방향과 같은 이유를 "가장 가파른 증가 방향" 개념으로 설명하라. 3. 경사하강법 $x_{k+1} = x_k - \eta \nabla f(x_k)$에서 학습률 $\eta$가 지나치게 크면 어떤 문제가 생길지, $\nabla f$가 "그 순간의" 방향만 알려준다는 점에 근거해 설명하라. 정답 보기: 1. $\dfrac{\partial f}{\partial x} = 2xy$, $\dfrac{\partial f}{\partial y} = x^2+6y$. 점 $(2,1)$에서 $\nabla f(2,1) = (4, 10)$. 2. $\nabla f(3,4) = (2\cdot3, 2\cdot4) = (6,8) = 2(3,4)$로, 방향이 정확히 $(3,4)$ 방향과 같다. $f=x^2+y^2$는 원점에서 멀어질수록 커지는 방사형 함수라서, 어느 점에서든 원점 반대 방향(중심에서 바깥쪽)으로 갈 때 가장 빨리 증가하기 때문이다. 3. 그래디언트는 그 점에서의 국소적 기울기 정보일 뿐인데, $\eta$가 너무 크면 한 걸음이 그 기울기가 유효한 범위를 훌쩍 넘어가 버려 함수 값이 줄어들기는커녕 오히려 늘어나거나 진동하며 발산할 수 있다. ## 📜 역사 편미분 표기 $\partial$는 1786년 르장드르가 처음 사용했고, 이후 야코비가 다변수 함수 연구에서 이를 표준 표기로 정착시켰다. 벡터로서의 그래디언트를 다루는 나블라($\nabla$) 연산자는 해밀턴이 사원수 연구 과정에서 도입했고, 이후 맥스웰과 깁스 등이 벡터해석학을 정리하며 오늘날의 형태로 자리 잡았다. 그래디언트의 반대 방향으로 이동해 함수 값을 줄여나가는 아이디어는 1847년 코시가 연립방정식을 풀기 위해 제안한 최급강하법에서 처음 등장했으며, 이 방법이 오늘날 인공신경망 학습에 쓰이는 경사하강법의 뿌리가 되었다. ## 관련 개념 - 도함수 — 한 변수 함수의 변화율을 다루는 선수 개념으로, 편미분은 이를 다변수로 확장한 것이다. - 벡터 — 그래디언트는 편미분 값들을 모은 벡터다. - 경사하강법 — 그래디언트의 반대 방향으로 이동해 함수 값을 최소화하는 알고리즘. - 뉴턴-랩슨 방법 — 그래디언트(및 2차 미분 정보)를 이용해 더 빠르게 근이나 극값을 찾는 방법. - 최소제곱법 — 오차 함수를 최소화할 때 그래디언트를 0으로 두는 방정식이 등장한다. --- 관련 개념: - 경사하강법 (/wiki/math/%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95) - 도함수 (/wiki/math/%EB%8F%84%ED%95%A8%EC%88%98) - 벡터 (/wiki/math/%EB%B2%A1%ED%84%B0) - 뉴턴-랩슨 방법 (/wiki/math/%EB%89%B4%ED%84%B4-%EB%9E%A9%EC%8A%A8_%EB%B0%A9%EB%B2%95) - 최소제곱법 (/wiki/math/%EC%B5%9C%EC%86%8C%EC%A0%9C%EA%B3%B1%EB%B2%95)