이것은 강화 학습을 사용하여 AI가 스네이크 게임을 플레이하도록 훈련시키는 방법에 대한 간단한 가이드입니다. 이 기사에서는 맞춤형 게임 환경을 설정하고 Python으로 표준화된 Stable-Baselines3 알고리즘 라이브러리를 사용하여 AI가 Snake를 플레이하도록 훈련시키는 방법을 단계별로 보여줍니다.
이 프로젝트에서는 사용하기 쉬운 PyTorch 기반 강화 학습(RL) 알고리즘 구현을 제공하는 표준화된 라이브러리인 Stable-Baselines3을 사용합니다.
먼저 환경을 설정합니다. Stable-Baselines 라이브러리에는 내장된 게임 환경이 많이 있습니다. 여기서는 중간에 추가로 교차하는 벽이 있는 클래식 Snake의 수정된 버전을 사용합니다.

더 나은 보상 계획은 음식에 더 가까운 걸음만 보상하는 것입니다. 뱀은 여전히 원을 그리며 걷는 법만 배울 수 있고, 음식에 접근할 때 보상을 받은 다음 돌아서 돌아올 수 있으므로 여기서 주의해야 합니다. 이를 방지하려면 음식을 멀리하는 데에도 동등한 페널티를 주어야 합니다. 즉, 폐쇄 루프의 순 보상이 0이 되도록 보장해야 합니다. 또한 벽에 부딪힐 경우 벌칙을 도입해야 합니다. 어떤 경우에는 뱀이 먹이에 더 가까이 다가가기 위해 벽에 부딪히는 경우도 있기 때문입니다.
대부분의 기계 학습 알고리즘은 상당히 복잡하고 구현하기 어렵습니다. 다행스럽게도 Stable-Baselines3은 이미 여러 가지 최첨단 알고리즘을 구현하고 있습니다. 이 예에서는 PPO(Proximal Policy Optimization)를 사용합니다. 알고리즘이 어떻게 작동하는지 자세히 알 필요는 없지만(관심이 있다면 이 설명 동영상을 확인하세요), 하이퍼파라미터가 무엇이고 어떤 역할을 하는지에 대한 기본적인 이해는 필요합니다. 다행히 PPO에는 그 중 몇 가지만 있으며 다음을 사용합니다.
learning_rate: 다른 기계 학습 시나리오와 마찬가지로 정책 업데이트 단계의 크기를 설정합니다. 너무 높게 설정하면 알고리즘이 올바른 솔루션을 찾지 못하거나 복구할 수 없는 방향으로 밀어붙일 수도 있습니다. 너무 낮게 설정하면 훈련 시간이 더 오래 걸립니다. 일반적인 비결은 스케줄러 기능을 사용하여 훈련 중에 이를 조정하는 것입니다.
gamma: 미래 보상에 대한 할인 요소로, 0(즉시 보상만 중요함)과 1(미래 보상은 즉각적인 보상과 동일한 가치를 가짐) 사이입니다. 훈련 효과를 유지하려면 0.9 이상으로 유지하는 것이 가장 좋습니다.
clip_range1+-clip_range: PPO의 중요한 기능으로, 훈련 중에 모델이 크게 변경되지 않도록 하기 위해 존재합니다. 이를 줄이면 이후 학습 단계에서 모델을 미세 조정하는 데 도움이 됩니다.
ent_coef: 기본적으로 값이 높을수록 알고리즘이 최적이 아닌 다양한 작업을 더 많이 탐색하도록 권장되며, 이는 계획이 로컬 보상 최대값을 탈출하는 데 도움이 될 수 있습니다.
일반적으로 말해서, 기본 하이퍼매개변수로 시작하세요.
다음 단계는 미리 결정된 일부 단계에 대해 훈련한 다음 알고리즘이 얼마나 잘 수행되는지 직접 확인한 다음 가장 잘 수행되는 새로운 매개변수로 다시 시작하는 것입니다. 여기서는 다양한 훈련 시간에 대한 보상을 표시합니다.

충분한 단계를 거친 후 뱀 훈련 알고리즘이 특정 보상 값에 수렴하면 훈련을 완료하거나 매개변수를 미세 조정하고 훈련을 계속할 수 있습니다.
가능한 최대 보상에 도달하는 데 필요한 훈련 단계는 문제, 보상 체계 및 하이퍼파라미터에 따라 크게 달라지므로 알고리즘을 훈련하기 전에 최적화하는 것이 좋습니다. 뱀 게임을 하기 위해 AI를 훈련시키는 예의 끝에서 우리는 AI가 미로에서 음식을 찾고 꼬리와의 충돌을 피할 수 있다는 것을 발견했습니다.
위 내용은 Python을 사용하여 AI가 Snake 게임을 하도록 훈련시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

pythonisnotpurelynlogreted; itusesahybrideprophorfbyodecodecompilationandruntime -INGRETATION.1) pythoncompilessourcecodeintobytecode, thepythonVirtualMachine (pvm)

ToconcatenatelistsinpythonwithesameElements, 사용 : 1) OperatorTokeEpduplicates, 2) asettoremovedUplicates, or3) listComperensionForControlOverDuplicates, 각 methodHasDifferentPerferformanCeanDorderImpestications.

PythonisancerpretedLanguage, 비판적 요소를 제시하는 PytherfaceLockelimitationsIncriticalApplications.1) 해석 된 언어와 같은 thePeedBackandbackandrapidProtoTyping.2) CompilledlanguagesLikec/C transformt 해석

useforloopswhhenmerfiterationsiskNownInAdvance 및 WhileLoopSweHeniTesslationsDepoyConditionismet whilEroopsSuitsCenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTherInatismet, 유용한 광고 인 푸트 gorit


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.