1

신경 회로망의 확대 된 토폴로지를 읽었으며 저에게이 작은 문제가 있습니다. NEAT에 케네스 스탠리의 종이를 읽는 동안 나는 여기이 그림에 온 :NeuroEvolution : NEAT 알고리즘 혁신 번호

혁신 번호 NEAT mutation

는 1,2,3,4,5로 1,2,3,4,5,6에서 이동 6,7 첫 번째 돌연변이

두 번째 항목에서는 1,2,3,4,5,6에서 1,2,3,4,5,6,8,9로 바뀝니다.

제 질문은 왜 7 번을 건너 뛰고 8 번으로 바로 넘어가는 겁니까? 혁신 번호를 삭제하는 것과 관련된 것을 찾지 못했습니다.

두 번째 그림과 동일하게 부모 1은 6,7을 잃었으며 8 번째 유전자는 부모 2에서 어디로 갔습니까?

NEAT crossover

답변

1

혁신 번호 (나는 짧게에서 사용하는 것)은 구조의 특정 부분의 라벨의 종류이다. 그래서 뉴런 번호 1에서 뉴런 번호 2 로의 연결은 IN을 가질 것이다. 1과 연결되어있는 모든 네트워크는이 연결이 IN 1로 표시됩니다. 새 연결이 생성되면 (연결 변경 추가 또는 노드 추가 변경), 다음과 같은 "데이터베이스"에 연결이 있는지 여부가 먼저 검사됩니다. INs. 이미 이러한 연결이 있으면 IN이 사용됩니다. 그렇지 않으면 IN 카운터가 증가하고 새 연결이이 새 IN을 가져와 데이터베이스에 저장됩니다.

위쪽 그림의 첫 번째 그림에서는 뉴런 3에서 뉴런 5까지 새 연결이 추가됩니다. 이것이 전체 인구에서 처음 나타나는 연결 인 경우 IN 카운터를 늘리고이 새 IN 그 연결을 위해. 다른 곳에서 이미 발생했다면 새로운 것을 만드는 대신 IN을 사용합니다. 그러한 경우 중 하나 일 수 있습니다. 나머지 인구가 어떻게 생겼는지는 알 수 없습니다. 연결 3-> 5는 7이됩니다.

이제 첫 번째 그림의 아래쪽 부분에 뉴런 3과 4 사이에 뉴런 6을 추가합니다. 즉, 뉴런 3과 4 사이에 연결 6을 추가합니다. 6-> 4. 다시 한번, 당신은 "데이터베이스에 3 -> 6 연결을위한 IN이 있습니까?"라고 묻습니다. 해당 IN을 사용하는 경우 카운터를 늘리십시오. 다른 연결에 대해서도 마찬가지입니다. 이 그림에서이 새로운 연결은 모두 새로운 것으로 생각할 수 있습니다. 따라서 IN 카운터가 6이고 새 연결로 인해 IN 카운터가 증가하고 연결에 7이 할당되었습니다. . 그런 다음 하단 부분에 두 개의 새로운 연결이 생겨 IN 카운터를 8과 9로 증가 시켰습니다. 하단 부분에는 IN 7이있는 연결 3-> 5가 없으므로 IN 7이 연결되지 않습니다 그곳에.

두 번째 그림은 연결되지 않은 IN이있을 때 크로스 오버가 어떻게 작동하는지 보여주는 예입니다. 부모는이 예의 경우입니다. 그러나 그들은 아주 쉽게이 상태에 도달 할 수있었습니다. 상상해보십시오. 부모 1은 진화의 초기 시점에서 IN 1-5가 있었고 5는 지금까지 가장 새로운 IN이었습니다. 그런 다음 인구의 다른 곳에서 뉴런 5와 4 사이에 새로운 뉴런 (번호 6)이 추가되었습니다. 즉, 새로운 연결 5-> 6과 6-> 4가 만들어졌습니다. 이러한 연결이 아직 발생하지 않았으므로 IN 카운터가 6과 7로 증가했습니다. 그런 다음 부모 1이 새로운 연결 1-> 8을 추가하여 변경되었습니다. 이것은 새로운 것이기 때문에, 새로운 IN 8이 할당되었습니다.