Hi Bruno,

> With AlphaGo, it is curious that the heuristic half of the system is
> also the one that becomes a black box.
>
>
> When you have the time, you might elaborate on this.

AlphaGo combines search trees and neural networks.

The old-school approach to solving turn-based games such as checkers,
chess, etc is by using the minimax search tree algorithm. The idea of
minimax is simple: suppose you start with a give board state and it's
your turn. You consider all of your possible moves, then all possible
opponent moves from each move and so on, alternating between players.
The goals is to maximize your expected outcome on each of your moves,
while minimizing your expected outcome for every opponent move (thus
the name). Intuitively, it tries to find the strongest possible play
assuming the strongest possible opposition.

The problem, of course, is combinatorial explosion. A first approach
is alpha-beta prunning. When exploring a branch, once it finds that it
already knows a play that is guaranteed to be better than the one
being explored it stops (prunes)  that branch.

Then this can be further improved with heuristics. For example, one
can have an heuristic function for chess that assigns a utility value
to a board configuration, based on the pieces remaining on each side
and their positions. By exploring the most promising branches first,
more branches can be pruned earlier.

Then it can be made even more aggressive by using the heuristic
speculatively, cutting branches even if it's not certain (but just
likely) that they will be weaker. One strategy for chess is to go as
deeps as time allows, and fallback to heuristic pruning once there is
no more time. The more powerful the computer and the more clever the
implementation the deeper you can go, and this is how Deep Blue
eventually defeated a grandmaster (plus a dictionary of openings and
endings from human masters playing the game, chess textbooks, etc).

AlphaGo replaces the heuristic function with neural networks: the
protocol network and the value network. The value network learns to
assign a value to board configuration.

It also uses a stochastic version of minimax, using a Monte Carlo
technique. Instead of following all branches, or following them by
some heuristically-determined order, it samples them. The sampling is
guided by a probability assigned to each future state. The protocol
network learns to assign these probabilities.

In the first version of AlphaGo, the protocol network was first
trained to replicate the actions of human masters. Then, it was
further improved by playing against itself. The first stage is
supervised learning, the second is reinforcement learning (more
similar dopamine-based learning, if you will). The new version was
able to do it purely by reinforcement learning, with no reference to
human-generated examples. It became a master by exploring the game
from scratch.

The neural networks used are convolutional networks, usually applied
to image recognition. Instead of taking a large number of inputs (the
entire board), they scan it. A smaller square starts on the top-left
feeding the input of the network, and then it iteratively roams the
board.

It's a very clever, hybrid combination of AI techniques, combining the
strength of old-fashioned symbolic methods with more recent
statistical learning.

What I meant is that the search-tree part is purely logic and
deterministic, while the neural networks learn to have the right
intuition about which board configurations look promising. The
search-tree is easy to understand, while the neural network becomes a
complex black-box. So the programmers of AlphaGo can inspect its data
structures and explain what it hopes to achieve with a given move, but
they are not capable of explaining you why the program bet on
exploring certain ideas and not others.

I find this is akin to the bicameral model of the brain, which I know
you like. Here the corpus callosum is simply the piece of code that
plugs the output of the neural networks to the Monte Carlo search
algo.

It seems obvious from the above description that this cannot easily be
extrapolated to creating computer programs (or performing
self-modification), but it is also clear that this hybrid approach
looks promising. I like it very much. There is a big fight in AI
between its "tribes" (symbolic, connectionist / statistical,
evolutionary). I think that wonderful things will be built by
combining all of these ideas, and using their respective strengths
where appropriate.

Best,
Telmo.

-- 
You received this message because you are subscribed to the Google Groups 
"Everything List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/everything-list.
For more options, visit https://groups.google.com/d/optout.

Reply via email to