Open Bartleby2718 opened 5 years ago
위 내용을 만드는 동안 4천 판 훈련했길래 다시 그래프를 그려 봄
RL: Deep Q-Learning with experience replay (epsilon: 0, discount rate: 0.95)
NN settings | value |
---|---|
optimizer | Adam |
loss function | MSE |
activation layer | ReLU |
settings | RL agent | opponent |
---|---|---|
joker_value_strategy | NextBiggest | Thirteen |
joker_position_strategy | JokerAnywhere | JokerAnywhere |
offense_deck_index_strategy | (learned) | BiggestOffenseDeck |
defense_deck_index_strategy | (learned) | SmallestDefenseDeck |
시간과 듀얼 수의 관계는 비슷한 것 같은데 아니라고 해도 별 관심은 없음ㅇㅇ...
승률이 지속적으로 증가하는 게 아니라 45%에 수렴함. (abort된 경우 제외)
승리 원인에 따라 쪼개서 보면
offense_deck_index_strategy
랑 defense_deck_index_strategy
을 Finished로 이기기 좋게 설정해 놔서...색깔에 따라서 쪼개서 보면 이길 때는 색깔의 영향을 받지 않지만 질 때는 색깔의 영향을 받음. 즉 상대방 알고리즘이 red일 때 좋은 알고리즘인 듯.
loss 값은 아직 큼
joker_value_strategy를 Thirteen으로 바꾸고 약 4000 게임을 해 봤다.
RL: Deep Q-Learning with experience replay {epsilon: 0, discount rate: 0.95} NN: {optimizer: Adam, loss function: MSE, activation layer: ReLU}
settings | RL agent | opponent |
---|---|---|
joker_value_strategy | Thirteen | Thirteen |
joker_position_strategy | JokerAnywhere | JokerAnywhere |
offense_deck_index_strategy | (learned) | BiggestOffenseDeck |
defense_deck_index_strategy | (learned) | SmallestDefenseDeck |
일단 긍정적인 게 loss 값이 많이 줄었음
또 긍정적인 게 invalid choice로 게임이 중단된 경우를 제외하면 승률이 절반을 넘었음
Finished(duel 3승)에 패하는 경우가 7%P 줄고, done(1~13까지 전부 공개)으로 이기는 비율이 6%P 늚. 안 나오는 숫자를 선택하는 것과, 패배 확률이 높은 듀얼에서 die하는 걸 학습한 듯. 언제 die할지 배우라고 상대방의 공격/수비 덱 선택 전략을 저걸로 정한 건데
선공인지 후공인지는 승률과 별 차이가 없다.
참고로 이어서 학습하는 게 아니라 계속 새로 하고 있음
RL: Deep Q-Learning with experience replay {epsilon: 0, discount rate: 0.95} NN: {optimizer: Adam, loss function: MSE, activation layer: ReLU}
Player settings | RL agent | opponent |
---|---|---|
joker_value_strategy | Thirteen | Thirteen |
joker_position_strategy | JokerAnywhere | JokerAnywhere |
offense_deck_index_strategy | (learned) | BiggestOffenseDeck |
defense_deck_index_strategy | (learned) | SmallestDefenseDeck |
loss 값은 이번에도 수렴했으나
도중 중단된 게임 제외한 승률 35%... 상대 알고리즘이 좋아서 그런지 학습하는데 시간이 더 필요할 것 같다.
거의 절반 정도를 듀얼 3승에 진다. 알고리즘을 잘 짜긴 한 듯...
학습이 되긴 하고 있는 건가 의심이 들어서 간단히 300번만 연습시켜 봄
RL: Deep Q-Learning with experience replay {epsilon: 0, discount rate: 0.95} NN: {optimizer: Adam, loss function: MSE, activation layer: ReLU}
Q: 한 판이 얼마나 오래 걸리는가? A: 변동이 아주 심함. 아래 그래프는 몇 번째 듀얼에서 게임이 끝났는지인데, 보면 소요 시간 그래프와 유사함
Q: 그럼 주로 몇 번째 듀얼에서 끝나는가? A: invalid choice로 인해 abort됐는지 게임이 정상적으로 끝났는지에 따라 다르지만 분포는 이러함 7, 8번째 듀얼에서 끝나는 경우가 절반 이상이고, 마지막 듀얼까지 가는 경우는 극히 드묾.
Q: 승률은 어떤가? A: 시간이 지날수록 invalid choice를 내리는 경우는 줄지만 승률이 올라가는 속도는 더디다. 비교적 멍청한 알고리즘을 상대로 했다고 생각했는데, 배울 건 많은 데 비해 훈련 시간이 너무 짧았던 것 같다.
더불어서 loss가 너무 크다는 문제가 있음