Newsgroups: comp.ai.neural-nets
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!news.kei.com!newsfeed.internetmci.com!EU.net!peer-news.britain.eu.net!newsfeed.ed.ac.uk!dcs.ed.ac.uk!cnews
From: Ian Clarke <iic@dcs.ed.ac.uk>
Subject: Can a neural net play nintendo?
X-Nntp-Posting-Host: ewe.dcs.ed.ac.uk
Content-Type: text/plain; charset=us-ascii
Message-ID: <30C07D8F.72D7@dcs.ed.ac.uk>
Sender: cnews@dcs.ed.ac.uk (UseNet News Admin)
Content-Transfer-Encoding: 7bit
Organization: Department of Computer Science, Edinburgh University
Mime-Version: 1.0
Date: Sat, 2 Dec 1995 16:23:43 GMT
X-Mailer: Mozilla 2.0b1J (X11; I; SunOS 5.4 sun4c)
Lines: 83

Several days ago one of my flatmates introduced a Super-Nintendo to our
television, and the priorities of our flat changed overnight, our
resident mathematician sacraficed his M.A. Hons degree for a life of
playing "Orchid" in Killer Instinct, our geologist became Hawk - the
bird man who races cars on various planets, and the philosopher (who is
responsible for this evil device) has gained new-found status due to the
fact he can thrash us all in almost every game.  Only I, the Computer
Scientist (and Cyberneticist) was immune to the machine, for now...
While observing Adam playing a beat-em'-up game I began to consider the
difficulty involved in training a neural network how to play such games,
and have since come to the conclusion that it would be possible to
create a system which given a digitized image of the screen and access
to the control pad, could learn to play most games of the Street-fighter
variety without reconfiguration.  This is how I propose to do it:

[If the following diagram looks messed up first try setting your tab
stop to 9, if this does not work, cut and paste it into a text editor
which uses monospace fonts]

Description of Beat 'em up player.


INPUT>>	    Video Image		Sound (Frequency Map)
		|	\		  |		
		V	 \		  |
	     Initial	  \		  V
	      Image	    ->	Success/Failure Meter
	    Processor			  |
		|			  |
		V			  |
  30 X 8 Pixel Activity Bitmap(P.A.B)		  |
		|	,----Training----/		  |
		V	V	  
     Reflex Action Neural Net <-
		|		|
	        V		|
	    Movements-----------
		|
		V
Output>>   Control Pad

Description of components

Initial Image Processor:
This takes the realtime screen image and brakes it down into a 30 X 8
grid (less sensitivity to vertical movement is required), each rectangle
in this grid is set to a value representing the 'activity' in that
rectangle on the video image (there are several options available in
computing this).

Success/Failure Meter:
This estimates when a success (hurting the opponent) or failure (getting
hurt) occours, it can glean this information from the image and/or
audio.

Reflex Action Neural Net:
This is a neural net which takes input from both the P.A.B and the
previous movements.  It's output is the movement which should be
performed at this moment in time.  If the movement results in a success
then that movement is trained or reinforced (using the Backward Error
Propogation algorithm), if it results in failure then the movement is
'untrained' or discouraged (by using the Backward Error Propogation
algorithm with a negative learning rate).

End of description.

I hope that this idea may stimulate your imagination as it has done
mine, just imagine watching the system learn, and eventually be able to
beat seasoned players after learning in much the same way as they did!
All suggestions, comments, and constructive cricicisms of the [very]
general outline given above would be more than welcome.

[OK, so mabye this whole idea is just to demonstrate that computers can
learn to play beat 'em ups, thus demonstrating that they do not require
intelligence :-) ]

Sorry for poor spelling, it deteoriates rapidly when I am writing about
something exciting (and I have no easy access to a spell-checker)

-- 
|IAN CLARKE        |"Then on the shore / of the wide world I stand|
|                  |alone, and think till love and fame to        |
|I.Clarke@ed.ac.uk |nothingness do sink" - John Keats             |
