뉴턴의 방법이 기계 학습에 널리 사용되지 않는 이유는 무엇입니까?


132

이것은 잠시 동안 나를 괴롭 혔으며 온라인에서 만족스러운 답변을 찾을 수 없으므로 여기에 간다.

볼록 최적화에 대한 일련의 강의를 검토 한 후, Newton의 방법은 솔루션에 대한 보증을 제공 할 수 있고, 불변이고, 대부분 수렴하기 때문에, 전 세계적으로 최적의 솔루션을 찾기 위해 기울기 하강보다 훨씬 우수한 알고리즘 인 것 같습니다. 훨씬 적은 단계. 뉴턴의 방법과 같은 2 차 최적화 알고리즘이 머신 러닝 문제에서 확률 적 경사 하강만큼 널리 사용되지 않는 이유는 무엇입니까?


24
신경망의 경우 deeplearningbook.org 섹션 "8.6 대략적인 2 차 주문 방법"에서 훌륭한 개요를 제공합니다. 요약하자면 "새들 포인트와 같은 목적 함수의 특정 기능으로 인해 발생하는 문제 외에도, 큰 신경망을 훈련시키기위한 뉴턴의 방법의 적용은 그것이 부과하는 계산 부담으로 인해 제한됩니다." 계산 장애를 회피하는 동안 뉴턴 방법의 장점 중 일부를 얻으려고 시도하는 대안이 있지만 자체 문제가 있습니다.
Franck Dernoncourt

1
이 관련 질문 및 의견 참조 stats.stackexchange.com/questions/232305/…
Haitao Du

1
다른 의견들은 단지 "딥 러닝 (deep learning)"을 넘어서서 머신 러닝에 적용 할 수 있다는 점에 유의하십시오. 그러나 모든 ML 문제가 "큰 데이터"인 경향이 있지만 모든 ML 문제가 반드시 "큰 특징"(즉, 튜닝 할 많은 매개 변수) 인 것은 아니지만 딥 러닝은 변하지 않습니다.
GeoMatt22

1
딥 러닝 이외의 머신 러닝에서 L-BFGS (대략 말하면 뉴턴의 방법에 근사한) 상당히 일반적인 최적화 알고리즘 이라는 점은 주목할 가치가 있습니다.
Dougal

2
뉴턴의 방법은 볼록 함을 가정하고, 현대 ML 문제 (중립 그물)는 볼록한 곳 근처에있을 가능성은 없지만, 공개 연구 분야는 인정할 만하다. 따라서 뉴턴의 방법은 계산 지점 근처에서 선형으로 추정하는 것만 큼 좋지 않습니다. 계산의 2 차 증가로 인해 거의 얻을 수 없을 것입니다. 즉, 최근 버클리에서 열린 회의에서 발표자가 2 차 방법을 사용하는 과정을 계속해서 보여 주었기 때문에 결코 죽지 않았습니다.
David Parks

답변:


95

그라디언트 디센트는 미분에 대한 지식을 사용하여 함수를 최대화합니다. 루트 찾기 알고리즘 인 Newton의 방법은 2 차 도함수에 대한 지식을 사용하여 함수를 최대화합니다. 2 차 도함수가 알려져 있고 계산하기 쉬울 때 더 빠를 수 있습니다 (Newton-Raphson 알고리즘이 로지스틱 회귀 분석에 사용됨). 그러나, 이차 미분에 대한 분석 표현은 종종 복잡하거나 다루기 어렵고 많은 계산이 필요합니다. 2 차 도함수를 계산하기위한 수치 적 방법은 많은 계산 을 필요로합니다. 1 차 도함수를 계산하기 위해 값이 필요한 경우 , 차 도함수에 가 필요합니다.2


5
Gauss-Newton 방법이 더 일반적 이라는 점에 주목할 가치가 있습니다. 이것은 비선형 최소 제곱에 대한 뉴턴의 특수화입니다.
GeoMatt22

4
Gauss-Newton을 Newton을 비선형 최소 제곱으로 전문화하지는 않습니다. 비선형 최소 제곱에 대해 뉴턴의 개자식 근사법이라고 부릅니다. 더 부정확 한 헤 시안 근사법을 사용하면 적합 방정식의 잔차가 커지고 그에 따라 인수는 최적성에 의한 것입니다.
Mark L. Stone

