L-BFGS는 어떻게 작동합니까?


15

이 논문의 목적은 정규화 된 로그 우도를 최대화하여 일부 매개 변수를 최적화하는 것이 었습니다. 그런 다음 부분 파생 상품을 계산합니다. 그리고 저자들은 많은 변수의 부드러운 함수를 최적화하기 위해 표준 유사-뉴턴 절차 인 L-BFGS를 사용하여 방정식을 최적화한다고 언급했습니다 (더 자세한 것은 아님).

어떻게 작동합니까?


3
무슨 종이 요? 종이에 연결하십시오 문맥이 필요합니다. L-BFGS 와 같은 두문자어에 대한 링크를 넣고 철자하십시오. L-BFGS = 메모리 한정 Broyden–Fletcher – Goldfarb–Shanno (BFGS) 알고리즘
Carl

1
en.wikipedia.org/wiki/Limited-memory_BFGS 기능과 성능이 크게 다를 수있는 변형이 많이 있습니다.
Mark L. Stone

안녕, 마크 씨 감사합니다 :) 내가 볼게요. 이 논문은 cs.stanford.edu/people/jure/pubs/circles-tkdd14.pdf (식 6 최적화)
Abir

기본적으로 L-BFGS는 목적 함수 값과 목적 함수의 기울기를 사용하여 목적 함수의 (로컬) 최소값을 찾는 방법으로 생각합니다. 이 수준의 설명에는 L-BFGS 외에도 많은 최적화 방법이 포함됩니다. springer.com/us/book/9780387303031 섹션 7.2에서 자세한 내용을 확인할 수 있습니다 .
Mark L. Stone

1
BFGS는 시컨트 방법을 통해 2 차 방법 (뉴턴)을 모방하기위한 1 차 방법을 시도하는 방법입니다
user795305

답변:


28

