신경망과 유전 알고리즘을 활용한 뱀 게임 AI 학습
Source
Evernote/Inbox/AI Learns To Play Snake – Chrispresso – All things programming. All things coffee.md
Summary
이 문서는 유전 알고리즘(Genetic Algorithm)과 신경망(Neural Network)을 결합하여 뱀(Snake) 게임을 자동으로 플레이하는 AI를 구현하는 방법을 설명합니다. 신경망은 뱀의 다음 이동 방향을 결정하는 의사결정 장치로 사용되며, 입력층은 뱀의 현재 방향, 꼬리 방향, 그리고 주변 환경(벽, 사과, 자기 자신)에 대한 시야 정보를 받습니다. 시야는 4, 8, 또는 16 방향으로 설정 가능하며, 각 방향에서 장애물이나 먹이의 존재 여부 및 거리를 감지합니다. 은닉층(Hidden Layers)은 이러한 입력 정보를 학습하여 출력층에서 상/하/좌/우 중 하나의 방향을 선택하도록 합니다. 각 뱀 개체는 동일한 아키텍처의 신경망을 가지며, 유전 알고리즘을 통해 더 나은 성능을 보이는 신경망 가중치가 선택되고 진화됩니다.
Key Points
- 유전 알고리즘(GA)과 신경망(NN)의 결합을 통해 뱀 게임 AI 구현
- 신경망의 역할: 환경 입력을 받아 이동 방향(상/하/좌/우) 결정
- 입력 노드 구성: 현재 방향, 꼬리 방향(One-hot encoding), 시야 정보
- 시야(Vision) 시스템: 4/8/16 방향으로 벽, 사과, 자기 자신의 존재/거리 감지
- 은닉층: 입력과 출력 사이의 복잡한 패턴 학습을 담당
- 출력층: One-hot encoding된 4가지 방향 중 하나 선택
- 각 개체(Snake)는 동일한 신경망 아키텍처를 공유하지만 가중치는 다름