경사 하강이 필요한 이유는 무엇입니까?


10

비용 함수를 차별화하고 모든 매개 변수에 대해 부분 미분을 통해 얻은 방정식을 풀어 매개 변수를 찾고 비용 함수가 최소 인 위치를 찾을 수 있습니다. 또한 파생 상품이 0 인 여러 장소를 찾을 수 있다고 생각합니다. 따라서 모든 장소를 확인할 수 있고 글로벌 최소값을 찾을 수 있습니다

왜 경사 하강이 대신 수행됩니까?


2
함수의 미분 값을 일반적으로 0으로 설정하는 방법은 무엇입니까? 그래디언트 디센트와 같은 알고리즘
Cliff AB

3
기울기 하강 은 참조하는 방정식을 해결하는 데 사용되는 방법 으로 생각할 수 있습니다 . 영리한 대수 조작으로 이러한 방정식을 일반적으로 풀 수 있다고 생각되면 로지스틱 회귀 분석을 시도하십시오.
Matthew Drury



모든 것을 분석적으로 해결할 수는 없습니다. 셀 수없이 많은 수의 0이 가능하더라도 모든 중요 포인트를 확인하는 데 시간이 오래 걸립니다.
Pinocchio 2016 년

답변:


8

분석 솔루션이있는 선형 모델의 경우에도 이러한 반복 솔버를 사용하는 것이 가장 좋습니다.

예를 들어, 선형 회귀를 고려하면 명시 적 솔루션에는 복잡한 행렬을 반전시켜야합니다. O(N3). 이는 빅 데이터의 맥락에서 금지됩니다.

또한 머신 러닝의 많은 문제가 볼록하므로 그라디언트를 사용하면 극단에 도달하게됩니다.

이미 지적한 바와 같이, 그래디언트 방법 (역 전파)이 효율적인 솔버를 제공하는 신경망과 같은 관련 볼록하지 않은 문제가 여전히 있습니다. 다시 이것은 딥 러닝의 경우에 특히 관련이 있습니다.


2
부분 피벗을 사용한 QR 분해가 더 정확하고 빠르기 때문에 매트릭스 반전은 약간의 스트로 맨이지만, 그래도 QR은 여전히 O(n3). 충분히 큰 시스템 (예 :> 10,000 변수)의 경우 문제가 될 수 있음에 동의합니다. 현대의 첨단 기술 접근법은 반복적 인 Krylov subspace 방법 (예 : 켤레 구배, GMRES)으로 솔루션을 근사화합니다.
Matthew Gunn

1
일부 사람들이 혼란 스러울 수있는 요점은 선형 시스템을 어떻게 최적화하는 것이 최적화 문제입니까? 물론 답은 선형 시스템을 풀면 2 차 목표를 최소화하는 것으로 재구성 될 수 있다는 것입니다. 선형 시스템을 해결하기위한 일부 반복 방법은 반복 방식으로 2 차 목적을 최소화한다는 관점에서 이해하기가 더 쉽습니다. (예 : Krylov subspace method 켤레 그라디언트의 단계 방향은 그라디언트를 기반으로합니다. 그라디언트 디센트와 느슨하게 관련되어 있습니다.)
Matthew Gunn

12

그라데이션 하강은 필요하지 않습니다. 그래디언트 디센트는 종종 끔찍하게 비효율적 인 최적화 알고리즘입니다! 반복적 인 방법의 경우, 기울기가 가장 가파른 곳보다 이동하기에 더 좋은 방향을 찾는 것이 종종 가능합니다.

