태그 보관물: computational-statistics

computational-statistics

경사 하강이 필요한 이유는 무엇입니까? 함수를 차별화하고 모든 매개 변수에

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

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



답변

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

예를 들어, 선형 회귀를 고려하면 명시 적 솔루션에는 복잡한 행렬을 반전시켜야합니다.

O(N3)

. 이는 빅 데이터의 맥락에서 금지됩니다.

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

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


답변

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

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

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

답변

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

실제로는 많은 비용 함수가 어디에서나 파생되지 않습니다 (또한, 비용 함수는 불 연속적이며 파생 된 것이 전혀 없습니다). 또한 미분을 계산할 수 있다고해도 방정식을 분석적으로 풀 수는 없습니다 (예 : 해결 방법에 대한 생각).

x7+x3−52+ex+log(x+x2)+1/x=0

분석적으로? 나는 당신에게 숫자 대답은 말할 수 있습니다

x=1.4786

분석 솔루션을 모릅니다). 우리는 몇 가지 수치 적 방법을 사용해야합니다 (다항식 경우 Abel Ruffin Theorem 에서 여기를 확인하십시오 ).

반복적 인 방법은 사용하기 쉽고 이해하기 매우 직관적입니다. 방정식을 푸는 대신 하나의 함수를 최적화하고 답을 얻으려고한다면 충분한 반복 후에 반복 횟수 / 단계 수로 답을 개선하려고하면 답이 “진정한 답”에 가까워집니다. 미적분학을 사용하여 최소화하는 경우 말해

f(x)=x2

, 당신은 직접 얻을

x=0

이지만 수치 방법을 사용하면

x=1.1234×10−20

.

이제 이러한 반복 방법이 어떻게 작동하는지 이해하는 것이 중요합니다. 핵심 개념은 더 나은 솔루션을 얻기 위해 입력 매개 변수를 업데이트하는 방법을 아는 것입니다. 최소화하고 싶다고 가정하자

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)

더 나은 비용이 있습니다.


답변

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

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


답변