차세대 후보 배치를 선택하는 알려진 패턴이 있습니까?
저는 고전적인 "레이싱 카"샌드 박스와 수제 간단한 신경망을 가진 초보자입니다.
내 패턴 :
"상단 자동차"(변형 없음)를 다음 세대로 복사
(시뮬레이션이 30 년대 승리 조건에 도달했기 때문에) 아직 실행중인 자동차가있는 경우 다음 세대를 위해 변형 된 버전을 복사합니다.
수영장의 나머지 부분을 "상단 차"의 변형으로 채 웁니다.
그러나 이것은 코드를 가지고 놀면서 즉석에서 만든 멍청한 직관적 패턴 일뿐입니다. 아마도 나는 그들을 변경하는 대신에 그대로 실행중인 자동차를 복사해야 할 것입니다. 또는 내가 모르는 선택 방법 일 수도 있습니다.
새로운 무작위 트랙이 새로운 세대마다 생성됩니다. "최고의 자동차"는 트랙에서 좋을 수 있고 다음 트랙에서 즉시 충돌 할 수 있습니다. 나는 트랙의 무작위성 때문에 모든 것을 탑 카에 기반하는 것이 잘못되었다고 느낍니다.
후보 배치를 선택하는 알려진 패턴이 있습니까? (종이, google-fu 키워드, 흥미로운 블로그 등)
무엇을 검색해야할지 모르겠습니다. 네트워크 이름이나 AI와 관련된 어휘도 모릅니다.
답변
수행하려는 작업을 다루는 가장 일반적인 설명 프레임 워크는 다음과 같습니다.
순차적 의사 결정 (문서는 스텁이지만이 용어는 다양한 모델링 wys를 발견하고 이러한 종류의 문제를 해결하기위한 좋은 시작점입니다.)
최적의 제어
이것들은 문제에 대한 컨텍스트를 제공하고 몇 가지 지침을 제공 할 수 있습니다. 예를 들어 강화 학습은 구축하려는 진화 시스템에 대한 대안적인 접근 방식입니다.
당신이 구축하고있는 것으로 보이는 특정 AI 시스템은 유전 알고리즘 이며, 더 구체적으로 당신은 반복되는 인구 생성, 선택 및 돌연변이 시스템을 사용하여 최적의 네트워크를 검색하여 작업에 최적 인 신경망을 찾으려고합니다. .
이와 같은 시스템을 설정하는 방법에는 여러 가지가 있으므로 접근 방식이 반드시 잘못된 것은 아닙니다 . 그러나 지금까지 구축 한 것을 개선 할 수있는 두 가지 핵심 요소가 있다고 생각합니다.
선택을 위해 피트니스 기능 을 사용하십시오 . 에피소드가 끝날 때 충돌하기 전에 얼마나 멀리 도달했는지 각 자동차에 점수를 매 깁니다. 무작위 코스의 운율을 줄이려면이 점수를 예를 들어 3 개의 다른 코스의 평균 결과로 만들 수 있습니다 (필수는 아니지만 귀하의 경우 선택이 너무 무작위 적이라는 우려를 해결할 수 있습니다). 최고 점수를받은 자동차의 일부를 선택하거나 다른 선택 접근 방식 (예 : 피트니스 점수 또는 순위에 기반한 가중치 선택)을 살펴보십시오.
선택한 인구 구성원 간의 게놈 교차로 더 잘 알려진 "성"을 추가 합니다. 돌연변이 개체는 단일 조상 라인에 대한 개선을 격리하기 때문에 제한적입니다. 무작위로 두 개의 좋은 돌연변이가 발견되면 둘 모두를 찾는 단일 라인에 의존합니다. 크로스 오버는 라인간에 좋은 돌연변이를 공유하는 것을 허용하지만, 두 개의 좋은 돌연변이가 동일한 개체에서 끝날 가능성이 훨씬 더 높습니다.
위의 문제를 다루고 진화하는 신경망에 유용한 다른 기능이있는 NEAT 라는 프레임 워크가 있습니다 . 고려중인 것과 같은 제어 시나리오에서 종종 잘 수행됩니다. 주로 제어 문제를 해결하는 데 중점을 두는 경우 조사해 볼 수 있습니다. 그러나 그것은 당신이있는 곳에서 상대적으로 발전하기 때문에 처음부터 구축하여 배우는 데 현재 초점을 맞추고 있다면 처음에는 피트니스 기능을 구현하고 스스로 교차하는 것에서 더 많은 것을 얻을 수 있습니다.