Skip to content

AIKU-Official/aiku-24-2-omok

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

오목의 달인 ⚫👩‍🦲⚫⚫⚫

📢 2024년 2학기 AIKU 활동으로 진행한 프로젝트입니다

소개

복잡한 규칙과 방대한 경우의 수를 가진 게임에 있어 AI가 고성능 하드웨어와 오랜 시간을 필요로 한다는 한계점을 개선하기 위해 진행된 프로젝트입니다.

[알파제로(AlphaZero)의 강화학습 기법을 활용한 오목 AI ]

  • 기보 데이터와 self-play를 결합한 효율적인 학습 진행
  • MCTS 병렬화 기법을 도입해 탐색 속도 개선
  • 렌주룰을 적용해 실제 오목 대국과 비슷한 환경 구현
  • 콘솔을 통해 ai와 실제 플레이 가능

방법론

  1. 알파고, 알파제로 참고

    • 알파고: MCTS 기반으로 작동합니다. Policy Network로 탐색 범위를 줄이고, Value Network로 가치를 평가하여 효율적으로 경우의 수를 탐색

    • 알파제로: Policy Network과 Value Network을 하나의 네트워크로 통합

  2. 게임 규칙과 코드 구현

    • 참고한 프로젝트의 경우 connect4로 구현되어 있어 오목 룰을 구현을 새로 구현
    • 기존 코드가 구버전 텐서플로우로 되어 있어 이를 torch로 포팅
  3. 병렬화(Parallelization)

    • MCTS의 탐색 횟수가 기하급수적으로 증가하는 문제를 해결하기 위해 스레드를 활용해 병렬 탐색 진행
  4. 데이터 준비 및 학습

    • 약 10만 개의 오목 대회 기보를 여러 조건에 따라 필터링하여 학습 데이터로 사용
    • 이 데이터를 통해 초기 모델을 학습시킨 후, self-play를 통해 추가적인 학습을 진행

환경 설정

pip install -r requirements.txt

사용 방법

  1. 학습
python3 main1_fromdata.py
  1. 오목 게임 플레이
python3 tmp_userplay.py

예시 결과

(영상으로 대체)

팀원

  • 문승기: 문제정의, 데이터셋 수집, 코드 작성
  • 윤혜원: 코드 작성, 데모 개발
  • 임주원: 코드 작성, 데모 개발
  • 문정민: 코드 작성, 데이터 전처리
  • 신동현: 코드 작성, 데이터 전처리

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •