강화 학습

강화 학습을 사용하여 훈련되고 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 매개변수를 변경하여 더 크거나 작은 보드에 대해 자신의 모델을 훈련할 수 있습니다.