신경망의 구조를 게놈으로 어떻게 인코딩해야합니까?


14

결정 론적 문제 공간을 위해서는 최적의 노드 및 링크 구조를 가진 신경망을 찾아야합니다. 유전자 알고리즘을 사용하여 많은 신경망을 시뮬레이션하여 문제 영역에 가장 적합한 네트워크 구조를 찾고 싶습니다.

전에는 이런 작업에 유전자 알고리즘을 사용해 본 적이 없습니다. 실용적인 고려 사항은 무엇입니까? 구체적으로 신경망의 구조를 어떻게 게놈으로 인코딩해야합니까?

답변:


12

"Metaheuristics 필수 사항" 섹션 4.2는 유전자 알고리즘을 통해 그래프 구조를 인코딩하는 대체 방법에 대한 풍부한 정보를 제공합니다.

진화하는 ANN과 관련하여 개인적으로 이런 종류의 일을 '처음부터'구현하려는 경향이 없습니다.

신경 진화의 분야는 한동안 주변에 있었고, NEAT의 증강 토폴로지 ( NEAT) 와 같은 방법 중 일부를 구현했습니다. 이제 많은 실제 경험의 결과를 통합합니다.

위의 링크에 따르면

또한 NEAT의 확장 기능인 HyperNEAT를 개발하여 수백만 개의 연결로 신경망을 발전시키고 작업 도메인의 기하학적 규칙을 활용할 수 있습니다. HyperNEAT 페이지에는 출판물 링크와 접근 방식에 대한 일반적인 설명이 포함되어 있습니다.


"Metaheuristics의 필수 요소"는 매우 흥미롭게 보입니다. 순수한 MCTS가 M 게임에서 절대 최적이 아니기 때문에 M-automata의 로드맵에 실제로있는 것입니다. 로부터 메타 휴리스틱 위키 : "컴퓨터 과학 및 수학 최적화에서는, 메타 휴리스틱 찾고, 생성, 또는 최적화 문제에 충분히 좋은 솔루션을 제공 할 수있는 휴리스틱 (부분 검색 알고리즘)을 선택하기위한 높은 수준의 프로 시저 또는 발견이며, 특히 불완전하거나 불완전한 정보 또는 계산 능력이 제한적입니다. "
DukeZhou

4

신경망을 진화시키기 위해 진화 알고리즘을 사용하는 것을 신경 진화 라고합니다 합니다.

일부 신경 진화 알고리즘 은 고정 토폴로지를 사용하여 신경망 의 가중치 만 최적화합니다 . 그것은 당신이 원하는 것과 같지 않습니다. 다른 neuroevolution 알고리즘은 가중치토폴로지를 모두 최적화합니다 은 신경망 를 . 이러한 종류의 알고리즘은 목표에 더 적합 해 보이며 때때로 TWEANNs (TopEANs and Weight Evolving Neural Networks)이라고도합니다.

인기있는 알고리즘 중 하나는 NEAT입니다 이며, 아마도 많은 구현이 있기 때문에 시작하기에 좋은 장소 일 것입니다. 그것은 적어도 당신에게 일할 기준을 줄 것입니다.

NEAT는 신경망 게놈을 그래프 구조로 직접 인코딩합니다. 돌연변이는 새 링크 (이전에 연결되지 않은 두 노드를 연결하여) 또는 새 노드 (기존 연결을 분할하여)를 추가하여 네트워크 구조에서 작동하거나 그래프의 모서리와 연관된 가중치를 변경하는 경우에만 작동 할 수 있습니다 (돌연변이라고 함) 무게). 이 특정 알고리즘이 작동하는 ANN 크기의 차수에 대한 아이디어를 제공하려면 100 개 또는 200 개 이상의 노드로 어려움을 겪을 수 있습니다.

더 확장 가능한 TWEANN이 있지만 더 복잡하고 실제로 생산적이지는 않을 수있는 생성되는 구조 종류에 대해 가정합니다. 예를 들어, 신경망의 구조를 인코딩하는 다른 방법은 문법 (예를 들어, L- 시스템)에 의해 반복적으로 확장되는 시드 패턴의 곱이다. 더 큰 구조를 훨씬 쉽게 탐색 할 수 있지만 문법으로 생성되기 때문에 자체 반복적 인 느낌을 갖게됩니다. HyperNEAT는 다른 종류의 가정 (가중치 패턴을 형상의 함수로 쉽게 표현할 수 있음)을 가정하고 해당 가정이 특정 도메인에 적합 할 때 수백만 개의 연결로 ANN으로 확장 할 수있는 NEAT의 널리 사용되는 확장입니다.

보다 다양한 기술을 관찰하려는 경우 상단 링크에 몇 개의 설문 조사 문서가 링크되어 있습니다.

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