<HTML
><HEAD
><TITLE
>Neural Network Learning Rules For OpenAI</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.74b"><LINK
REL="NEXT"
TITLE="Learning Rules"
HREF="rules.html"></HEAD
><BODY
CLASS="article"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
><A
NAME="AEN2"
>Neural Network Learning Rules For OpenAI</A
></H1
><H3
CLASS="author"
><A
NAME="AEN4"
>Glyn Matthews</A
></H3
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
><A
HREF="index.html#arch"
>Architectures</A
></DT
><DT
><A
HREF="rules.html"
>Learning Rules</A
></DT
><DT
><A
HREF="conc.html"
>Conclusion</A
></DT
><DT
><A
HREF="biblio.html"
>Bibliography</A
></DT
></DL
></DIV
><P
>Outlined in this document are some neural network learning
    algorithms intended for the <A
HREF="http://openai.sf.net"
TARGET="_top"
><I
CLASS="citetitle"
>OpenAI</I
></A
>
    project.  The intention of this report is to provided a basis for
    developing implementations of the artificial neural
    network (henceforth ANN) framework.  It is not the purpose to
    provide a tutorial for neural networks, nor is it an exhaustive
    discussion of learning rules.  The examples in the report are,
    according to much of the literature, the most widely used learning
    rules and this is the reason for presenting them.  A final
    implementation may include only some of these or may include
    others that aren't discussed here.  Of course, there are a wide
    variety of supervised and unsupervised learning algorithms to
    choose from (a list of some of these can be found at the <A
HREF="ftp://ftp.sas.org/pub/neural/FAQ.html#A_kinds"
TARGET="_top"
>comp.ai.neural-nets
    FAQ</A
>).</P
><P
>Therefore the primary focus of this report is to describe
    algorithms for ANNs which perform particularly strongly for
    processing the following commonly used applications:
    <P
></P
><OL
TYPE="1"
><LI
><P
>Function approximation;</P
></LI
><LI
><P
>Time series processing;</P
></LI
><LI
><P
>Classification;</P
></LI
><LI
><P
>Pattern recognition;</P
></LI
></OL
>
    These are suggested because they are well established tasks for
    which ANNs are used extensively.</P
><P
>The methods described here require the definition of new
    learning rules by inheriting the
    <FONT
COLOR="RED"
><TT
CLASS="classname"
>LearningRule</TT
></FONT
> as the base
    class and for networks that aren't feedforward MLPs, new
    architecures that inherit the abstract
    <FONT
COLOR="RED"
><TT
CLASS="classname"
>Architecture</TT
></FONT
> class also
    need to be defined.</P
><P
>The public methods which need to be implemented are:
    <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><PRE
CLASS="programlisting"
>&#13;    LearningRule.correctLayer(Layer layer, DataElement dataElement);
    LearningRule.ready(Layer layer);
    Architecture.connectNetwork(Network network);
    Architecture.reconnectNetwork(Network network);
    Architecture.iterateNetwork(Network network);
    Architecture.createDefaultConnections(Network network);
    Architecture.connectAll(Vector fromNeurons, Vector toNeurons);
    Architecture.disconnectAllFrom(Vector neurons);
    Architecture.disconnectAllTo(Vector neurons);</PRE
></TD
></TR
></TABLE
>
</P
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="arch"
>Architectures</A
></H1
><P
>Any learning rule is intimately tied with the network
  topology or architecture, in such a way as to almost make the two
  inseperable.  A key difficulty would be to seperate the parameters
  and functions of a given architecture from that of a learning
  rule.</P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="AEN31"
>Feedforward Neural Networks</A
></H2
><P
>The multilayer perceptron architecture (fully connected
    feedforward with biases) is already implemented in the
    architecture package (FeedforwardArchitecture.java).  However
    there is no scope to include techniques such as pruning, which
    require networks that are not fully connected.  This would mean
    including methods which add or remove single connections.</P
