먼저 과학적 수학이나 통계에 대한 경험이 부족합니다. 이렇게하면 매우 잘 알려진 문제 일 수 있지만 어디서부터 시작해야할지 모르겠습니다.많은 매개 변수 (파이썬)가있는 함수를 최대화
나는 x'ses를 추측하고 f
의 가장 높은 값을 찾을 필요가있는 f(x1, x2, ..., xn)
기능이 있습니다. 이 함수의 속성은 다음과 같습니다.
총 수 또는 매개 변수는 대개 약 40-60이며, 무차별 대입 방식이 불가능합니다.
0.01 각 X 범위의 가능한 값
2.99하는 기능은 더 높은 F 값이 매개 변수의 추측이 더 반대임을 의미 즉, 정상이다.
지금까지 파이썬으로 아주 기본적인 방법을 구현했습니다. 처음에는 모든 매개 변수를 1로 설정하고, 임의로 새 값을 추측하고 f가 이전보다 더 높은지 검사합니다. 그렇지 않은 경우 이전 값으로 롤백하십시오. 반복 횟수가 10,000 회인 루프에서 이것은 어떻게 든 작동하는 것으로 보이지만 그 결과는 완벽한 것으로부터 멀리 떨어져 있습니다.
최적의 매개 변수 검색을 개선하는 방법에 대한 제안 사항을 보내 주시면 감사하겠습니다. 이 문제를 다룰 때 linke MCMC가 등장했지만 매우 진보 된 방법 인 것처럼 보이고 방법을 이해하는 데 많은 시간이 필요할 것입니다. 기본 힌트 또는 개념은 정교한 방법 및 알고리즘 이상을 지원합니다.
SO! 이 문제에 대한 공식적인 해결책은 확실 하겠지만, 첫 번째 추측은 탐욕스러운 알고리즘이 될 것입니다 ... 각'xn'에 대해'f'를 최대화하는'xn'의 값을 찾아서 반복합니까? 이것은'f'의 성격에 달려 있습니다. 생각? –
함수에 최대 값이 거의 없는지 또는 많이있을 것으로 예상되는지 알 수 있습니까? 비교적 적은 수의 최대 값이라면 [gradient descent]를 시도해 볼 수 있습니다. (http://en.wikipedia.org/wiki/Gradient_descent) –
알 수없는 수의 변수를 함수에 보내는 경우, 다음 중 하나에 저장하는 것이 좋습니다. 배열, 목록 또는 사전. 아마도 네 사건의 목록 일거야. – Josh