경사하강 절차에 대한 짧은 소개

경사하강법 절차는 머신러닝에서 가장 중요한 방법입니다. 분류 및 회귀 문제에서 오류 함수를 최소화하는 데 자주 사용됩니다. 또한 신경망 및 딥 러닝 아키텍처 훈련에도 사용됩니다.

이 튜토리얼에서는 경사하강 절차를 알아볼 것입니다.

이 자습서를 완료하면 다음을 알 수 있습니다.

  • 경사하강법
  • 머신러닝에서 경사하강법의 중요성

튜토리얼 개요

이 자습서는 다음과 같이 두 부분으로 나뉩니다.

  1. 경사하강 절차
  2. 경사하강 절차의 해결된 예

필수 구성 요소

이 자습서에서는 다음 항목에 대한 필수 지식이 있다고 가정합니다.

위에 제공된 링크를 클릭하여 이러한 개념을 검토할 수 있습니다.


경사하강 절차

경사하강법 절차는 함수의 최소값을 찾는 알고리즘입니다.

함수 f(x)가 있다고 가정하고, 여기서 x는 여러 변수의 튜플, 즉 x = (x_1, x_2, … x_n). 또한 f(x)의 기울기가 ∇f(x)로 주어진다고 가정합니다. 변수 (x_1, x_2, … x_n) 최소한의 기능을 제공합니다. 모든 반복 t에서 튜플 x의 값을 x[t]로 표시합니다. 따라서 x[t][1]은 반복 t에서 x_1의 값이고, x[t][2]는 반복 t에서 x_2의 값입니다.

표기법

다음과 같은 변수가 있습니다.

  • t = 반복 횟수
  • T = 총 반복 횟수
  • n = f 영역의 전체 변수(x의 차원이라고도 함)
  • j = 변수 번호에 대한 반복자, 예를 들어 x_j는 j번째 변수를 나타냅니다.
  • η = 학습률
  • ∇f(x[t]) = 반복 t에서 f의 기울기 벡터 값


훈련 방법

경사하강법 알고리즘의 단계는 다음과 같습니다. 이를 학습 방법이라고도 합니다.

  1. 임의의 초기점 x_initial 선택하고 x[0] = x_initial 설정
  2. 반복의 경우 t=1..T
    • 업데이트 x [t] = x [t-1] – η∇f (x [t-1])


학습률 η은 경사하강법 절차에 대한 사용자 정의 변수입니다. 값의 범위는 [0,1]입니다.

위의 방법은 각 반복에서 그라디언트 벡터의 음수 방향으로 작은 단계를 수행하여 x 값을 업데이트해야한다고 말합니다. η=0이면 x에는 변화가 없습니다. η=1이면 벡터의 기울기의 음수 방향으로 큰 발걸음을 내딛는 것과 같습니다. 일반적으로 η은 0.05 또는 0.1과 같은 작은 값으로 설정됩니다. 훈련 절차 중에 가변적 일 수도 있습니다. 따라서 알고리즘은 큰 값 (예 : 0.8)으로 시작한 다음 더 작은 값으로 줄일 수 있습니다.



경사하강법의 예

그래프와 등고선이 아래 그림에 표시된 두 변수의 다음 함수 중 최소값을 찾아 보겠습니다.

f (x, y) = x * x + 2y * y

f (x, y)의 그래프와 윤곽선 = x * x + 2y * y

f (x, y)의 그래프와 윤곽선 = x * x + 2y * y

 

그래디언트 벡터의 일반적인 형태는 다음과 같이 주어집니다.

∇ f (x, y) = 2xi + 4yj

알고리즘의 두 반복, T = 2 및 η = 0.1은 다음과 같습니다.

  1. 초기 t=0
    • x [0] = (4,3) # 이것은 무작위로 선택된 점입니다.
  2. t = 1에서
    • x [1] = x [0] – η∇f (x [0])
    • x [1] = (4,3) – 0.1 * (8,12)
    • x [1] = (3.2,1.8)
  3. t=2에서
    • x [2] = x [1] – η∇f (x [1])
    • x [2] = (3.2,1.8) – 0.1 * (6.4,7.2)
    • x [2] = (2.56,1.08)

위의 반복을 계속 실행하면 프로 시저는 결국 함수가 최소값 인 지점 (예 : (0,0)에서 끝납니다.

반복 t=1에서 알고리즘은 아래 그림에 설명되어 있습니다.

경사하강 절차의 그림

경사하강 절차의 그림



실행할 반복 횟수는 몇 번입니까?

일반적으로 경사하강법은 x의 값이 변경되지 않거나 x의 변화가 특정 임계값 미만이 될 때까지 실행됩니다. 중지 기준은 사용자가 정의한 최대 반복 횟수(이전에 T로 정의)일 수도 있습니다.

추진력 추가

경사하강법은 다음과 같은 문제가 발생할 수 있습니다.

  1. 둘 이상의 점 사이에서 진동
  2. 지역 최소값에 갇히십시오.
  3. 오버 슈트하고 최소 포인트를 놓침

위의 문제를 처리하기 위해 경사하강법 알고리즘의 업데이트 방정식에 다음과 같이 운동량 항을 추가할 수 있습니다.

x[t] = x[t-1] – η∇f(x[t-1]) + α*Δx[t-1]

여기서 Δx[t-1]은 x의 변화를 나타내고, 즉,

Δx[t] = x[t] – x[t-1]

t=0에서의 초기 변화는 0 벡터입니다. 이 문제의 경우 Δx[0] = (0,0).



그라데이션 상승 정보

함수의 최대값을 찾는 관련 기울기 상승 절차가 있습니다. 경사하강법에서 우리는 함수의 최대 감소율의 방향을 따릅니다. 음의 기울기 벡터의 방향입니다. 반면 기울기 상승에서는 양의 기울기 벡터가 가리키는 방향인 함수의 최대 증가율 방향을 따릅니다. 또한 f(x)에 음수 부호를 추가하여 최대화 문제의 관점에서 최대화 문제를 작성할 수 있습니다.


머신러닝에서 경사하강법이 중요한 이유는 무엇입니까?

경사하강법 알고리즘은 종종 머신러닝 문제에 사용됩니다. 많은 분류 및 회귀 작업에서 평균 제곱 오차 함수는 모델을 데이터에 피팅하는 데 사용됩니다. 경사하강법 절차는 가장 낮은 평균 제곱 오차를 유발하는 최적의 모델 모수를 식별하는 데 사용됩니다.

경사 상승은 함수 최대화와 관련된 문제에 대해 유사하게 사용됩니다.

확장

이 섹션에는 탐색할 수 있는 자습서를 확장하기 위한 몇 가지 아이디어가 나열되어 있습니다.

  • 헤세 행렬
  • 야코비안




추가 정보

이 섹션에서는 더 자세히 알아보려는 경우 주제에 대한 더 많은 리소스를 제공합니다.

자습서

리소스

  • 토마스의 미적분학, 14판, 2017. (조지 B. 토마스의 원작을 바탕으로 조엘 하스, 크리스토퍼 하일, 모리스 위어 수정)
  • 미적분학, 제 3 판, 2017. (길버트 스트랭)
  • 미적분학, 8판, 2015. (제임스 스튜어트)

요약

이 자습서에서는 경사하강법에 대한 알고리즘을 발견했습니다. 특히 다음 내용을 배웠습니다.

  • 경사하강 절차
  • 함수의 최소값을 찾기 위해 경사하강법 절차를 적용하는 방법
  • 최대화 문제를 최소화 문제로 변환하는 방법

네피리티
No Comments

Sorry, the comment form is closed at this time.