두 유전자 알고리즘 비교


9

동등하게 작동 해야하는 유전자 알고리즘의 두 가지 구현이 있습니다. 그러나 해결할 수없는 기술적 제한으로 인해 동일한 입력이 주어지면 출력이 정확히 동일하지 않습니다.

여전히 중요한 성능 차이가 없음을 보여주고 싶습니다.

서로 다른 초기 난수 시드를 사용하여 두 알고리즘 각각에 대해 동일한 구성으로 20 개의 실행이 있습니다. 각 실행 및 세대 에 대해 모집단에서 최고의 개인최소 오류 적합성 이 기록되었습니다. 이 알고리즘은 엘리트 보존 메커니즘을 사용하므로 최고의 개인의 체력은 단조롭게 감소합니다. 런은 1000 세대로 구성되므로 런당 1000 개의 값이 있습니다. 계산이 매우 비싸서 더 많은 데이터를 얻을 수 없습니다.

어떤 테스트를 사용해야합니까? 가장 쉬운 방법은 아마도 최종 세대의 오류 만 비교하는 것입니다 (다시 말해서 어떤 테스트를 사용할 것입니까?). 그러나 일반적으로 수렴 동작을 비교할 수도 있습니다.


설명과 같이 : 유전자 알고리즘이 무작위로 솔루션을 검색하여 실행의 초기 세그먼트가 가치있는 솔루션을 생성하지 않을 가능성이 있습니까? 또한 "인구의 최소 오차"란 정확히 무엇을 의미합니까? 알려진 실제 값과 런의 1000 개 값 중 솔루션 간의 최소 차이를 의미하는 경우 런 결과의 편향된 표시가 아닙니까? 결국 실제로는 각 실행에서 최종 솔루션을 수락하고 그 이전의 모든 것을 거부합니다.
whuber

실수로 나는 기본적으로 1 / 피트니스를 의미하므로 한 세대에서 최고의 개인의 가치에 대해 이야기하고 있습니다. 나는 모든 세대에 가장 적합한 개인의 체력 값을 기록했습니다. 그래서 저는 1000 * 20 * 2 숫자를 가지고 있는데, 각 숫자는 특정 런의 특정 세대에서 최고의 개인의 "피트니스"에 해당합니다.
nisc

초기 질문이 잘못 제기 된 것 같습니다. 몇 가지 설명을 추가했습니다 ..
nisc

답변:


9

확률 알고리즘을 테스트하는 것은 다소 까다로울 수 있습니다!

시스템 생물학에서 일하고 있으며 모델을 시뮬레이션하는 데 사용할 수있는 많은 확률 적 시뮬레이터가 있습니다. 단일 모델의 두 가지 구현은 일반적으로 다르기 때문에 이러한 시뮬레이터 테스트는 까다 롭습니다.

에서 dsmts 우리는 특정 모델 (분석적) 기대 값과 분산을 산출했다. 그런 다음 시뮬레이터가 실제와 다른지 확인하기 위해 가설 테스트를 수행합니다. 의 제 3 사용 설명서는 세부 사항을 제공합니다. 본질적으로 우리는 평균값에 대한 t- 검정과 분산에 대한 카이 제곱 검정을 수행합니다.

귀하의 경우 두 시뮬레이터를 비교하므로 대신 두 샘플링 t 테스트를 사용해야합니다.


모든 세대의 정보를 어떻게 사용합니까?
nisc

가장 쉬운 방법은 여러 테스트, 즉 모든 세대에서 테스트를 수행 한 다음 Bonferroni 또는 fdr 수정을 사용하는 것입니다.
csgillespie

모든 세대에서 비교할 때 1/1000 * 0.05의 유의 수준에서 테스트해야합니까? 조금 가혹하지 않습니까?
nisc

사실, 그러나 많은 테스트를 수행하고 있습니다. 모든 것을 가질 수는 없습니다.
csgillespie

1
bonferroni 수정 대신 항상 더 강력한 bonferroni holm을 사용할 수 있습니다. 여기 내 anyswer를 참조하십시오 stats.stackexchange.com/questions/575/...
헨릭에게

4

동일한 알고리즘의 두 실행 간의 평균 차이와 다른 알고리즘의 두 실행 간의 평균 차이를 측정 할 수 있습니다. 그 차이를 측정하는 방법의 문제를 해결하지는 않지만 더 다루기 힘든 문제 일 수 있습니다. 그리고 시계열의 개별 값은 서로를 평가하기 위해 개별 데이터 포인트로 취급하지 않고 차이 계산에 반영됩니다 (또한 n 번째 단계의 특정 차이가 실제로 원하는 것이라고 생각하지 않습니다 에 대해 진술하십시오).

세부 사항에 대한 업데이트 -최종 오류를 넘어 시계열의 어떤 기능에 관심이 있습니까? 실제로 해결해야 할 세 가지 다른 질문이 있다고 생각합니다.

  1. 당신에게 어떤 유사성을 구성 하는가, 즉 두 가지 방법이 다르다고 생각하지 않을 때 무엇을 의미 하는가?
  2. 그것을 어떻게 정량화합니까-1 후에 대답 할 수 있습니다.
  3. 두 방법 사이의 중요한 차이점을 어떻게 테스트 할 수 있습니까?

첫 번째 글에서 (1)에 대한 대답은 아마도 1000 세대 각각의 개인차를 고려하지 않을 것입니다. 그리고 나는 각 시계열에 대한 스칼라 값 또는 시계열 간의 적어도 유사성을 생각해 낼 것을 권합니다. 그런 다음에야 실제 통계 질문에 도달합니다 (세 지점 모두에 대해 가장 잘 알지 못하지만 요소 당 스칼라 값을 가질 때 방금 요청한 유사한 질문에 쌍으로 된 t- 검정을 사용하는 것이 좋습니다).


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