그라데이션 디센트를 사용하여 N 매개 변수에서 함수의 최소값을 찾으려고합니다. 그러나 매개 변수의 절대 값의 합을 1 (또는 < = 1, 중요하지 않음)로 제한하면서이를 수행하려고합니다. 이런 이유로 저는 lagrange multipliers의 방법을 사용하고 있습니다. 만약 함수가 f (x)라면 f (x) + lambda * (g (x) -1)를 최소화 할 것입니다. 여기서 g (x)는 부드러운 근사입니다. 파라미터의 절대치의 합그라디언트 디센트 (제약 조건 포함)
이제는 g (x) = 1 일 때이 함수의 그래디언트 만 0이 될 것이므로 로컬 최소값을 찾는 방법은 내 조건이 충족되는 최소한의 함수를 찾아야합니다. 문제는이 함수가 무한대로 추가되어 Gradient Descent가 더 크고 큰 매개 변수 (절대 값)를 가진 더 크고 더 큰 람다를 찾고 수렴하지 않는다는 것입니다.
현재 CG의 파이썬 (scipy) 구현을 사용하고 있으므로 CG 코드를 직접 다시 작성하거나 조정할 필요가없는 제안을 선호하지만 기존 방법을 사용하십시오.
나는 접합 그라디언트를 사용하고 있습니다. 자세한 답변 주셔서 감사합니다! – nickb
@ chris-taylor 라그랑지안 그라디언트의 제곱 또는 라그랑쥬 스퀘어의 그라디언트를 의미합니까? 그라디언트의 사각형은 무엇입니까? –
@ chris-taylor 귀하의 답변에 대한 참고서/논문/교과서 (특히 세 번째 해결책)를 소개해 주시겠습니까? 제약 조건 최적화 기용 라이브러리가없는 JS에서 코딩 중이며 접근 방식의 타당성을 테스트하기 위해 간단한 그라디언트 디센트를 사용해 볼 필요가 있습니다. –