1
@ MarkL.Stone 페어 포인트, 나는 기술에 들어 가려고하지 않았다 :) Gauss-Newton 스타일 방법이 1 차 주문 / 2 차 주문을 "가짜"하려고한다는 것은 사실입니다. 개인적으로 저는 Gauss-Newton (또는 LM 또는 비슷한 UKF) 또는 DFO-SQP 방법 (예 : BOBYQA ) 을 최적화에 Newton 방법을 사용한 적이 없습니다 . "최적 성"은 ML 문제의 경우 엔지니어링 설계 최적화 문제와 비교할 때 까다로운 질문입니다. "지역 Hessian"의 신뢰성 / 정보는 모호 할 수 있습니다. 아마도 로컬이 아닌 DFO-SQP는 ~ "stochastic Newton"입니까? (예 : "온라인")
GeoMatt22

1
다시 생각하면, DFO-SQP 접근법은 데이터 배치가 아닌 파라미터 공간 에서 비 로컬 인 경향이 있습니다 . UKF은 (즉, 가우스 약.)는 제한된 메모리 / w 온라인으로 "확률 뉴턴 '에 맛에 가장 가까운을 할 수있다 ...하지만 효과적으로 긍정적-명확한 헤 시안을 가정합니다.
GeoMatt22

1
실제로 헤센을 계산할 필요가없는 CG와 같은 2 차 방법이 있기 때문에 오해의 소지가 있습니다. CG의 k 반복은 단지 kN의 비용이 든다. CG가 이론적으로 k = N에서만 Newton과 일치하는 것이 맞지만 실제로는 많은 반복이 필요하지 않습니다.
user25322

40

더 많은 사람들 머신 러닝 *에서 Newton의 방법을 사용해야 합니다. 나는 지난 몇 년 동안 기계 학습에 푹 빠져있는 수치 최적화에 대한 배경 지식을 가진 사람이라고 말합니다.

Newton의 방법을 올바르게 사용하면 여기 (그리고 심지어 문헌에서도) 대답의 단점은 문제가되지 않습니다. 더욱이, 문제가되는 결점은 또한 같은 양 또는 그보다 덜 명확한 메커니즘을 통해 경사 하강을 늦춘다.

  • Wolfe 조건으로 라인 검색을 사용하거나 영역을 사용하거나 트러스트하면 안장 점으로 수렴되지 않습니다. 적절한 그라데이션 하강 구현도이 작업을 수행해야합니다. 논문 에서 참조 Cam.Davidson.Pilon의 대답은 안 장점의 존재 "뉴턴의 방법"문제를 지적하지만, 그들이 옹호 수정도 뉴턴 방법이다.

  • 뉴턴의 방법을 사용하기 위해서는 전체 (고밀도) 헤 시안을 구성 할 필요가 없습니다. 행렬 벡터 제품 만 사용하는 반복 방법 (예 : 켤레 구배와 같은 Krylov 방법)을 사용하여 Hessian의 역을 벡터에 적용 할 수 있습니다. 예를 들어 CG-Steihaug 신뢰 영역 방법을 참조하십시오.

  • 그래디언트를 계산하는 데 이미 사용 된 인접 방정식 (예 : 신경망 훈련에서 두 개의 역 전파 단계의 작업)과 동일한 형식의 두 개의 고차 인접 방정식을 해결하여 Hessian 행렬-벡터 곱을 효율적으로 계산할 수 있습니다.

  • 불량 컨디셔닝은 반복 선형 솔버의 수렴을 늦추지 만 그래디언트 디센트를 동일하게 또는 더 느리게 늦 춥니 다. 그래디언트 디센트 (gradient descent) 대신 뉴턴 (Newton) 방법을 사용하면 비선형 최적화 단계 (상황을 개선하기 위해 많이 할 수없는 단계)에서 선형 대수 단계 (우리는 수치 선형 대수 사전 조건 기술의 전체 무기고로 공격 할 수있는 단계)로 난이도가 이동합니다.

  • 또한 계산은 "많은 값싼 단계"에서 "비용이 많이 드는 몇 단계"로 이동하여 하위 단계 (선형 대수) 수준에서 병렬 처리의 기회를 더 많이 제공합니다.

이러한 개념에 대한 배경 정보는 Nocedal and Wright의 "Numerical Optimization" 책을 권장합니다 .

* 물론, 뉴턴의 방법은 L1 또는 다른 유사한 압축 감지 / 희소성 패널티 기능에 필요한 평활도가 없기 때문에 도움이되지 않습니다.


2
우리는 다른 모든 사람이 아니라 서로에 대해 폭력적으로 동의하고 있다고 생각합니다.
Mark L. Stone

