경사하강법

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

소개

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

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

$$f'(x) = 0$$

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

직관력을 키워보자

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

Graph 1

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

  • $x$ 점을 어느 방향으로 움직여야 할까요? 왼쪽 아니면 오른쪽 ?

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

방향

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

Graph 2

Graph 3

참고:

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

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

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

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

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

참고 사항: \

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

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

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

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

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

단계

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

다음 예를 살펴보십시오.

Graph 4

Graph 5

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

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

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

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

경사하강법

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

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

어디:

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

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

그것을주의해라:

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

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

  • $x_{n}$ $x*$에 가까워짐 => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ $0$에 가까워짐 => $x_{에 작은 업데이트 n}$.

퀴즈

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

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

  • $x_{n}$가 $x_{0}$에 가까울 때.

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

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

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

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

  • 문제에 따라 다릅니다.

  • 경사하강법이 필요한 이유:

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

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

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


Career Services background pattern

취업 서비스

Contact Section background image

계속 연락하자

Code Labs Academy © 2024 판권 소유.