2012-12-23 2 views
4

최신 연구 프로젝트에 대한 매개 변수 최적화가 필요합니다. 현재 5 개의 매개 변수 (4 개의 double [0,1] 및 3 개의 값이있는 하나의 nominal)가있는 알고리즘이 있습니다. 알고리즘은 이러한 매개 변수를 사용하여 물건을 계산 한 후 정밀도를 계산합니다. & FMeasure. 한 번의 실행에는 약 1,8 초가 걸립니다. 현재 저는 0.1 단계 크기로 각 매개 변수를 살펴볼 것입니다.이 단계 크기는 대략 전역 최대 값을 나타냅니다. 그러나 정확한 전체 최대 값을 찾고 싶습니다. Gradient Descent를 살펴 봤지만 알고리즘에이 알고리즘을 적용하는 방법을 알지 못합니다 (가능한 경우). 아무도 나에게 이런 알고리즘을 구현하는 방법을 조금이라도 안내 해줄 수 있을까?Realworld 매개 변수 최적화

건배, 다니엘

+2

당신이 당신의 (더블) 매개 변수에 대한 기울기를 계산할 수 있습니다

또한,이 관련 질문을 참조? –

+0

안녕하세요, 토마스. 최근 lib 디렉토리를 보았습니다. :) 현재 내 함수는 다음과 같습니다. a1 * x1 + a2 * x2 + a3 * x3 = y 및 x4는 y

+1

아마도 유전 검색 알고리즘 http://en.m.wikipedia.org/wiki/Genetic_algorithm을 살펴 봐야 할 것입니다. Java 구현 프레임 워크도 있습니다. – Ralph

답변

3

당신은 확실히 그리드 검색보다 더 할 수 있습니다.

그라디언트 디센트와 같은 알고리즘을 적용하기 전에 매개 변수 공간에 로컬 최대 값이 포함되어 있지 않거나 최소한 출발점이 전역 최대 값에 가까우며 단계 크기가 그것.

귀하의 경우, 최대한 많은 무작위 샘플을 그리기 시작하는 것이 좋습니다. 이는 그리드 검색보다 매개 변수 공간을 탐색하는 훨씬 더 좋은 방법입니다. 이 방법으로 충분한 데이터를 수집하면 mean shift과 같은 모드 찾기 알고리즘이나 더 빠른 파생 함수 중 하나를 사용하거나 곧바로 최적화를 수행 할 수 있습니다. 매개 변수 공간의 Jacobian을 가지고 있지 않으므로 Broyden's method을 반복적으로 사용하거나 secant method (예 : BFGS)을 사용할 수 있습니다. How can I adjust parameters for image processing algorithm in an efficient way?

+0

당신의 대답은 thx입니다. 나는 관련 질문을보고 그것을 바탕으로 언덕 등반 접근법을 구현했습니다. 슬프게도 함수가 많은 로컬 맥시마를 가지고 있다는 것이 밝혀졌습니다 (이것은 임계 값 때문이라고 생각합니다). 무작위로 시작점을 많이 추출 했으므로 그리드 검색을 통해 더 나은 결과를 얻을 수 있습니다. 로컬 맥시마가 많은 함수를 다루는 특별한 방법이 있습니까? –