1
이는 영국이나 미국이 26 세의 마약 중독자 고등학교 중퇴율의 수학적 능력을 비교하여 영국에서 미국이나 더 나은 연구 수학자를 생산하는지 비교하는 것과 같습니다. 그 서류는 서명, 봉인, 배달되지 않았으며, 아무도 종이를 바꾸거나 철회하지 않습니다. 놀랍습니다.
Mark L. Stone

3
@ MarkL.Stone 대화가 여기있는 것 같아서 내가없는 동안 삭제되었습니다. 어쨌든, 나는 우리가 서로 동의하고 아무도 동의하지 않는 것이 옳다고 생각합니다. 나는 이것이 다른 사람들과 비교할 때 우리의 배경을 바탕으로 예상되는 것 같아요. 아마 당신이 예상 한대로 나는 연결된 종이를별로 생각하지 않습니다. 다른 한편으로, 나는 뉴턴 탐색 방향으로 측지 궤적을 쏘는 리만 (Riemannian) 매니 폴드 뉴턴의 방법 은 매우 어려운 문제에 대한 많은 가능성을 가진 기술 이라고 생각합니다 .
Nick Alger

2
대규모 교육 세트를 어떻게 처리 하시겠습니까? 예를 들어 백만 개의 교육 샘플이있는 경우 현재 최적화 목표를 평가하려면 백만 개의 샘플을 테스트해야합니다. 그리고 라인 검색 중에 여러 번해야합니다. 따라서 1 개의 뉴턴 단계를 수행 할 때까지 확률 적 그라디언트 디센트는 몇 백만 건의 업데이트를 수행했습니다.
nikie

2
Nick과 @ MarkL.Stone : 본질적 으로이 접근법 에 대해 이야기하고 있습니까? 이것은 딥 러닝에서 특히 재귀 적 인 그물에 대해 잠시 인기가 있었지만 적응 그라디언트 방법보다 실용적으로 그다지 효과적이지 않기 때문에 내가 선호하는 것으로 떨어졌습니다. 그들은 단지 뭔가 잘못되었고, 당신이 무엇이든 해결하고 일반적으로 현재의 표준 SGD 변형 아담을 능가하는 성능을 보여 주면, 당신은 큰 영향을 미칠 수 있습니다 아담 용지 .... 2 년 만에 1345 인용했다
두글

33

나는 최근에 이것을 스스로 배웠다-문제는 고차원 공간에서 안장 점의 확산이며 뉴턴 방법이 수렴하기를 원한다는 것이다. 고차원 비 볼록 최적화에서 새들 포인트 문제 식별 및 공격 문서를 참조하십시오 .

실제로 안 장점 수 대 국소 최소값의 비율은 차원 N에 따라 기하 급수적으로 증가합니다.

음의 곡률 방향에 따라 경사 하강 역학이 안 장점에서 더 낮은 오차로 격퇴되지만 뉴턴 방법은 안 장점을 적절하게 처리하지 않습니다. 아래에서 논의 된 바와 같이, 안 장점은 대신 뉴턴 역학 하에서 매력적으로된다.


3
이것이 왜 그런지 설명해 주시겠습니까? 이론적으로, Newton의 방법은 각 고유 벡터에 대해 "최적의"가중치를 갖는 가중치가 적용된 경사 하강을 수행합니다.
nbubis

4
이 기사에서 Newton 메소드에 대한 "완료"를 안장 포인트로 수렴하는 것은 Newton 메소드의 가비지 구현에만 적용됩니다.
Mark L. Stone

이 논문은 고유 값과 고유 벡터의 관점에서 문제를 재 파라미터 화하고이를 사용하여 경사 하강이 새들 포인트에서 멀어짐을 보여줍니다. 양의 e- 벡터는 결국 새들 포인트를 떠납니다. 반면에 뉴턴은 그러한 보증을하지 않습니다.
Elizabeth Santorella

이 논문에서 그들이 주장하는 새로운 알고리즘은 뉴턴의 방법이다. 기본적으로 양의 곡률 방향에 대한 Newton의 방법과 음의 곡률 방향에 대한 negative Newton의 방법입니다.
Nick Alger

26

두 가지 이유의 조합 :

  • 뉴턴 방법은 포인트를 중철합니다.
  • 새들 포인트 는 머신 러닝 또는 실제로 모든 다 변수 최적화에서 일반적입니다.

에프=엑스2와이2
여기에 이미지 설명을 입력하십시오

엑스+1=엑스[H에프(엑스)]1에프(엑스)