><P
>Additionally, a feedforward architecture would also need
    to include a function to add or remove nodes.  As will be
    explained later, some learning rules (such as cascade correlation)
    require the addition or subtraction of nodes.
    <DIV
CLASS="figure"
><A
NAME="AEN35"
></A
><P
><B
>Figure 1. Fully Connected Feedforward Multilayer Perceptron With
    Biases</B
></P
><P
><IMG
SRC="../images/mlp.jpg"></P
></DIV
>
    Feedforward networks have the advantage that they are very simple
    and often very quick.  Also, traditional numerical methods can be
    applied to feedforward network training as well as algorithms
    invented especially for neural networks, so there is a wide range
    of algorithms which can be used.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="recc"
>Recurrent Network Architectures</A
></H2
><P
>Recurrent networks have the same characteristics as the
    standard feedfoward, but with feedback connections.  Because of
    these feedback connections, cycles are present in the network.
    Therefore training is sometimes iterated for a long period of time
    before a response is produced.
    <DIV
CLASS="figure"
><A
NAME="AEN41"
></A
><P
><B
>Figure 2. Neural Network With Feedback
    Connection</B
></P
><P
><IMG
SRC="../images/recur.jpg"></P
></DIV
>
    Recurrent networks tend to be more difficult to train than
    feedforward networks, as a result of the cycles, though there is
    still a fair number of algorithms which are frequently used,
    including Jordan, Elman or time delay networks.  Some problems are
    particularly suited to the use of recurrent networks in favour of
    feedforward networks, such as time series prediction.</P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="som"
>Self Organising Maps (SOM)</A
></H2
><P
>A Self Organising Map neural network defines a mapping from
    input signal of arbitrary dimension to a one or two dimensional
    array of nodes.  This array of nodes defines corresponds to a
    discrete map.  Figure 3 shows a one dimensional SOM
    structure.  Figure 4 displays an SOM in two
    dimensions.<DIV
CLASS="figure"
><A
NAME="AEN47"
></A
><P
><B
>Figure 3. One Dimensional Self Organising
    Map</B
></P
><P
><IMG
SRC="../images/onedsom.jpg"></P
></DIV
>As
    can be seen from figure 1, the SOM is essentially a two layer
    neural network with full connections, only now with connections
    between neurons in the output layer.  Methods for learning in
    such an architecture are to be discussed in the following section.</P
><P
><DIV
CLASS="figure"
><A
NAME="AEN51"
></A
><P
><B
>Figure 4. Two Dimensional Self Organising
    Map</B
></P
><P
><IMG
SRC="../images/twodsom.jpg"></P
></DIV
></P
><P
>SOMs represent a different topology because of the
    connections between neurons in the output layer.  Connections don't
    exist in this way for other network types.  Although recurrent
    networks may have connections between neurons in the same layer,
    they are ...</P
><P
>The biological basis of SOMs is that sensory inputs, such
    as motor, visual, auditory etc., are mapped onto corresponding
    areas of the cerebral cortex in an orderly fashion.  The neurons
    are close together and interact via short synapse
    connexions.</P
><P
>This gives rise to several key ideas for the Kohonen
    SOM:
    <P
></P
><UL
><LI
><P
><SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Competition:</I
></SPAN
> For each
      input pattern, the neurons in the network compete to see which
      one is the closest to the input.</P
></LI
><LI
><P
><SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Cooperation:</I
></SPAN
> The winning
      neuron determines a neighbourhood - a group of networks close
      by providing the basis for the neighbouring neurons to
      cooperate, that is to increase the weights
      together.</P
></LI
><LI
><P
><SPAN
CLASS="emphasis"
><I
CLASS="emphasis"
>Adaption:</I
></SPAN
> The excited
      neurons steadily adapt their values to be closer to that of
      the input pattern through adjustments to their
      weights</P
></LI
></UL
>These will be elaborated in the next
    section.</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="rules.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Learning Rules</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>