그래도 약간의 대답입니다. 당신의 질문은 "반복적 인 방법이 왜 필요한가?" 예 : 문제가 볼록하고 Slater의 조건이 유지되고 1 차 조건이 필요하고 최적의 조건이 충분한 경우 솔루션으로 바로 이동하지 않는 이유는 무엇입니까? 즉, 해를 연립 방정식의 해로 표현할 수 있다면 왜 단순히 해를 구하지 않겠습니까? 대답은 :

  • 2 차 최적화 문제의 경우 1 차 조건은 선형 방정식 시스템이며 선형 시스템을 효율적으로 해결할 수 있으므로 거의 직접 솔루션으로 갈 수 있습니다! 우리 첫 번째 주문 조건을 사용하고 시스템을 해결합니다 (예 : QR 분해, 아래 경고).
  • 보다 일반적으로, 1 차 조건은 비선형 방정식 시스템을 정의하며 비선형 시스템은 해결하기가 매우 어려울 수 있습니다! 실제로 비선형 방정식 시스템을 수치 적으로 푸는 방법은이를 최적화 문제로 재구성하는 것입니다.
  • 들어 매우 큰 QR 분해 및 부분 회전에 직접적으로 시스템을 해결하는 선형 시스템을 실행 불가능하게된다. 사람들은 무엇을합니까?! 반복적 인 방법! (예 : 반복적 Krylov 부분 공간 방법 ...)

7

미적분학 101에서 우리는 "분석 방법"을 사용하여 함수를 최적화하는 방법에 대해 배웠습니다. 비용 함수의 미분을 구하고 미분을 0으로 설정 한 다음 방정식을 풀면됩니다. 이것은 실제로 장난감 문제이며 실제 세계에서는 거의 발생하지 않습니다.

실제로는 많은 비용 함수가 어디에서나 파생되지 않습니다 (또한, 비용 함수는 불 연속적이며 파생 된 것이 전혀 없습니다). 또한 미분을 계산할 수 있다고해도 방정식을 분석적으로 풀 수는 없습니다 (예 : 해결 방법에 대한 생각).x7+x352+ex+log(x+x2)+1/x=0분석적으로? 나는 당신에게 숫자 대답은 말할 수 있습니다x=1.4786분석 솔루션을 모릅니다). 우리는 몇 가지 수치 적 방법을 사용해야합니다 (다항식 경우 Abel Ruffin Theorem 에서 여기를 확인하십시오 ).

반복적 인 방법은 사용하기 쉽고 이해하기 매우 직관적입니다. 방정식을 푸는 대신 하나의 함수를 최적화하고 답을 얻으려고한다면 충분한 반복 후에 반복 횟수 / 단계 수로 답을 개선하려고하면 답이 "진정한 답"에 가까워집니다. 미적분학을 사용하여 최소화하는 경우 말해f(x)=x2, 당신은 직접 얻을 x=0이지만 수치 방법을 사용하면 x=1.1234×1020.

이제 이러한 반복 방법이 어떻게 작동하는지 이해하는 것이 중요합니다. 핵심 개념은 더 나은 솔루션을 얻기 위해 입력 매개 변수를 업데이트하는 방법을 아는 것입니다. 최소화하고 싶다고 가정하자f(x1,x2)=x12+x22+|x1+x2| (이 비용 함수는 어디에서나 차별화 할 수 없지만 차별화 할 수있는 "가장 많은 장소"에 있습니다. 이는 "가장 많은 장소"에서 업데이트하는 방법을 알고 있기 때문에 우리에게 충분합니다.) (1,1)비용은 4.0이제 업데이트하고 싶습니다 (x1,x2)목적 함수를 더 작게 만들기 위해. 어떻게 하시겠습니까? 둘 다 줄이고 싶다고 말할 수 있습니다x1 x2그러나 왜? 실제로는 "소량의x, 어떻게 될 것인가 y". 에서(1,1), 미분은 (3,3)학습률이 말하는 음의 기울기 시간 α=0.001입니다 (0.003,0.003)그래서 우리는에서 솔루션을 업데이트했습니다. 1,1(0.997,0.997) 더 나은 비용이 있습니다.


더 많은 정보는이 관련 게시물
Haitao Du

4

언급 한 접근 방식은 선형 회귀의 경우와 같이 선형 방정식 세트를 풀기 위해서만 사용할 수 있지만 시그 모이 드 활성화가있는 신경망과 같은 경우 비 선형 방정식을 푸는 데는 기울기 강하가 접근법입니다. 갈 것입니다. 따라서 Gradient Descent는보다 일반적인 접근 방식입니다.

선형 방정식의 경우에도 일련의 선형 방정식으로 주어진 행렬의 크기는 엄청 나며 메모리 요구 사항을 제한하기가 어려울 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.