H=[2에프엑스122에프엑스1엑스22에프엑스1엑스2에프엑스2엑스12에프엑스222에프엑스2엑스2에프엑스엑스12에프엑스엑스22에프엑스2].

H=[2002]

[H에프]1=[1/2001/2]

에프=[2엑스2와이]

[엑스와이]+1=[엑스와이][1/2001/2][2엑스2와이]=[엑스와이][엑스와이]=[00]

엑스=0,와이=0

대조적으로, 경사 하강 법은 안 장점으로 이어지지 않을 것이다. 새들 포인트에서 그라디언트는 0이지만 위의 그라디언트에서 볼 수 있듯이 작은 스텝 아웃으로 최적화가 사라집니다. y 변수의 그라디언트는 음수입니다.


1
덕분 에이 방법이 A에서 Z까지 어떻게 작동하는지 이해 했으므로이 명확한 예에 대해 대단히 감사합니다!
greenoldman

여기서 가장 좋아하는 점은 무엇입니까?

14

두 가지 질문을했습니다. 왜 더 많은 사람들이 뉴턴의 방법을 사용하지 않습니까? 그리고 왜 많은 사람들이 확률 론적 경사 하강을 사용합니까? 뉴턴 방법의 계산 부담을 줄여 주지만 종종 SGD보다 잘 작동하는 알고리즘이 많기 때문에 이러한 질문에는 다른 대답이 있습니다.

H영형(2)영형()H1영형()계산하기. 따라서 Hessian을 계산하는 데는 비용이 많이 들지만 반전하거나 최소 제곱을 푸는 것이 더 나쁜 경우가 많습니다. 스파 스 기능이있는 경우 무증상이 더 좋아 보이지만 다른 방법도 더 잘 수행되므로 희소성 으로 인해 Newton이 상대적으로 매력적 이지 않습니다 .

둘째, 경사 하강뿐만 아니라 많은 방법이 뉴턴보다 더 자주 사용됩니다. 그것들은 종종 스텝 당 더 낮은 계산 비용으로 뉴턴 단계와 근사하지만 수렴을 위해 더 많은 반복을 수행한다는 점에서 뉴턴 방법의 노크입니다. 몇 가지 예 :

  • H1

  • 영형(2)

  • 근사 이차 도함수를 전혀 처리하지 않으려는 경우, 경사 하강은 1 차 정보 만 사용하기 때문에 매력적입니다. 그라디언트 하강은 암시 적으로 역행 헤 시안을 학습률 곱하기 항등 행렬로 추정합니다. 나는 개인적으로 그라디언트 디센트를 거의 사용하지 않습니다. L-BFGS는 목적 함수와 그라디언트 만 지정하면되기 때문에 구현하기가 쉽습니다. 경사 하강보다 역 헤센 근사법이 더 좋습니다. 그래디언트 디센트는 학습 속도 조정이 필요하기 때문입니다.

  • 때로는 많은 관측치 (데이터 포인트)가 있지만 적은 수의 관측치로부터도 거의 배울 수 있습니다. 이 경우 확률 적 경사 하강과 같은 "배치 방법"을 사용하여 관측의 하위 집합을 사용하여 순환합니다.


(+1) L-BFGS는 매개 변수의 수와 관련하여 구배 하강과 동일한 순서로 복잡하다는 점에 주목할 가치가 있습니다. BFGS의 경우에는 해당되지 않습니다. 따라서 L-BFGS의 제한된 메모리 부분 만으로는 매력적이지 않습니다.
Cliff AB

12

그라데이션 하강 방향은 계산하기에 더 저렴하고, 해당 방향으로 라인 검색을 수행하는 것이 최적의 방향으로 향하는 더 안정적이고 안정적인 진행 원입니다. 요컨대, 경사 하강은 비교적 신뢰할 수 있습니다.

Newton의 방법은 첫 번째 반복에서 Hessian을 계산해야한다는 점에서 상대적으로 비쌉니다. 그런 다음 각 반복에서 Hessian을 완전히 다시 계산하거나 (Newton의 방법에서와 같이) 저렴하지만 덜 견고한 이전 반복의 Hessian (Quasi-Newton 방법에서)을 "업데이트"할 수 있습니다.

매우 잘 동작하는 함수, 특히 완벽하게 이차 함수의 극단적 인 경우 Newton의 방법이 확실한 승자입니다. 완벽하게 이차 인 경우 Newton의 방법은 단일 반복으로 수렴됩니다.

