Wednesday, March 11, 2009

Version 1.13

The release of the 9x9 version was the occasion to reveal a couple of bugs. One of them was a major bug causing the program to crash or the player to become corrupted when deleting a gene composed of more than one neuron. This is the reason why the players evolved in the 19x19 version are made with 1 neuron genes. I was thinking it was for some obscure performance reason.

So here it is, version 1.13 with a few bugs fixed, should be far more stable especially concerning the 9x9 version :

(/edit : corrected link to 9x9 for windows)

GOIA for Windows, 19x19
GOIA for Windows, 9x9

GOIA for Linux, 19x19
GOIA for Linux, 9x9

6 comments:

  1. Thanks for this new version. I had noticed that the previous ones kept crashing intermittently.

    Also thanks for letting us participate in this interesting project. It would be great to have a GTP helper application that would allow us to play against these players.

    I had a question about the tournament scheduling: If there are 100 players and 200 games, how is it determined which players are matched together? Shouldn't winning against a stronger (older) player be worth more that winning against a weaker (younger) player? Or maybe any non-random pairings would bias the results too much.

    ReplyDelete
  2. The match is semi-random; players n°0-49 always play against player 50-99. Thats the simplest way I found to be assured that I never get stuck with impossible pairing after the first rounds.

    ReplyDelete
  3. Thanks again - looking forward to a version that doesn't crash :).

    I know this was mentioned on the mailing list, but I do think your approach would be very compatible with SANE. It's essentially a different way of rating the neurons and network architectures by keeping stats on them separately. It's quite well described here:
    http://www.cs.utexas.edu/users/nn/downloads/papers/richards.apin97.pdf

    It's beyond me, but I think it would be fairly straightforward to incorporate this into your system. It would be interesting to see if populations evolving using SANE started to outperform the ones running your existing algorithm (or not). You may have other priorities but I thought this technique was worth highlighting.

    Oliver

    ReplyDelete
  4. When you say you are looking forward to a stable version, do you mean that it still crashes with 1.13 or that you hope it will not anymore ?

    Also, about SANE, I have made some reading since it was mentionned on the mailing list. Although it is indeed very close to what I am trying to achieve on principle, it is also in many ways precisely what I wanted to avoid when I started working on this project. I strongly believe that successful evolution needs as many degrees of freedom as one can get, and that in turns means that I have chosen to have zero heuristic in my program. Contraryly to what is done in the SANE method, I don't have a predefined neural architecture (in SANE, it is three layer feedforward neural network). There are many drawback to this choice of course. One of the most important is the impossibility when dealing with the mess that constitutes my neural network, to change any single neuron with one from another network.

    I have tried to allow the ecosystem to find it's own way of crossing ameliorations through sexual reproduction though : sexual reproduction allow players to exchange entire groups of neurons, the so-called genes of my neural network. It takes some meta-evolution first to have efficient sexual reproduction, that's what I hope we will see happening in a few days/weeks/months.

    ReplyDelete
  5. I meant I hope 1.13 will run without crashing. I'll run it overnight and let you know.

    I thought SANE was intended to have flexible network architecture, but to rate architectures separately from neurons. I'll take another look at the paper.

    Separately, I was thinking about the amount of noise in the evaluation of the networks. I'm not convinced that the networks play enough games to allow small differences to show through. That might mean that you have an essentially random selection that's waiting for a big random breakthrough, rather than allowing the networks to improve gradually. Did you consider this point?

    Oliver

    ReplyDelete
  6. Concerning the noise, I am clearly relying on the supposed robustness of the natural selection process to overcome such situation. However, one should take into account into account he number of games and the size of the population considered. For any population, it takes many generations to get rid of one given phenotype through random selection (I have not made any calculation, but it will be far greater than the number of generations necessary for one individual to overcome the whole population if it is stronger that everyone else, which takes 7 generations). Therefore, I assume that on that timescale, even small improvement will be significant, but I admit it is only a guess.

    ReplyDelete