기본적으로 L-BFGS는 목적 함수 값과 목적 함수의 기울기를 사용하여 목적 함수의 (로컬) 최소값을 찾는 방법으로 생각합니다. 이 수준의 설명에는 L-BFGS 외에도 많은 최적화 방법이 포함됩니다. 이에 대한 자세한 내용은 Nocedal and Wright "Numerical Optimization, 2nd edition"( http://www.springer.com/us/book/9780387303031) 섹션 7.2에서 확인할 수 있습니다. L-BFGS에 대한 매우 간단한 설명은 https://en.wikipedia.org/wiki/Limited-memory_BFGS 에서 제공됩니다 .

1 차 방법은 기울기 (1 차 도함수) (및 목적 함수 값)가 사용되지만 헤 시안 (2 차 도함수)은 사용되지 않음을 의미합니다. 예를 들어, 경사 하강 및 가파른 하강을 생각해보십시오.

2 차 방법은 그라디언트 및 Hessian (및 아마도 목적 함수 값)이 사용됨을 의미합니다. 2 차 방법은 다음 중 하나를 기반으로 할 수 있습니다.

  1. "정확한"Hessian 행렬 (또는 그라디언트의 유한 차이),이 경우 Newton 방법 또는

  2. "시차"(Quasi-Newton) 조건을 적용하여 여러 반복에 대한 기울기의 차이를 기반으로 Hessian을 근사화하는 Quasi-Newton 방법. Hessian을 다른 방식으로 추정하는 많은 Quasi-Newton 방법이 있습니다. 가장 인기있는 것 중 하나는 BFGS입니다. BFGS Hessian 근사값은 전체 그라디언트 히스토리 (이 경우 BFGS라고 함)를 기반으로하거나 가장 최근의 m 그라디언트만을 기반으로 할 수 있습니다.이 경우 제한된 메모리 BFGS라고하며 약어 L-BFGS로. L-BFGS의 장점은 가장 최근의 m 그라디언트 만 유지하면된다는 점입니다. 여기서 m은 일반적으로 약 10-20이며, 이는 전체를 저장하는 데 필요한 n * (n + 1) / 2 요소보다 훨씬 작은 저장 요구 사항입니다. BFGS에서 요구되는 헤 시안 추정치의 (삼각형) 여기서 n은 문제의 차원입니다. (완전한) BFGS와 달리, Hessian의 추정은 결코 명시 적으로 L-BFGS에 형성되거나 저장되지 않습니다 (BFGS의 일부 구현은 Hessian 근사 자체가 아닌 Hessian 근사의 Choelsky 요인 만 형성하고 업데이트하지만). 오히려, Hessian의 추정에 필요한 계산은 그것을 명시 적으로 형성하지 않고 달성됩니다. 매우 큰 문제 (n이 매우 큰 경우)에 대해 BFGS 대신 L-BFGS가 사용되지만 BFGS만큼 성능이 좋지 않을 수 있습니다. 따라서 BFGS의 메모리 요구 사항을 충족 할 수있는 경우 BFGS가 L-BFGS보다 선호됩니다. 반면, L-BFGS는 BFGS보다 성능면에서 그리 나쁘지 않을 수 있습니다. Hessian의 추정은 명시 적으로 L-BFGS에 명시 적으로 형성되거나 저장되지 않습니다 (BFGS의 일부 구현은 Hessian 근사 자체가 아니라 Hessian 근사의 Choelsky 요인 만 형성하고 업데이트하지만). 오히려, Hessian의 추정에 필요한 계산은 그것을 명시 적으로 형성하지 않고 달성됩니다. 매우 큰 문제 (n이 매우 큰 경우)에 대해 BFGS 대신 L-BFGS가 사용되지만 BFGS만큼 성능이 좋지 않을 수 있습니다. 따라서 BFGS의 메모리 요구 사항을 충족 할 수있는 경우 BFGS가 L-BFGS보다 선호됩니다. 반면, L-BFGS는 BFGS보다 성능면에서 그리 나쁘지 않을 수 있습니다. Hessian의 추정은 명시 적으로 L-BFGS에 명시 적으로 형성되거나 저장되지 않습니다 (BFGS의 일부 구현은 Hessian 근사 자체가 아니라 Hessian 근사의 Choelsky 요인 만 형성하고 업데이트하지만). 오히려, Hessian의 추정에 필요한 계산은 그것을 명시 적으로 형성하지 않고 달성됩니다. 매우 큰 문제 (n이 매우 큰 경우)에 대해 BFGS 대신 L-BFGS가 사용되지만 BFGS만큼 성능이 좋지 않을 수 있습니다. 따라서 BFGS의 메모리 요구 사항을 충족 할 수있는 경우 BFGS가 L-BFGS보다 선호됩니다. 반면, L-BFGS는 BFGS보다 성능면에서 그리 나쁘지 않을 수 있습니다. Hessian의 추정에 필요한 계산은 명시 적으로 형성하지 않고 수행됩니다. 매우 큰 문제 (n이 매우 큰 경우)에 대해 BFGS 대신 L-BFGS가 사용되지만 BFGS만큼 성능이 좋지 않을 수 있습니다. 따라서 BFGS의 메모리 요구 사항을 충족 할 수있는 경우 BFGS가 L-BFGS보다 선호됩니다. 반면, L-BFGS는 BFGS보다 성능면에서 그리 나쁘지 않을 수 있습니다. Hessian의 추정에 필요한 계산은 명시 적으로 형성하지 않고 수행됩니다. 매우 큰 문제 (n이 매우 큰 경우)에 대해 BFGS 대신 L-BFGS가 사용되지만 BFGS만큼 성능이 좋지 않을 수 있습니다. 따라서 BFGS의 메모리 요구 사항을 충족 할 수있는 경우 BFGS가 L-BFGS보다 선호됩니다. 반면, L-BFGS는 BFGS보다 성능면에서 그리 나쁘지 않을 수 있습니다.

이 수준의 설명에서도 많은 변형이 있습니다. 예를 들어, 방법은 완전히 안전하지 않을 수 있으며,이 경우 어떤 일이 발생하더라도 볼록한 문제 일지라도 어떤 것도 수렴되지 않을 수 있습니다. 또는 보호 할 수 있습니다. 보호 방법은 일반적으로 트러스트 영역 또는 줄 검색을 기반으로하며 무언가에 대한 수렴을 보장하기위한 것입니다. 매우 중요한 것은 방법이 L-BFGS라는 것을 아는 것만으로 어떤 유형의 보호가 사용되는지를 스스로 알려주지는 않습니다. 자동차가 4 도어 세단이라는 말과 비슷하지만 모든 4 도어 세단이 성능이나 신뢰성이 동일한 것은 아닙니다. 최적화 알고리즘의 특성 중 하나 일뿐입니다.


1
안녕하세요, 다시 당신의 도움이 필요합니다, 당신은 나에게 뉴턴과 쿼지 뉴턴 방법의 차이점을 간단히 말해 줄 수 있습니까 ?? 감사합니다
Abir

3
뉴턴 방법은 알고리즘의 각 반복에서 정확하게 또는 반복의 구배의 유한 차이에 의해 "처음으로"헤 시안 행렬을 계산합니다. Quasi-Newton 방법은 반복에 따른 그라디언트 차이. 이 작업을 수행하는 방법에는 여러 가지가 있으며 BFGS, DFP, SR1 등과 같은 다양한 Quasi-Newton 방법을 사용합니다. 일반적으로 Newton 방법은 Hessian을 계산하기 위해 각 반복마다 많은 양의 compjuting이 필요합니다. Quasi-Newton 방법보다 반복 당 훨씬 많은 컴퓨팅이 필요합니다.
Mark L. Stone
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.