매우 열악하게 동작하는 기능의 반대 극단적 인 경우, 경사 하강이이기는 경향이 있습니다. 검색 방향을 선택하고 해당 방향을 검색 한 다음 궁극적으로 작지만 생산적인 단계를 수행합니다. 이와는 반대로 뉴턴의 방법은 특히 준-뉴턴 근사법을 사용하려고 시도하는 경우 실패하는 경향이 있습니다.

그래디언트 디센트와 뉴턴의 방법 사이에는 Levenberg–Marquardt algorithm (LMA)과 같은 방법이 있지만 이름이 약간 혼란 스러웠습니다. 요지는 사물이 혼란스럽고 혼란 스러울 때 더 많은 그라데이션 하강 정보 검색을 사용하고, 일이 더 선형적이고 신뢰할 수있게되면 더 많은 뉴턴 방법 정보 검색으로 전환하는 것입니다.


3
Boy, 당신은 Newton과 Quasi-Newton의 끔찍한 구현을 사용해야합니다. 양의 한정된 Hessian과 함께 사용하는 경우 신뢰 영역을 사용하거나 음의 곡률 방향을 따라 라인 검색을 수행하십시오. 그렇다면 가장 가파른 하강 (즉, 라인 검색 또는 트러스트 영역이있는 그래디언트 하강)보다 더 안정적입니다. 요컨대, gradiewnt descent는 올바르게 구현 된 Quasi-Newton 방법보다 신뢰성이 떨어지며, 올바르게 구현 된 Newton 방법보다 신뢰성이 떨어집니다. 그러나 반복 당 계산 시간과 메모리 요구 사항은 다릅니다.
Mark L. Stone

4
완벽하게 이차 함수를 의미한다고 생각합니다. 즉, Newton의 방법은 선형 기울기를 갖는 2 차 목적 함수를 사용하여 단일 반복으로 수렴합니다.
Elizabeth Santorella

1
@ElizabethSantorella : 응, 맞아! 나는 대답을 업데이트했다.
Nat

2
1/2엑스엑스

1
나는 내 사건을 만들었다. 가장 가파른 하강을 생각하고 싶다면 그라디언트 하강은 특히 동작이 잘못 된 기능에서 훌륭합니다. 몸을 녹여
Mark L. Stone

7

H=

뉴턴의 방법은 솔루션에 가까울 때 또는 헤 시안이 천천히 변화하는 경우에 잘 작동하지만 수렴 부족과 명확성 부족을 처리하기 위해 약간의 트릭이 필요합니다.

정확한 해결책보다는 개선이 필요한 경우가 종종 있는데,이 경우 Newton 또는 Newton과 유사한 방법의 추가 비용이 정당화되지 않습니다.

가변 메트릭 또는 트러스트 영역 방법과 같은 다양한 방법으로 위의 내용을 개선 할 수 있습니다.

참고로, 많은 문제에서 주요 문제는 스케일링이며 Hessian은 비용이 들더라도 우수한 스케일링 정보를 제공합니다. 만약 Hessian에 근접 할 수 있다면, 종종 성능을 상당히 향상시킬 수 있습니다. 어느 정도까지, 뉴턴의 방법은 불변성이라는 점에서 '최상의'스케일링을 제공합니다.


0

SGD에 Newton의 방법을 사용하는 것과 관련하여 특히 많은 어려움이 있습니다.

  • 그것은 헤 시안 행렬을 필요로한다-예를 들어 합리적인 비용으로 충분한 정밀도로 시끄러운 기울기로부터 어떻게 추정 하는가?

  • 완전한 Hessian은 너무 비싸다-우리는 오히려 약간의 제한이 필요하다.

  • H1λ=0

  • 뉴턴의 방법은 그라디언트 제로로 가까운 지점으로 직접 유인합니다. 대신에 격퇴하는 방법? 예를 들어 새들없는 뉴턴은 음의 곡률 방향을 반대로하지만 고유 값의 표시를 제어해야합니다.

  • 온라인으로하는 것이 좋을 것입니다. 단일 지점에서 많은 계산을 수행하는 대신 더 많은 로컬 정보를 활용하는 여러 작은 단계로 분할하십시오.

우리는 작은 단계로 1 차에서 2 차로 갈 수 있습니다. 예를 들어 운동량 방법에 단지 3 개 평균의 업데이트를 추가하는 동시에 우리는 단계 크기의 더 똑똑한 선택을 위해 포물선을 그것의 방향으로 동시에 MSE에 맞출 수 있습니다. 그래디언트 디센트 하강을 위해 나머지 좌표를 계속 사용할 수 있습니다.

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