찾다
백엔드 개발파이썬 튜토리얼Python을 사용하여 AI가 Snake 게임을 하도록 훈련시키는 방법

이것은 강화 학습을 사용하여 AI가 스네이크 게임을 플레이하도록 훈련시키는 방법에 대한 간단한 가이드입니다. 이 기사에서는 맞춤형 게임 환경을 설정하고 Python으로 표준화된 Stable-Baselines3 알고리즘 라이브러리를 사용하여 AI가 Snake를 플레이하도록 훈련시키는 방법을 단계별로 보여줍니다.

이 프로젝트에서는 사용하기 쉬운 PyTorch 기반 강화 학습(RL) 알고리즘 구현을 제공하는 표준화된 라이브러리인 Stable-Baselines3을 사용합니다.

먼저 환경을 설정합니다. Stable-Baselines 라이브러리에는 내장된 게임 환경이 많이 있습니다. 여기서는 중간에 추가로 교차하는 벽이 있는 클래식 Snake의 수정된 버전을 사용합니다.

Python을 사용하여 AI가 Snake 게임을 하도록 훈련시키는 방법

더 나은 보상 계획은 음식에 더 가까운 걸음만 보상하는 것입니다. 뱀은 여전히 ​​원을 그리며 걷는 법만 배울 수 있고, 음식에 접근할 때 보상을 받은 다음 돌아서 돌아올 수 있으므로 여기서 주의해야 합니다. 이를 방지하려면 음식을 멀리하는 데에도 동등한 페널티를 주어야 합니다. 즉, 폐쇄 루프의 순 보상이 0이 되도록 보장해야 합니다. 또한 벽에 부딪힐 경우 벌칙을 도입해야 합니다. 어떤 경우에는 뱀이 먹이에 더 가까이 다가가기 위해 벽에 부딪히는 경우도 있기 때문입니다.

대부분의 기계 학습 알고리즘은 상당히 복잡하고 구현하기 어렵습니다. 다행스럽게도 Stable-Baselines3은 이미 여러 가지 최첨단 알고리즘을 구현하고 있습니다. 이 예에서는 PPO(Proximal Policy Optimization)를 사용합니다. 알고리즘이 어떻게 작동하는지 자세히 알 필요는 없지만(관심이 있다면 이 설명 동영상을 확인하세요), 하이퍼파라미터가 무엇이고 어떤 역할을 하는지에 대한 기본적인 이해는 필요합니다. 다행히 PPO에는 그 중 몇 가지만 있으며 다음을 사용합니다.

learning_rate: 다른 기계 학습 시나리오와 마찬가지로 정책 업데이트 단계의 크기를 설정합니다. 너무 높게 설정하면 알고리즘이 올바른 솔루션을 찾지 못하거나 복구할 수 없는 방향으로 밀어붙일 수도 있습니다. 너무 낮게 설정하면 훈련 시간이 더 오래 걸립니다. 일반적인 비결은 스케줄러 기능을 사용하여 훈련 중에 이를 조정하는 것입니다.

gamma: 미래 보상에 대한 할인 요소로, 0(즉시 보상만 중요함)과 1(미래 보상은 즉각적인 보상과 동일한 가치를 가짐) 사이입니다. 훈련 효과를 유지하려면 0.9 이상으로 유지하는 것이 가장 좋습니다.

clip_range1+-clip_range: PPO의 중요한 기능으로, 훈련 중에 모델이 크게 변경되지 않도록 하기 위해 존재합니다. 이를 줄이면 이후 학습 단계에서 모델을 미세 조정하는 데 도움이 됩니다.

ent_coef: 기본적으로 값이 높을수록 알고리즘이 최적이 아닌 다양한 작업을 더 많이 탐색하도록 권장되며, 이는 계획이 로컬 보상 최대값을 탈출하는 데 도움이 될 수 있습니다.

일반적으로 말해서, 기본 하이퍼매개변수로 시작하세요.

다음 단계는 미리 결정된 일부 단계에 대해 훈련한 다음 알고리즘이 얼마나 잘 수행되는지 직접 확인한 다음 가장 잘 수행되는 새로운 매개변수로 다시 시작하는 것입니다. 여기서는 다양한 훈련 시간에 대한 보상을 표시합니다.

Python을 사용하여 AI가 Snake 게임을 하도록 훈련시키는 방법

충분한 단계를 거친 후 뱀 훈련 알고리즘이 특정 보상 값에 수렴하면 훈련을 완료하거나 매개변수를 미세 조정하고 훈련을 계속할 수 있습니다.

가능한 최대 보상에 도달하는 데 필요한 훈련 단계는 문제, 보상 체계 및 하이퍼파라미터에 따라 크게 달라지므로 알고리즘을 훈련하기 전에 최적화하는 것이 좋습니다. 뱀 게임을 하기 위해 AI를 훈련시키는 예의 끝에서 우리는 AI가 미로에서 음식을 찾고 꼬리와의 충돌을 피할 수 있다는 것을 발견했습니다.

위 내용은 Python을 사용하여 AI가 Snake 게임을 하도록 훈련시키는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 网易伏羲에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
파이썬 : 편집과 해석에 대한 깊은 다이빙파이썬 : 편집과 해석에 대한 깊은 다이빙May 12, 2025 am 12:14 AM

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Python은 해석 된 또는 편집 된 언어입니까? 왜 중요한가?Python은 해석 된 또는 편집 된 언어입니까? 왜 중요한가?May 12, 2025 am 12:09 AM

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

루프 대 파이썬의 루프 : 주요 차이점 설명루프 대 파이썬의 루프 : 주요 차이점 설명May 12, 2025 am 12:08 AM

forloopsareideal when

루프를위한 것 및 기간 : 실용 가이드루프를위한 것 및 기간 : 실용 가이드May 12, 2025 am 12:07 AM

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

파이썬 : 진정으로 해석 되었습니까? 신화를 파악합니다파이썬 : 진정으로 해석 되었습니까? 신화를 파악합니다May 12, 2025 am 12:05 AM

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

동일한 요소를 가진 Python Concatenate 목록동일한 요소를 가진 Python Concatenate 목록May 11, 2025 am 12:08 AM

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

해석 대 컴파일 언어 : Python 's Place해석 대 컴파일 언어 : Python 's PlaceMay 11, 2025 am 12:07 AM

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

루프를 위해 및 while 루프 : 파이썬에서 언제 각각을 사용합니까?루프를 위해 및 while 루프 : 파이썬에서 언제 각각을 사용합니까?May 11, 2025 am 12:05 AM

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

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

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

맨티스BT

맨티스BT

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