컴퓨터와 오세로 대결 16~유전 알고리즘, 고찰~

저번

이번 목표


저번 유전 알고리즘에 대해 고찰하고 싶습니다.
기사를 쌓지 않고 바로 답사에 들어가는 것은 기계를 활용해 공부할 때의 반성이다.
또 이번 보도에서는 새로운 실험 없이 데이터 분석과 고찰에만 집중하고 개선 방안을 열거하는 것으로 끝났다.

여기서부터 본편.


파이톤으로 각자 생각한 결과의 데이터를 수집했다.
다음은 세대별 승리 횟수의 평균과 분산.
데이터 수는 위에서부터 순서대로 100, 1000, 100이다.
※ glob을 사용했기 때문에 저번와는 다른 순서로 데이터를 계산합니다.
또 세대당 경기 횟수가 30회인 만큼 어떤 방법이든 골고루 이긴다는 것을 알 수 있다.
data_1hand_1hand.csv : 
mean: 19.07
var:  12.914242424242424

data_1hand_rand.csv : 
mean: 20.953
var:  6.87967067067067

data_2hand_rand.csv : 
mean: 20.4
var:  9.474747474747474

run_1hand_rand와rund-2hand_rand




위의 도표저번도 게재되었는데, 각각run이다1hand_rand와rund-2hand_rand의 세대수와 승리 횟수입니다.
어느 공부든 진전이 거의 없고 승률이 높아지지 않았다.
머신러닝 때와 달리 상대가 랜덤으로 전화했을 때 대처법을 확립하지 못했기 때문에 공부에 진전이 없을 것 같다.
유일하게 신경 쓰이는 것은 평균적으로 이기는 것이다.평가치가 무작위로 결정되기 때문에 컴퓨터도 처음에는 무작위로 놓는 것과 다를 것이 없다.그럼에도 불구하고 승리한 이유는 다음과 같다.
  • 조금 배웠어요
  • 우연
  • '조금 배웠다'는 것에 관해서는 도무지 알 수가 없었지만 그 가능성을 고려했다.게이머 캐릭터의 사고방식은 고정적이고, 컴퓨터의 사고방식은 변동적이라는 이유에서다.
    그러니까 런.1hand_rand에 대해 몇 세대의 평균 승률로 도표(graphi.py)를 다시 만들었다.2hand는 데이터 수가 적어 정확한 경향을 파악하지 못했다.
    결과는 다음과 같다.
    도표 제목에 적힌 숫자는 평균적으로 사용되는 데이터 수이다. 예를 들어 맨 위의 도표는 10대당 평균 승리수이다.




    이 견해는 그다지 정확하지 않은 것 같다.
    '우연'에 관해서는 사실 이번 모든 프로그램에서 srand의 매개 변수는 0으로 고정되어 있다.
    이 0의 숫자는 우연히 컴퓨터 방면에 유리하게 일하기 쉬운 설정이 아닌가?라고 볼 수 있다.
    이것에 관해서 나는 다른 보도로 검증하고 싶다.

    run_1hand_1hand



    위의 도표저번도 실렸다.
    다른 두 개와 달리 이것에 관해서는 비교적 순조롭다.
    랜덤으로 싸울 때와 반대로 1핸드 대책이 추진됐다는 이유라고 볼 수 있다.
    언뜻 보기에 학습 후의 평가치는 전혀 배운 적이 없는 것 같지만, 실제로는 1hand에 대항하는 가장 좋은 해답은 그 값과 비슷할 것이다.
    초반 승률은 다른 수법보다 낮았지만, 플레이어 캐릭터가 랜덤으로 일반 1hand로 변했기 때문이라고 생각한다.

    원래 설계된 알고리즘이 정확합니까?


    가장 큰 의문은 바로 이것이다.
    진화 방법에 관해서는 일반적인 교차가 아니라 무작위 계승 방법을 고려했다.그러나 이것이 정말 가장 적합한 해결 방안인지 의문이다.이유는 단지 다른 사람들이 이 진화 방법을 채택하지 않았기 때문이다.
    그 외에 몇 가지 개선점과 의문점이 있다.
  • 컴퓨터와 게이머는'몇 걸음 읽은 값'
  • 을 바꿀 수 없음
  • (본질은 아니지만) "static cast"의 횟수가 많아 잘 보이지 않는다
  • 돌연변이의 확률이 정확합니까?
  • 총결산


    다음에 검증해야 할 일은 다음과 같다.
  • srand의 매개 변수를 바꾸면서 실험
  • 진화 방법을 바꾸면서 실험
  • 사고방식은 각자 몇 걸음까지 읽습니까?동시 실험
  • 갑작스런 변이의 확률을 바꾸면서 실험
  • 전체 버전


    consieration 폴더에 있습니다.

    실제로 해봤어요.


    없다

    다음


    기계 학습에 대한 고찰에서 제시한 개선 방안은 퇴적편이 끝난 후에 실천을 시작하고 싶습니다.
    다음 번 이후에 총괄적으로 드러난 실험을 진행할 것이다.
    다음번

    좋은 웹페이지 즐겨찾기