강화 학습을 사용하여 훈련되고 TensorFlow Lite로 배포된 에이전트와 보드 게임을 하세요.
시작하다
TensorFlow Lite를 처음 사용하고 Android로 작업하는 경우 시작하는 데 도움이 될 수 있는 다음 예제 애플리케이션을 탐색하는 것이 좋습니다.
Android 이외의 플랫폼을 사용 중이거나 이미 TensorFlow Lite API 에 익숙하다면 훈련된 모델을 다운로드할 수 있습니다.
작동 원리
모델은 게임 에이전트가 '플레인 스트라이크'라는 작은 보드 게임을 할 수 있도록 제작되었습니다. 이 게임과 규칙에 대한 간략한 소개는 이 README 를 참조하십시오.
앱의 UI 아래에 인간 플레이어와 대결하는 에이전트를 만들었습니다. 에이전트는 보드 상태를 입력으로 사용하고 64개의 가능한 보드 셀 각각에 대한 예측 점수를 출력하는 3계층 MLP입니다. 모델은 정책 기울기(REINFORCE)를 사용하여 학습되며 여기 에서 학습 코드를 찾을 수 있습니다. 에이전트를 교육한 후 모델을 TFLite로 변환하고 Android 앱에 배포합니다.
Android 앱에서 실제 게임을 플레이하는 동안 에이전트가 조치를 취할 차례가 되면 에이전트는 인간 플레이어의 보드 상태(하단 보드)를 확인합니다. 여기에는 이전의 성공 및 실패한 공격(적중 및 실패)에 대한 정보가 포함됩니다. , 그리고 훈련된 모델을 사용하여 다음에 공격할 위치를 예측하여 인간 플레이어보다 먼저 게임을 완료할 수 있습니다.
성능 벤치마크
성능 벤치마크 수치는 여기 에 설명된 도구로 생성됩니다.
모델명 | 모델 사이즈 | 장치 | CPU |
---|---|---|---|
정책 기울기 | 84KB | 픽셀 3(안드로이드 10) | 0.01ms* |
픽셀 4(안드로이드 10) | 0.01ms* |
* 1개의 스레드가 사용되었습니다.
입력
이 모델은 (1, 8, 8)의 3차원 float32
텐서를 보드 상태로 받아들입니다.
출력
이 모델은 64개의 가능한 스트라이크 위치 각각에 대한 예측 점수로 모양(1,64)의 2차원 float32
텐서를 반환합니다.
나만의 모델 훈련
훈련 코드 에서 BOARD_SIZE
매개변수를 변경하여 더 크거나 작은 보드에 대해 자신의 모델을 훈련할 수 있습니다.