{"title": "Cycles: A Simulation Tool for Studying Cyclic Neural Networks", "book": "Neural Information Processing Systems", "page_first": 290, "page_last": 296, "abstract": null, "full_text": "290 \n\nCYCLES:  A  Simulation Tool for  Studying \n\nCyclic Neural  Networks \n\nTexas Instruments Incorporated, Dallas,  TX  75265 \n\nMichael T.  Gately \n\nABSTRACT \n\nA computer program has been designed and implemented to allow a researcher \n\nto  analyze the oscillatory behavior of simulated neural networks with  cyclic  con(cid:173)\nnectivity.  The  computer  program,  implemented  on  the  Texas  Instruments  Ex(cid:173)\nplorer / Odyssey system, and the results of numerous experiments are discussed. \n\nThe program, CYCLES, allows a user to construct, operate, and inspect neural \n\nnetworks containing cyclic connection paths with  the aid of a  powerful graphics(cid:173)\nbased interface.  Numerous cycles have been studied, including cycles with one or \nmore activation points, non-interruptible cycles, cycles with variable path lengths, \nand interacting cycles.  The final  class,  interacting cycles,  is  important due to its \nability to implement time-dependent goal processing in neural networks. \n\nINTRODUCTION \n\nNeural  networks  are  capable  of  many  types  of  computation.  However,  the \nmajority  of  researchers  are  currently  limiting  their  studies  to  various  forms  of \nmapping systems;  such as  content addressable memories, expert  system engines, \nand  artificial  retinas.  Typically,  these  systems  have one layer of fully  connected \nneurons or several layers of neurons with limited (forward direction only)  connec(cid:173)\ntivity.  I have defined a  new  neural network topology; a  two-dimensional lattice of \nneurons connected in such a  way that circular paths are possible. \n\nThe  neural  networks  defined  can  be  viewed  as  a  grid  of neurons  with  one \nedge containing input  neurons and  the opposite edge  containing output neurons \n[Figure  1].  Within  the  grid,  any  neuron  can  be  connected  to  any  other.  Thus \nfrom  one  point  of view,  this  is  a  multi-layered  system  with  full  connectivity.  I \nview  the weights of the connections as being the long term memory (LTM) of the \nsystem  and  the  propagation of information through  the grid  as  being  it's  short \nterm memory (STM). \n\nThe  topology  of  connectivity  between  neurons  can  take  on  any  number  of \npatterns.  Using  the  mammalian brain as  a  guide,  I  have  limit~d the amount  of \nconnectivity  to  something  much  less  then  total.  In  addition to  making  analysis \nof such systems less  complex, limiting the connectivity to some small percentage \nof the total number of neurons reduces the amount of memory used in  computer \nsimulations.  In general, the  connectivity can be purely random, or  can  form any \nof a  number of patterns that are repeated across the grid of neurons. \n\nThe  program CYCLES  allows  the  user  to  quickly  describe  the  shape  of the \nneural network grid, the source of input data, the destination of the output data, \nthe pattern of connectivity.  Once constructed, the network can be  \"run.\"  during \nwhich time the STM  may be viewed graphically. \n\n\u00a9 American Institute of Physics 1988 \n\n\finput column \n\noutput column \n\n~ \n\n~ \n\n-000000 00 000 - -\n-00000000000 - -\n-00000000000 - -\n~OOOOOOOOOOo--\n\n~OOOOOOOOOOo--\n\n~OOOOOOOOOOo--\n\n~O \n\n~OOOOOOOOOOo--\no  0  0  000--\n~O 000  \n00000 - -\n~O \n00000 - -\n0  000  0--\no  0  000  0--\n-0 00   o  0  0  0  000 - -\n\n~O \n\n~O \n\nsample  connectivity \npattern  -- replicated \nacross all  neurons \n\nt \n\noutput column \n\n..... vJI ...... '_,.lIr  _\". .... ;\"r \u2022\u2022 ,Ii \n\n- 11.,61 ...  \"  ~ \n\n.\u2022\u2022...... \n...... ,. , \n\u00b7 . ......... \n' .... \" . ,  , \nI'\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7\u00b7 . \n\u00b7 .. ' \u2022..... \n.. ' \n\u00b7 '., ... ,  .. \n\u00b7 .. ,  ...... \n\u00b7 .......... \n' \u2022..... \n\nGRAPHICAL DISPLAY WINDOW \n\nw_I' \n\nNYlI\" \n\n'''''  \" \n\n\"'~ r ....  \" '_  0'  fI'.\"  ....  11 ... 8' ,,,,,,\"  1 \n\"\" ...  t_ ~ of  .... t  ' .. ,t .... ,,' \"J \u2022\u2022\u2022\u2022 ~  , .. \n,.._  IN,.,.... ..  0Jf  '.Itt,,,,.  ,,,_ .. rt.,..\u00b7,., \n\nII,\\IIM \"\"_1 W .... \", .. ,,..  tVf'\u00ab\"ltJ  w,~,,_ \n\n,..,_t,.,,,,,_01  r ... \"\"'tU.raf' .......  \\ \n\nUSER  INTERACTION WINDOW \n\nCOMMAND WINDOW \n\n.,~~,~~ \n\nAlt., GlobM  VaN., . .  \n\n'nllI./n \n\nI  .,,_ fI/II~\",*- ,~. \n\nIIlIIZIII \n\nu.rou.F_tII'Y \n\nHM. \n\nIt_,~ \n\n...... \n\ny ... ,.. \n\nSTI rus WINDOW \n\nFigure  1.  COMPONENTS  OF  A  CYCLES  NEURAL  NETWORK \n\nFigure  2.  NEURAL  NETWORK  WORKSTATION  INTERFACE \n\ntv \nto \nI-' \n\n\f292 \n\nIMPLEMENTATION \n\nCYCLES was implemented on a  TI Explorer/Odyssey computer system with \n\n8MB of RAM and 128MB of Virtual Memory.  The program was written in Com(cid:173)\nmon  LISP.  The program was  started  in  July  of 1986,  put  aside  for  a  while,  and \nfinished  in  March of 1987.  Since that  time,  numerous  small enhancements have \nbeen made - and the system has been used to test various theories of cyclic neural \nnetworks. \n\nThe  code  was  integrated  into  the  Neural  Network  Workstation  (NNW),  an \ninterface to  various  neural  network  algorithms.  The  NNW  utilizes  the  window \ninterface of the  Explorer  LISP  machine to  present  a  consistent  command input \nand graphical output to  a  variety of neural network algorithms [Figure 2]. \n\nThe  backpropagation-like  neurons  are  collected  together  into  a  large  three(cid:173)\ndimensional array.  The implementation actually allows  the use  of multiple two(cid:173)\ndimensional grids; to date, however, I  have studied only single-grid systems. \n\nEach  neuron  in  a  CYCLES  simulation consists  of a  list  of information;  the \nvalue of the neuron,  the time that the neuron last fired,  a  temporary value used \nduring  the computation of the new  value, and  a  list  of the neurons  connectivity. \nThe  connectivity list  stores  the location of a  related  neuron  and  the strength  of \nthe connection between the two neurons.  Because the system is  implemented in \narrays and lists, large systems tend to be very slow.  However, most of my analysis \nhas taken place on very small systems  \u00ab  80  neurons)  and for this size the speed \nis  acceptable. \n\nTo  help  gauge  the  speed  of  CYCLES,  a  single  grid  system  containing  100 \nneurons  takes  0.8  seconds  and  1235  cons  cells  (memory  cells)  to  complete  one \nupdate  within  the  LISP  machine.  If the  graphics  interface  is  disabled,  a  test \nrequiring 100  updates takes a  total of 10.56 seconds. \n\nTYPES  OF CYCLES \n\nAs  mentioned above, several types of cycles have been observed.  Each of these \n\ncan be used for  different applications.  Figure 3  shows some of these cycles. \n1.  SIMPLE cycles are those that have one or more points of activation traveling \nacross  a  set number of neurons in a  particular order.  The path length can be \nany SIze. \n\n2.  NON-INTERRUPTABLE cycles  are  those  that  have sufficiently  strong  con(cid:173)\n\nnectivity  strengths  that  random  flows  of activation  which  interact  with  the \ncycle will not upset or vary the original cycle. \n\n3.  VARIABLE  PATH  LENGTH  cycles  can,  based  upon  external  information, \nchange their path length.  There must be one or more neurons that are always \na  part of the path. \n\n4.  INTERACTING  cycles  typically  have one  neuron  in  common.  Each  cycle \nmust have at least one other neuron involved at the junction point in order to \nkeep  the cycles  separate.  This  type of cycle has  been shown  to implement a \ncomplex form of a  clock where the product of the two (or more)  path lengths \nare the fundamental frequency. \n\n\f293 \n\nFigure 3.  Types of Cycles [Simple and Interacting] \n\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022 \n\u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022 \n\u2022  \u2022 \n\u2022  \u2022 \n\u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\n* \n\n\u2022 \u2022 \u2022 \u2022  \u2022 \u2022 \u2022  \u2022 \u2022  \u2022 \u2022  \u2022 \n\u2022 \u2022 \u2022 \n\u2022 \u2022 \n\u2022 \u2022 \n\u2022 \u2022 \u2022 \n\u2022  \u2022 \n\u2022 \u2022 \u2022 \n\u2022 \u2022 \n\u2022 \u2022  \u2022 \u2022 \n\u2022 \u2022 \u2022 \n\u2022 \u2022 \u2022 \u2022 \u2022  \u2022 \u2022 \u2022 \u2022 \u2022 \u2022 \u2022 \n\nFigure  4.  Types of Connectivity [Nearest  Neighbor and  Gaussian] \n\nINPUT \n\nOUTPUT \n\nIntent \n\nJoint 3  Extended \n\nJoint 2  Centered \n\nJoint 1  Extended \n\nChuck Opened \n\nChuck Closed \n\nCompleted \n\nMove Joint 3 \n\nMove Joint 2 \n\nMove Joint 1 \n\nOpen Chuck \n\nClose Chuck \n\nFigure 5.  Robot Arm used in  Example \n\n\f294 \n\nCONNECTIVITY \n\nSeveral  types  of  connectivity  have  been  investigated.  These  are  shown  in \n\nFigure 4. \n1.  In  TOTAL  connectivity,  every  neuron  is  connected  to  every  other  neuron. \nThis particular pattern produces very complex interactions with  no  apparent \nstability. \n\n2.  With  RANDOM  connectivity, each neuron is connected to  a  random number \n\nof other neurons.  These other neurons can be anywhere in the grid. \n\n3.  A  very useful  type of connectivity is  to have a  PATTERN. The patterns can \n\nbe of any shape,  typically having one neuron feed  its nearest neighbors. \n\n4.  Finally, the GAUSSIAN pattern has  been used with the most success.  In this \npattern, each neuron is connected to a set number of nodes - but the selection \nis  random.  Further, the distribution of nodes is in a  Gaussian shape, centered \naround  a  point  \"forward\"  of itself.  Thus the flow  of information, in general, \nmoves forward,  but the connectivity allows  cycles to be formed. \n\n\\ \n\nALGORITHM \n\nThe algorithm currently being used  in the system is a  standard inner product \nequation with  a  sigmoidal threshold function.  Each  time a  neuron's weight  is  to \nbe  calculated,  the  value  of  each  contributing  neuron  on  the  connectivity  list  is \nmultiplied  by  the  strength  of the  connection  and  summed.  This  sum  is  passed \nthrough  a  sigmoidal thresholding  function.  The  value of  the  neuron  is  changed \nto  be  the result  of this  threshold  function.  As  you  can  see,  the  system  updates \nneurons in an ordered fashion, thus certain interactions will not be observed.  Since \ntiming information is  saved in the neurons, asynchron:' could be simulated. \n\nInitially, the weights of the connections are set randomly.  A number of inter(cid:173)\n\nesting cycles have been observed as  a  result of this randomness.  However, several \nexperiments have required specific weights.  To accommodate this, an interface to \nthe  weight  matrix is  used.  The  user  can  create any  set  of connection strengths \ndesired. \n\nI have experimented with several learning algorithms-that is,  algorithms that \nchange the connection weights.  The first  mechanism was  a  simple  Hebbian  rule \nthat states that if two neurons both fire,  and there is  a  connection between them, \nthen  strengthen  the  strength  of that  connection.  A  second  algorithm I  experi(cid:173)\nmented with  used  a  pain/pleasure indicator to strengthen or weaken weights. \n\nAn algorithm that is currently under development actually presets the weights \nfrom a  grammar of activity required of the network.  Thus,  the user  can describe \na  process  that  must  be  controlled  by  a  network  using  a  simple  grammar.  This \ndescription is then \"compiled\" into a set of weights that contain cycles to indicate \ntime-independent components of the activity. \n\n\f295 \n\nUSAGE \n\nEven  without  a  biological  background,  it  is  easy  to  see  that  the processing \npower  of  the  human  brain  is  far  more  than  present  associative  memories.  Our \nrepertoire  of  capabilities  includes,  among  other  things:  memory  of  a  time  line, \ncreativity, numerous types  of biological clocks,  and  the ability to  create and  ex(cid:173)\necute  complex plans.  The  CYCLES  algorithm has  been  shown  to  be  capable of \nexecuting complex, time-variable plans. \n\nA  plan  can  be  defined  as  a  sequence  of actions  that  must  be  performed  in \nsome preset  order.  Under  this  definition,  the execution of a  plan would  be  very \nstraightforward.  However,  when  individual actions within the plan take an inde(cid:173)\nterminate length of time, it is  necessary to construct an execution engine capable \nof dealing with unexpected time delays.  Such a system must also be able to abort \nthe processing of a  plan based on new data. \n\nWith  careful  programming  of  connection  weights,  I  have  been  able  to  use \nCYCLES  to  execute time-variable plans.  The particular example I  have chosen \nis  for  a  robot  arm to change its tool.  In this activity, once the controller receives \nthe  signal  that  the  motion required,  a  series  of actions  take place  that  result  in \nthe tool  being changed. \n\nAs  input  to  this  system I  have used  a  number of sensors  that  may be found \nin  a  robot;  extension  sensors  in  2-D  joints  and  pressure  sensors  in  articulators. \nThe outputs of this  network are pulses  that I  have defined  to  activate motors on \nthe  robot  arm.  Figure 5  shows  how  this  system  could  be  implemented.  Figure \n6  indicates  the  steps  required  to  perform the task.  Simple time  delays,  such  as \nfound  with  binding  motors  and  misplaced  objects  are  accommodated  with  the \nbuilt in time-independence. \n\nThe small  cycles  that  occur  within  the neural network  can  be thought  of as \nshort term memory.  The cycle acts as a place holder - keeping track of the system's \ncurrent place in a  series of tasks.  This type of pausing is necessary in many \"real\" \nactivities such as simple process  control or the analysis of time varying data. \n\nIMPLICATIONS \n\nThe success of CYCLES to simple process  control activities such as robot arm \ncontrol implies that there is  a  whole new area of applications for  neural networks \nbeyond present associative memories.  The exploitation of the flow of activation as \na  form of short term memory provides us  with a  technique for dealing with many \nof the  \"other\"  type of computations which humans perform. \n\nThe  future  of  the  CYCLES  algorithm  will  take  two  directions.  First,  the \ncompletion of a  grammar and  compiler for  encoding  process  control tasks  into a \nnetwork.  Second, other learning algorithms will be investigated which are capable \nof  adding  and  removing  connections  and  altering  the  strengths  of  connections \nbased upon an abstract pain/pleasure indicator. \n\n\f296 \n\nThe robot gets a signal \nto begin the tool change \nprocess.  A cycle is started \nthat outputs a signal to \nthe chuck motor. \n\nWhen sensor indicates \nthat the chuck is  open. \nthe first cycle is  stopped \nand a second begins \nactiv<lting  the motor \nin  the first joint. \n\n~.-.-. \n-~ \n\n\u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\n\u2022  \u2022  \u2022  \u2022  \u2022  . ~ \n\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\n.~ .... \n\u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022 :.J.  \u2022  \u2022  \u2022 \n.p..~ \n\u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022 \n\n\u2022 _ . \n\n\u2022 \n\u2022 \n\u2022 \n\n\u2022 \n\nWhen the first joint is \nfully extended, the joint \nsensor sends a signal \nthat stops that cycle, and \nbegins one that outputs \na signal to the second \njoint. \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\n\u00b7 /  .... \n-.(.:/. : :-\n\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\nU \n\nWhen the joint indicator \nindicates that the joint is \ncentered, it changes the \nflow of activation to cause \na cycle that activates the \nthird joint. \n\n: : : ;}'\\.:-. \n-..~ ... \n\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\nNext, the chuck is closed \naround the new tool bit. \n\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\n~.~ .. \u2022 \n~~. \u2022  \u2022 \n\u00b7 . . .........  . \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  . .. -\n-\"'. \n\nThe last signal ends the \nsequence of cycles and \nsends the completed \nsignal. \n\n\u2022  \u2022  \u2022  \u2022  \u2022  .-\n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n\u2022  \u2022  \u2022  \u2022  \u2022  \u2022 \n-.~. \u2022  \u2022 \n\nD \n\nD \n\nD \n\nFigure 6.  Example use  of CYCLES to control a  Robot  Arm \n\n\f", "award": [], "sourceid": 62, "authors": [{"given_name": "Michael", "family_name": "Gately", "institution": null}]}