경사하강법

딥러닝
수학
경사하강법
경사하강법 cover image

소개

f(x)f(x) 함수가 있고 그 최소값을 찾고 싶다고 가정해 보겠습니다. 당신은 무엇을 하시겠습니까?

간단하죠? 다음 방정식만 풀면 됩니다.

f(x)=0f'(x) = 0

문제는 ff'의 공식을 찾는 것이 항상 쉬운 것은 아니라는 것입니다. 특히 복잡한 함수를 다루는 딥 러닝에서는 매우 복잡한 경향이 있기 때문입니다. 따라서 우리는 도함수 ff'의 공식을 찾을 필요 없이 함수의 최소값을 제공할 수 있는 다른 방법을 찾아야 합니다.

직관력을 키워보자

해당 그래프가 있는 함수 f가 있다고 가정해 보겠습니다.

Graph 1

임의의 점 x0x_{0}부터 시작하겠습니다. 목표는 이 점을 이동하여 f(f'(x*)=0) = 0이 되도록 xx*에 점점 더 가깝게 만드는 것입니다. 따라서 문제는 두 부분으로 나눌 수 있습니다.

  • xx 점을 어느 방향으로 움직여야 할까요? 왼쪽 또는 오른쪽?

  • 얼마나 움직여야 할까요?

방향

첫 번째 질문에 답하기 위해 직관을 키워 봅시다. 다음 사항을 살펴보십시오.

Graph 2

Graph 3

참고 사항:

  • x0x_{0} 지점이 최적 지점 xx*의 오른쪽에 있을 때 접선이 위로 올라갑니다.

  • x0x_{0} 지점이 최적 지점 xx*의 오른쪽에 있을 때 접선이 아래로 내려갑니다.

선의 방향은 기울기의 부호에 따라 결정됩니다.

  • 선이 위로 올라갑니다     \implies 기울기 aa양수입니다.

  • 선이 아래로 내려갑니다     \implies 기울기 aa음수입니다.

참고 사항: \

특정 점 x0x_{0}에서 함수의 접선의 기울기는 해당 점 f(x0)f'(x_{0})의 도함수보다 크지 않습니다.

tangent(x0):g(x)=f(x0).(xx0)+f(x0)tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0})

따라서 **"x0x_{0} ?"를 어디로 이동해야 합니까?"**라는 질문에 대한 답변은 다음과 같습니다.

  • f(x0)<0f'(x_{0}) < 0     \implies x0x_{0}xx*     \implies 오른쪽으로 x0x_{0}를 왼쪽으로 이동해야 합니다.

  • f(x0)>0f'(x_{0}) > 0     \implies x0x_{0}xx*     \implies의 왼쪽으로 x0x_{0}를 오른쪽으로 이동해야 합니다.

단계

이제 두 번째 질문입니다. x0x_{0} ? 얼마를 움직여야 할까요?

다음 예를 살펴보십시오.

Graph 4

Graph 5

우리는 다음과 같이 결론을 내릴 수 있습니다.

  • x0x_{0}xx*에 가깝습니다 => 접선의 기울기가 작습니다 => f(x0)f'(x_{0})가 작습니다.

  • x0x_{0}xx*에서 멀다 => 접선의 기울기가 크다 => f(x0)f'(x_{0})가 크다.

두 질문에 답함으로써 우리는 x0x_{0} 점의 도함수에 대한 지식만이 최적 점 x0x_{0}의 방향과 거리에 대한 많은 통찰력을 제공할 수 있다는 결론을 내렸습니다.

경사하강법

경사하강법은 이전 두 질문에 대한 답변을 공식화한 것입니다. 임의의 초기점 x0x_{0}에서 시작하여 함수의 최소 xx*를 근사하는 최적화 반복 알고리즘입니다. 알고리즘은 다음과 같이 기술됩니다:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

어디:

  • dfdxn\frac{\mathrm{d} f}{\mathrm{d} x*{n}}xnx*{n} 점에서 ff의 도함수에 지나지 않습니다.

  • lrlr은 단계의 크기를 결정하는 양의 상수입니다.

다음 사항에 유의하세요.

  • xnx_{n}xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+의오른쪽에있습니다.1=xn양수x_{n+의 오른쪽에 있습니다. 1} = x_{n} - 양수 => xnx_{n}가 왼쪽으로 이동합니다.

  • xnx_{n}xx* => dfdxn<0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0 => xn의왼쪽에있습니다.+1=xn+양수x*{n의 왼쪽에 있습니다. +1} = x*{n} + 양수 => xnx_{n}가 오른쪽으로 이동합니다.

  • xnx_{n} xx*에 가까워짐 => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} 00에 가까워짐 => x에작은업데이트nx_{에 작은 업데이트 n}.

퀴즈

  • 경사하강법은 언제 반복을 멈추나요?

  • xnx_{n}가 충분히 작은 경우.

  • xnx_{n}x0x_{0}에 가까울 때.

  • dfdx_n=0인경우\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0인 경우 . 트리플 엑스

  • x0x_{0}를 선택하는 방법:

  • 무작위로 선택합니다. 트리플 엑스

  • xnx_{n} 부근에서 촬영합니다.

  • 문제에 따라 다릅니다.

  • 왜 경사하강법이 필요한가요?

  • 컴퓨터는 파생 상품을 계산할 만큼 강력하지 않기 때문입니다.

  • 딥러닝 모델의 미분 공식을 찾는 것은 극히 어렵기 때문입니다. 트리플 엑스

  • 함수에는 둘 이상의 로컬 최소값이 있기 때문입니다.


Code Labs Academy과 함께 데이터 과학 및 AI를 마스터하세요! 온라인 부트캠프에 참여하세요 - 유연한 파트타임 및 풀타임 옵션이 제공됩니다.


Career Services background pattern

취업 서비스

Contact Section background image

계속 연락하자

Code Labs Academy © 2025 판권 소유.