[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] Weights are very important
At 20:06 12-1-2004 +0100, Nicol N. Schraudolph wrote:
>On Mon, 12 Jan 2004, Vincent Diepeveen wrote:
>
>> Yet a NN when trained will pick some random value from between -36000 and
>> +36000 and start tuning with that.
>>
>> As a human we know very well that it should be something between 1 and 40.
>
>If you know a priori that the value should be between 1 and 40, why
>on earth would you not initialize your neural net within that range
>and let learning refine it from there? When I seek optima in a design
For a very simple reason. If you believe that NN's work, it should figure
that out itself of course. If you don't believe in it, you don't use them
at all.
If you believe in it, giving it the accurate range, without the chance to
also put a parameter at 0, then you are later fooling yourself when you
claim it works.
If there is 1 person on the planet encouraging to use knowledge
considerations in the tuning, especially for non tuning tries (so tries
actually trying to form patterns themselves), it will be me however.
That's because i'm convinced that it's impossible to let a NN find its own
way and tune patterns without knowledge.
If your only knowledge is that you lose games, then i do not see how to
independantly tune 1 parameter.
We will soon agree that tuning independantly, if it would be possible, will
be needing O(n log n) sets of games against opponents to proof something
works or not works.
Several researchers amazingly claim that it is possible to tune sets of
parameters (usually it appears they do that by randomly changing a number
of parameters) at the same time.
It is trivial so far none of these researchers could proof their claim.
It is trivial for players that knowledge is not independant.
If you can't find optimal settings by taking 1 iteration changing many
parameters, but need to try all kind of combinations in order to guess more
or less in what *range* a parameter is, you soon will find out that there
is an exponential relationship in tuning n parameters.
Some researchers deny this relationship, in which case you'll be forced to
not limit the domain of parameters, nor use a superior hand tuned set. This
in order to proof the complexity of the learning process versus a hand
picked tuning set.
However there are practical limits also. With huge number of patterns,
playing a series of matches of n log n games will be already too much.
>From 10 games you learn nothing.
To proof a certain forward pruning to be working or not working, i played,
mentionning the great Jan Louwman for the testing, i needed quite some games.
Around 1000 games. 500 games with and 500 games without the forward pruning.
Only at such number of games it is *easy* to conclude something
algorithmically to be proven or disproven.
With just sets of 10 games i have had with the 100% same version against
the same program deviations from scoring 20% to 95%.
Sometimes you're lucky sometimes you aren't. So a huge number of games is
needed.
Of course you need to play that at tournament level, which is 40 moves in 2
hours then 20 moves in 1. Usually computerchessgames take 40-100 moves, way
more than human chess (on average <= 40). Of course very little moves for
go. In short this means on average games lasted 6 hours.
Because of commercial reasons, the auto232 protocol gives a lot of
disturbance. Each so many games, the experiment had to be restarted.
Slower computers were given way more time. Some computers played levels of
6 hours a game, because they were way slower than other cpu's, so 12 hours
a game at some machines.
The experiment without Jan Louwman could not have happened. He had 30
computers which were used for this experiment. I just have 2.
So for a single experiment which took in total 3 months, i was so lucky to
have 30 computers to do the experiment.
The biggest reason why so many games were played to convince me the pruning
didn't work, was because at quick levels (5 minutes whole game) the pruning
*did* work and resulted in better play. This experiment however clearly
showed it didn't work for slower level games and pointed at the positional
risk you run when you compare forward pruned leaves with each other.
My chessprogram other than nullmove (which by the way in GO is way more
powerful than in chess) is not using a single form of forward pruning.
Because double nullmove which i use proofs nullmove a correct form of
search, i do actually not count nullmove to the dubious forms of search.
With forward pruning you do run that risk however.
Now forward pruning versus not forward pruning is still a huge rude
difference when you compare that to an experiment where you want to fine
tune parameters and actually *proof* that they are better tuned.
Now imagine you need with 10000 parameters about n log n of these
experiments of 3 months ==> 90000 months.
Happy tuning.
>space with prior knowledge, it's a very interactive process of mutual
>education between myself and a learning machine: I set initial conditions
>to where I think a good solution might lie, then let the optimizer tell
>me what it makes of my choice. This repeats until I'm satisfied with
>the quantity and quality of optima found. Now, are these hand-tuned
>or machine-tuned?
>Anyone who expects a present-day machine learning approach to produce
>expert-level go play from a blank slate is bound to fail. How well would
>you play go if you were raised by wolves? Machine learning, like extra
>plies of search, is a tool for distilling a lot of computing power into
>a bit of additional knowledge, best used when you have gone as far as
>you can hand-coding your prior knowledge. Nothing more, nothing less.
>The main practical problem today is that the statistical framework of most
>machine learning and the procedural framework of most go programs are not
>a good match; hence the importance of work that tries to bridge this gap
>one way or the other.
>
>Best,
>
>- nic
>
>--
> Dr. Nicol N. Schraudolph http://n.schraudolph.org/
> Steinwiesstr. 32 mobile: +41-76-585-3877
> CH-8032 Zurich, Switzerland tel: -1-251-3661
>
>_______________________________________________
>computer-go mailing list
>computer-go@xxxxxxxxxxxxxxxxx
>http://computer-go.org/mailman/listinfo/computer-go
>
>
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://computer-go.org/mailman/listinfo/computer-go