나는 그 위에 깊은 신경망을 훈련시킬 의도로 간단한 장난감 게임을 작성하고 있습니다. 게임 규칙은 대략 다음과 같습니다.
- 이 게임에는 6 각형 셀로 구성된 보드가 있습니다.
- 두 선수 모두 보드에 자유롭게 배치하도록 선택할 수있는 동일한 모음이 있습니다.
- 위치와 구성에 따라 다른 유형의 조각 보너스 포인트를 배치하거나 상대방의 포인트를 줄입니다.
- 더 많은 포인트를 가진 사람이 이깁니다.
추가 규칙 (턴, 조각 수 및 유형 등)이 있지만이 질문의 맥락에서 중요하지 않습니다. 나는 스스로 대항하여 반복적으로 배울 수있는 심층 신경망을 고안하고 싶다. 내 질문은 입력 및 출력 표현에 관한 것입니다. 특히:
- 조각의 패턴이 중요하기 때문에, 나는 약간의 컨볼 루션 레이어를 가지고 있다고 생각했습니다. 보드는 다양한 크기 일 수 있지만 원칙적으로 매우 작습니다 (내 테스트에서 6x10, 몇 개의 셀로 확장 됨). 말이 되나요? 어떤 종류의 풀링을 사용할 수 있습니까?
- 양쪽을 대표하는 방법? 에서 본 논문 이동에 대해, 저자는 두 개의 입력 행렬, 흰 돌 하나와 검은 돌 하나를 사용하십시오. 이 경우에도 작동 할 수 있습니까? 그러나 A, B, C 및 D와 같은 다른 유형의 조각이 있다는 것을 기억하십시오. 2x4 입력 행렬을 사용해야합니까? 그것은 매우 희박하고 효율성이 거의없는 것 같습니다. 나는 그것이 컨볼 루션 레이어가 작동하기에는 너무 드문 일이라고 두려워합니다.
- 출력은 보드 위치를 나타내는 매트릭스에 대한 확률 분포와 재생할 부분을 나타내는 별도의 확률 배열이 될 수 있다고 생각했습니다. 그러나 나는 또한 턴 을 통과 할 수있는 능력을 대표해야합니다 . 이것은 매우 중요합니다. 다른 확률 중에서 그 중요성을 희석시키지 않고 어떻게 할 수 있습니까?
- 그리고 가장 중요한 것은 , 움직임 만이기거나 움직임을 잃어 버리는 것입니까? 원하는 확률을 1로 설정했기 때문에이기는 동작을 시행하는 것은 쉽습니다. 그러나지는 경우 어떻게해야합니까? 이동 확률을 0으로 설정하고 다른 모든 확률을 같은 값으로 설정 하시겠습니까? 또한 최종 점수 차이에 의한 움직임을 강제하는 것이 합리적입니까? 비록 이것이 대략 확률 인 결과의 의미와 상충 될지라도 말입니다.
또한 Synaptic을 프레임 워크로 사용하려고 node.js에서 게임 엔진을 개발했지만 컨볼 루션 네트워크에서 작동 할 수 있는지 확실하지 않습니다 (로컬 지각 분야와 관련된 가중치를 수정하는 방법이 있는지 의심합니다). 노드와 호환되는 다른 라이브러리에 대한 조언이 있습니까?