Abstract:
A supervised procedure for obtaining weight values for back-propagation neural networks is described. The method according to the invention performs a sequence of partial optimizations in order to determine values for the network connection weights. The partial optimization depends on a constrained representation of hidden weights derived from a singular value decomposition of the input space as well as an Iterative Least Squares optimization solution for the output weights.

Description:
ORIGIN OF THE INVENTION 
     The invention described herein was made by an employee of the United States Government and may be manufactured and used by or for the Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefor. 
    
    
     BACKGROUND OF THE INVENTION 
     The back propagation neural network, or &#34;BPN&#34;, is an extremely useful neural network algorithm. The BPN &#34;learns&#34; a very general class of mappings which are usually represented as functions from R n  to R m . Theoretically a 3-layer BPN can learn almost any map, but in practice the application of the BPN has been limited due to the enormous amount of computer time required for the training process. 
     SUMMARY OF THE INVENTION 
     The principal object of the present invention is to provide a training procedure for a feed forward, back propagation neural network which greatly accelerates the training process. 
     Although the invention is, in principle, applicable to any neural network which implements supervised learning through error minimization or a so-called generalized delta rule, the neural network architecture for which the invention is best suited consists of a three-layer feed forward network having n1 inputs, n2 hidden units and n3 outputs. The invention contemplates that all learning will be supervised; i.e., correct outputs are known for all inputs in the training set. 
     Brief Description of the Method: 
     The training method according to the invention is applied to a feed-forward neural network having at least two layers of nodes, with a first layer having n1 nodes and a second layer having n2 nodes, each node of said second layer having a weight W2 i , where i=1, . . . ,n2. The method comprises the steps of: 
     (a) applying to the network a plurality p of input vectors for which the respective outputs are known, the input vectors forming an input matrix 
     
         X=X.sub.i,j                                                ( 1) 
    
     where i=1, . . . ,p and j=1, . . . ,n1 
     (b) determining a set of n1 orthogonal singular vectors from the input matrix X such that the standard deviations of the projections of the input vectors along these singular vectors, as a set, are substantially maximized, the singular vectors each being represented as a column of the orthogonal matrix 
     
         V=V.sub.i,j                                                ( 2) 
    
     where i, j=1, . . . ,n1, where the condition of orthogonality is expressed by 
     
         V.sub.1,i V.sub.1,j +V.sub.2,i V.sub.2,j +. . .+V.sub.n1,i V.sub.n1,j =1 if i=j and 0 otherwise,                                      (3) 
    
     and there being associated with each singular vector an associated singular value which is a real number greater than or equal to zero, thereby to provide an optimal view of the input data; 
     (c) requiring that each weight W 2i  be adjusted in a direction colinear with a particular singular vector where said singular vector is selected periodically in such a way as to effect the greatest reduction in the deviations between network outputs and the desired training outputs and 
     (d) Employing a direct solution method exemplified by, but not limited to, the Iterative Lease Squares (ILS) technique described subsequently to obtain any so-called &#34;output weights&#34; which in the instance of a 3-layer feed-forward network would be the weight matrix W3. 
     Explanation of the Method: 
     Let the inputs for the training set be represented as a matrix X which will be called the input matrix. The entries in X will be denoted X i ,j where i=1, . . . ,p and j=1, . . . ,n1 with p being the number of examples which comprise the training set. A set of orthogonal (perpendicular) axes (called optimal axes) is extracted from the data matrix X which provides the optimal view of the data. The optimal axes provide a view which is &#34;optimal&#34; in the sense that the standard deviations of the projections of input vectors along these axes as a set have maximal standard deviation; i.e., the optimal axes &#34;spread out&#34; the data to the largest possible degree. There is a well known mathematical procedure for computing the orthogonal unit vectors which define the direction of these axes in space. The unit vectors will be the right singular vectors of the data matrix X. 
     The equation describing the Singular Value Decomposition of the matrix X is 
     
         X=UDV.sup.t                                                ( 4) 
    
     where U=u i ,j, i=1, . . . ,p, j=1, . . . ,n1 is the matrix whose columns are generally known as the left singular vectors of X, D is a square diagonal matrix of size n1Xn1 whose diagonal elements are generally known as the singular values of X, V=V i ,j is the matrix whose columns are generally known as the right singular vectors of X, and the superscript t indicates the transpose of the matrix V. Moreover, the columns of the matrices U and V satisfy an orthogonality condition expressed by the equations: ##EQU1## 
     Associated with the i th  singular vector (i th  column of V) is a singular value, a real number λ i  which is greater than or equal to zero. The significance of each of the optimal axes is directly related to the magnitude of the corresponding singular value. Axes defined by singular vectors corresponding to larger singular values tend to &#34;spread&#34; the projections of the data in direct proportion to the magnitude of the singular value. 
     Depending on the problem, a number r of optimal axes will be used. According to a preferred embodiment of the invention the number r may be determined adaptively from the data, but it can easily be selected and supplied manually by an operator. Also in the operator-supplied category is the number of hidden nodes n2 which are to be used. With each hidden node, in a three-layer feed-forward neural network, there is an associated weight vector w2 i , where i is the subscript of the hidden node, i=1, . . . ,n2. In virtually all conventional networks the vector w2 i  can evolve in an arbitrary manner during the training process. The present invention allows each weight w2 i  to be adjusted only in a direction parallel to one of the optimal axes defined by the right singular vectors of X. Imposition of such a constraint dramatically decreases the number of optimization variables associated with the connections between the two layers. The conventional method requires optimization in a weight space of dimension n1Xn2 whereas the present invention reduces this number to n2, the number of hidden nodes. Accompanying this reduction in the dimensionality of the optimization is a corresponding reduction in the number of operations required for each training cycle. 
     Periodically it may be necessary to pick different singular vectors along which the hidden weights are to be adjusted. The singular vectors themselves only depend upon the input matrix X, therefore these vectors need be extracted only once. The process of selecting the optimal singular vectors to use at each hidden node requires a number of operations less than or equal to one conventional forward propagation cycle. Simulations have shown excellent results even when the initial choice of singular vectors is never disturbed. A key discovery is that the weight vectors for many problems may be determined very quickly with great accuracy by only allowing the input weights to change along 1-dimensional subspaces defined by the right singular vectors of the input matrix. 
     According to the present invention, therefore, instead of having to solve for all components of the hidden weight vectors, in the fast learning architecture of present invention, only the coefficients of the singular vectors (one such coefficient per node as opposed to hundreds or thousands per node in the conventional case) must be determined. The determination of these coefficients can occur in any one of several ways. The present preferred embodiment uses a gradient descent with a back-tracking line search. 
     In a feed-forward network with more than three layers it would be appropriate to treat nodes in all but the output layer as above; i.e., by imposing a constrained weight representation. Additional layers, however, would introduce additional processing overhead because the optimal view axes would have to be extracted after each change in the weights of previous layers. The method according to the invention works especially well for 3-layer networks because there are no weights preceding the input weights; therefore, once computed, the set of optimal view axes never change and, as will be detailed, it is easy to solve for output weights directly using the ILS technique. 
     Iterative Least Squares (ILS) 
     Our objective is to find the best output weight matrix W 3  for a given hidden weight matrix W 2 . From the input matrix X and the hidden weight matrix we can obtain a matrix Z of hidden neuron outputs described by 
     
         Z.sub.i =σ.sub.n2 (W.sub.2 X.sub.i)                  (7) 
    
     where σ n  is the transfer function applied coordinatewise i.e. 
     
         σ.sub.n (&lt;x.sub.1, . . . ,x.sub.n &gt;)=&lt;σ(x.sub.1), . . . ,σ(x.sub.n)&gt; where σ(x)                       (8) 
    
     is any one-to-one differentiable function generally known as the transfer function of the network, such functions being exemplified by the so-called sigmoidal function defined by 
     
         σ(x)=1/(1+exp(-x))                                   (9) 
    
     and i=1, . . . ,p and Z i  is the i th  row of the Z matrix. We then must minimize the sub-function E o  defined by ##EQU2## where Ω i  is the desired output corresponding to the i th  input in the training set and the square of the vector quantity indicates the square of its magnitude. 
     Let Q be the matrix of actual outputs whose i th  row Q i  is given by the equation 
     
         Q.sub.i =σ.sub.n3 (W.sub.3 Z.sub.i)                  (11) 
    
     Note that the j th  element of Q i , q i ,j, depends on W 3  in a limited way, i.e., q i ,j only depends on the j th  row of W 3 . To reiterate, the j th  column of Q is a function only of the j th  row of W 3 , therefore we can solve for the rows of W 3  separately with no fear that solving for row j will disturb the optimality of any of the other rows. Let T i  be the i th  row of W 3 . Then the vector T i  should minimize the expression 
     
         E.sub.o,i =(σ.sub.p (ZT.sub.i)-Ω.sup.i).sup.2  ( 12) 
    
     where Ω i  denotes the i th  column of the output matrix Ω. 
     There are many available techniques for solving this equation for T i  since the number of active optimization variables n 2  is relatively small. One possible approach would be to use the well known Pinrose pseudo-inverse Z +  of the matrix Z defined by 
     
         Z.sup.+ =VD.sup.-1 U.sup.t                                 ( 13) 
    
     where Z=UDV t  is the singular value decomposition of Z and any terms involving reciprocals of zero singular values are dropped. This technique yields 
     
         T.sub.i =Z.sup.+ σ.sub.p.sup.-1 (Ω.sup.i)      (14) 
    
     where σ n   -1  is the inverse of the one-to-one mapping σ n  defined by 
     
         Y=σ.sub.n.sup.-1 (X.sub.1, . . . ,X.sub.n)=Y.sub.1, . . . ,Y.sub.n( 15) 
    
     and 
     
         y.sub.i =σ.sup.-1 (X.sub.i)                          (16) 
    
     The solution given by the equation for T i  does not provide a true minimization of the function E o ,i because the quantity which is really being minimized is the difference between ZT i  and σ p   -1  (Ω i ) rather than the distance between σ p  (ZT i ) and Ω i  in the least squares sense. The preceding fails to account for the fact that the function σ p  may distort the sensitivity of a post-σ error to a pre-σ error, thus the above equation for T i  might be trying for a close match of relatively insensitive coordinates which would force a mismatch in a more sensitive variable. The sensitivity problem might be overcome by including derivatives of σ p  into the Z matrix. Specifically, a new matrix Z&#39; could be formed by multiplying Z on the left by σ p  &#39; where σ p  &#39; is the Jacobian matrix of the mapping σ p . This approach has two important disadvantages: First, there is no longer a single Z matrix to be used to obtain all n 3  rows of the W 3  matrix. This requires a singular value decomposition for n 3  different Z&#39;  matrices. Perhaps an even more serious problem is to find reasonable values for σ p  &#39;. In order to know σ p  &#39;(X), it is necessary to know X, but X is ZT i  and T i  is the weight vector for which a solution is sought. The traditional solution to this dilemma is to iterate. 
     Incremental Least Squares: 
     When linearization techniques are to be employed it is desirable, perhaps essential, to have a shrinking interval over which linearization is to occur. This requirement of a shrinking interval or increment over which to linearize the output transfer functions naturally gives rise to the concept of Incremental Least Squares (ILS). Suppose we are seeking a least squares solution to the equation 
     
         G(X)=Y                                                     (17) 
    
     i.e., (G(X)-y) 2  is to be minimized, where X and Y are vectors. Let G&#39;(X) be the Jacobian matrix of G where the partial derivatives are evaluated at the point X. If an initial point X o  is given, then we can linearize G about the point X o  as follows 
     
         G(X.sub.o +δ.sub.o)≈G(X.sub.o)+G&#39;(X.sub.o)δ.sub.o( 18) 
    
     The increment δ o  could be sought which moves G as close as possible to the desired value Y by assuming the linearization above and finding a least squares regression solution for δ o . Such a solution would be 
     
         δ.sub.o =G&#39;.sup.+ (X.sub.o)(Y-G(X.sub.o))            (19) 
    
     We could then construct a sequence X o , X 1 , . . . by 
     
         X.sub.n =X.sub.n-1 +δ.sub.n-1                        ( 20) 
    
     where 
     
         δ.sub.n-1 =G&#39;.sup.+ (X.sub.n-1)(Y-G(X.sub.n-1))      (21) 
    
     A desirable property of such a sequence is that the increments δ n  are found which produce the minimum disturbance while moving toward the solution. We could apply this method directly to minimize the functions E o ,i, but it would be necessary to compute the matrix G&#39; +  (X n ) not only at each iteration step, but also, as observed previously, for each output node. If we further simplify the expression for G&#39; +  then only one pseudo-inverse calculation will be required. Let the function G be defined by 
     
         G(X)=σ.sub.p (ZX)                                    (22) 
    
     As observed previously, 
     
         G&#39;(X)=σ.sub.p &#39;(ZX)Z                                 (23) 
    
     If the diagonal Jacobian matrix σ p  &#39; is replaced by a diagonal matrix with entries bounding those of σ p  &#39; from above, then the resulting pseudo-inverse matrix provides a conservative update; i.e., the update tends to undershoot rather than overshoot the desired minimum. Specifically, from the above equation for σ&#39;(X), it follows that the diagonal elements of σ p  &#39; are never greater than 1/4 when the customary sigmoidal non-linearty is used as the transfer function for the network. If a different transfer function is employed, then the constant 1/4 would be replaced by an upper bound for the derivative of σ. Combining the preceding we obtain the following sequence X 0 , X 1 , . . . which approaches the optimal output weight vector T i . 
     
         X.sub.n =X.sub.n-1 +δ.sub.n-1                        ( 24) 
    
     where 
     
         δ.sub.n-1 =4Z.sup.+ (Ω.sup.i -σ.sub.p (ZX.sub.n-1))(25) 
    
     This is termed a one-step method because the major overhead is the computation of the matrix Z +  which must be done only once. Though the method ignores information which could be obtained from the transfer function derivatives, sensitivity information is included in the form of the errors which are passed back into the increment δ n . The update described by the above equation for δ n-1  is the Hessian update with the transfer function first derivatives replaced by 1/4 (the upper bound) and transfer function second derivatives replaced by 0. The sweeping nature of the preceding simplifications makes further theoretical treatment of the sequence described by the equation for δ n-1  extremely complex. The method succeeds because most of the important Hessian information is carried in the Z matrix rather than in the diagonal Jacobian matrix of transfer function first derivatives and the tensor of second transfer function derivatives, most of whose elements are zero. 
     The training procedure according to the present invention can therefore be summarized as follows: 
     (1) Extract singular values and singular vectors from the input matrix X. 
     (2) Based on the magnitudes of the singular values, make a judgement of how many singular vectors must be retained. 
     (3) Decide how many hidden nodes to use. Note that the results of steps (1) and (2) will in general contribute to this determination, which may be essentially an educated guess. 
     (4) Set random values for the coefficients of the singular vectors which represent the input weights and the full matrix of output weights. 
     (5) Perform a numerical optimization to find the set of coefficients of the singular vectors which yields the best set of input weights for the current (initially random) output weights. 
     (6) Using the input weights derived from the coefficients of singular vectors obtained in step (5) use the ILS procedure to solve for the output weights. 
     (7) When no further decrease in network error can be obtained by applying steps (5) and (6), for each of the n2 hidden nodes, evaluate the learning potential p i ,j of each of the r singular vectors. The learning potential p i ,j of a singular vector is defined to be the absolute magnitude of the rate of change of the network error function with respect to changing weight W2 i  parallel to the j th  singular vector, i=1, . . . ,n2, j=1, . . . ,r. 
     (8) Choose a new singular vector for each of the n2 hidden nodes according to which of the r singular vectors possesses the greatest learning potential for the particular hidden node, and initialize a new set of coefficients for the new singular vectors to be all 0.0&#39;s. 
     (9) Repeats steps (5), . . . ,(8) until the process stabilizes. 
     (10) Convert the coefficients and singular vectors which describe the input weights into the form of weights which are compatible with conventional network architectures. Said conversion is accomplished according to: ##EQU3## where C i ,k are the singular vector coefficients obtained in step (5), V j ,k is the matrix V of right singular vectors of the input matrix X,λ k  is the k th  singular value of X and k is allowed to range over all indices from 1 to r for which the singular vector selection processes of steps (7) and (8) determined that singular vector k had maximal learning potential for node i. Although computed by the ILS procedure rather than numerical optimization as is the conventional method, the output weights produced by the accelerated training method are directly compatible with conventional network architectures. 
     Although the training procedure according to the invention is not exactly equivalent to conventional back propagation, the weights which are produced at the end of the procedure are entirely compatible with ordinary back propagation networks. Simulations have shown that, even in cases for which the subject invention fails to produce acceptable weights, these weights can be used as an excellent starting point for a conventional training method. Starting a conventional method with weights found by the accelerated method can reduce the number of cycles required for final convergence by a factor of 10 in many cases, and can even cause the conventional method to converge on problems for which convergence of the conventional methods was never observed when the conventional method was forced to work from a random start. 
     The training procedure according to the present invention is preferably employed under the following conditions: 
     (1) The neural network is a 3-layer feed-forward network; i.e., a network with one input layer, one hidden layer and one output layer. 
     (2) The sizes of the layers are such that a significant amount of computation occurs in the connections between the input layer and hidden layer. 
     Cost Comparisons: 
     The cost estimate C o  for application of the standard gradient descent training method for C cycles through a data set of p examples may be calculated as follows: 
     
         C.sub.o =Cpn2(n1+n3)                                       (27) 
    
     The comparable cost C n  for the training method according to the present invention is given by: 
     
         C.sub.n =S+C(n2n3+ξn2(n1+n3)),                          (28) 
    
     where ξ is the fraction of cycles which require an evaluation of the learning potential described in (7) and (8), and S is the cost of performing the singular value decomposition of the input matrix X. Note that the cost of the singular value decomposition is not multiplied by the number of cycles because it is only necessary to perform the singular value decomposition once at the outset of the training process. Moreover, the singular value decomposition need not be recomputed if outputs or network architecture are modified. 
     The preferred embodiments of the present invention will now be described with reference to the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a representational diagram of a single artificial neuron or &#34;node&#34; whose output is a function of the input. 
     FIG. 2 is a representational diagram of a back propagation neural network having three layers: an input layer, a hidden layer and an output layer. 
     FIGS. 3a and 3b are perspective views of a hoop, viewed nearly edge on (FIG. 3a) and viewed from the side (FIG. 3b), which illustrate an optimal view, i.e., the effect of viewing an object from an optimal perspective. 
     FIGS. 4a and 4b show a representation of neural network weight vector being allowed to evolve in an unconstrained manner (FIG. 4a) and being constrained to evolve along a preferred optimal axis only (FIG. 4b). 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The preferred embodiments of the present invention will now be described with reference to FIGS. 1-4 of the drawings. 
     Feed forward, back propagation neural networks are well known in the art. Such networks comprise a plurality of artificial &#34;neurons&#34; or &#34;nodes&#34; connected in a highly parallel manner. The key to the functioning of such a &#34;BPN&#34; is the set of weights associated with each node, which vary to determine the level of association between nodes. It is these weights that represent the information stored in the system. 
     A typical artificial neuron is shown in FIG. 1. The neuron may have multiple inputs, but only one output. The input signals to the neuron are multiplied by the weights and summed to yield total neuron input I. For the i th  neuron shown in FIG. 1, the neuron input I and output O are given by: 
     
         I.sub.i =Neuron input=σ.sub.j W.sub.i,j I.sub.j      (29) 
    
     
         O.sub.i =Neuron Output=1/(1+e.sup.-I.sbsp.i)               (30) 
    
     where j identifies the source of the signal I j  to the weight W i ,j. The neuron output may be a so-called &#34;sigmoid&#34; function of the input: 
     
         1/(1+e.sup.-x). 
    
     The sigmoid is, in some respects, representative of real neurons, which approach limits for very small and very large inputs. Each neuron may have an associated &#34;threshold&#34; e which is subtracted from the total input I so that x=I i  -e. It is customary in the art to treat these thresholds as weights leading from an input fixed at unity to the threshold neuron. This treatment of thresholds allows the method according to the subject invention to be directly applicable to neural networks with or without thresholds. 
     There are several known neural net learning algorithms, such as back propagation and counter propagation, which are used to train networks. The programmer &#34;trains&#34; the net by supplying the input and corresponding output data to the network. The network learns by automatically adjusting the weights that connect the neurons. The weights and the threshold values of neurons determine the propagation of data through the net and its response to the input. 
     FIG. 2 shows a back propagation network comprising an input layer having four nodes (n1=4), a hidden layer having six nodes (n2=6) and an output layer having two nodes (n3=2). From the number of connections in this simple network, it will be appreciated that training the net to the correct responses is normally a computationally expensive process. The purpose of the present invention is to reduce this computation time and expense. 
     Theoretical Basis of the Invention: 
     The invention operates by performing a sequence of partial optimizations in weight space which are of two types. Each type of partial optimization may be viewed as a partitioning of the network weights into two or more classes, performing optimization on one class at a time, and proceeding from class to class according to an iteration strategy. The simpler partial optimization considers the connections between the hidden and output layers separately from those from the input to the hidden layer. The output connections can be found by the ILS procedure because these connections have known outputs and inputs which are also known if the hidden weights are assumed, i.e., excluded from the partial optimization. 
     The other kind of partial optimization involves decomposing the input weight space in a manner which provides the optimal view of the input data. This decomposition also determines a partial optimization strategy during which the hidden weights are constrained to change along one-dimensional subspaces as shown in FIG. 4b. This constraint limits the active optimization variables during each step to a single coefficient for each hidden node. 
     The optimal axes for the hidden weight space decomposition are the right singular vectors of the input matrix X. To illustrate this concept of optimality FIGS. 3a and 3b show two views of a two-dimensional hoop imbedded in a space of three or more dimensions. If the rows of the input matrix X were to contain random samples from the hoop, then the first two right singular vectors of X (the two corresponding to the largest singular values) would be oriented in the plane of the hoop. If the row vectors of X were then projected along the axes defined by the first two singular vectors of X, and the projections were plotted in two-dimensional space, then the result would be the hoop laid flat and thus most visible in the two-dimensional plane. 
     Advantages Over The Standard Method: 
     The major advantage of the training procedure according to the present invention is reduced training cost. Note that the training costs given above suggest that the accelerated training method will never be more costly than the conventional method provided that 
     
         ξ&lt;(n1-1)/n1. 
    
     Clearly lessor values of the parameter ξ or greater values of the parameter n1 indicate circumstances in which the method according to subject invention should be considered. 
     Illustration of the Invention: 
     The nature and operation of the present invention is illustrated in FIGS. 3 and 4. FIGS. 3a and 3b show two views of a circular hoop in space. FIG. 3a presents the hoop nearly edge-on whereas FIG. 3b, which is the optimal view, displays the hoop as a circle, thus providing much more information about this device. 
     With the present invention, the axes defined by the singular vectors corresponding to the larger singular values tend to &#34;spread&#34; the projections of the data so that the true nature of the data becomes apparent. The singular vectors extracted from the inputs are thus used to quickly find the optimal projections or views of the data. 
     FIG. 4a shows standard weight vectors which can evolve in an arbitrary direction. According to the invention, the hidden weight vectors are constrained to evolve through linear subspaces (FIG. 4b) which greatly reduces the amount of computation since, instead of having to solve for all components of the hidden weight vectors, only the coefficients of the singular vectors (one such coefficient per node as opposed to hundreds or thousands per node in the conventional case) must be determined. 
     Software Implementation: A software implementation of the present invention is set forth in the attached Appendix. 
     Software Description: The program is written in the C computer language and is intended to be ported to IBM compatible personal computers with TURBO C, Berkeley UNIX work-stations as well as most computer systems with C language compilers. 
     To Compile: 
     TURBO C: 
     Edit the file &#34;flub.h&#34;, and if necessary, change the definition of &#34;TBC&#34; to read &#34;#define TBC 1&#34; 
     At the system command prompt type the instruction &#34;tcc -mh flub.c sing --  val.c&#34; 
     This instruction will cause the creation of the three files &#34;flub.obj&#34;, &#34;sing --  val.obj&#34; and &#34;flub.exe&#34;. To run the program type &#34;flub&#34; at the system command prompt. 
     Berkeley UNIX Work-stations: 
     Edit the file &#34;flub.h&#34; and if necessary change the definition of &#34;TBC&#34; to read &#34;#define TBC 0&#34; 
     At the command line prompt type the instruction &#34;cc -g flub.c sing --  val.c -lm -o flub&#34; 
     This command will create the three files &#34;flub.o&#34;, &#34;sing --  val.o&#34; and &#34;flub&#34;. To run the program type &#34;flub&#34; at the command prompt. 
     Running the Program: 
     The program only requires a file containing the input/output pairs (i/o pairs) which will be used to train the network. This file should contain decimal numbers in ASCII text in the form required by the Network Execution and Training Simulator (NETS), a product of the National Aeronautics and Space Administration (NASA), and available from COSMIC, 382 East Broad Street, Athens, Ga. 30602. The name of this file should have the extension &#34;.iop&#34;. A second optional file, &#34;describe.net&#34; may be used to facilitate execution of the program. If present, this file should contain three lines with the following information. 
     L1: Seed for pseudo random number generation (if blank program will use system clock for this purpose) 
     L2: Numbers of (a) inputs, (b) outputs, (c) hidden nodes, and (d) singular vectors to use. The program will prompt for (c) and (d) if not present in the file. Items (a) and (b) are mandatory. 
     L3: The name of the &#34;.iop&#34; file written without the &#34;.iop&#34; extension, e.g. to use the file &#34;pattern.iop&#34; this line should read &#34;pattern&#34;. 
     The program will prompt for this input if not present in the file. 
     At start-up the user is given the option of loading I/O from a binary work-file. This will generally be much quicker than loading the training set from an ASCII file. The work-file is automatically created when the ASCII file is processed so that you need only read the ASCII file once, thereafter use the work-file. 
     The user communicates with the program through a simple command line interface. Each command is given by typing a letter followed by a carriage return. All but two of the commands are self-explanatory. These two commands for training and `d` for choosing the &#34;descent mode&#34;. 
     Training: 
     When you select the `t` option you are executing the steps of the Accelerated Training Method. This action requires two inputs from the user, counts of &#34;major&#34; and &#34;minor&#34; cycles. Major cycles are defined to be those in which the learning potential is evaluated, and thus are much more costly than minor cycles. The number of minor cycles will be interpreted as the number of partial optimization steps between major cycles. The ILS solution for the output weights is done once in every major cycle. The number ξ which governs the relative cost of the Accelerated method in comparison to the conventional method is simply the ratio of major cycles to minor cycles. 
     ξ=(major cycle count)/(minor cycle count) 
     Descent Selection: 
     This software implementation of the Accelerated Training Method offers two numerical methods for determination of optimal coefficients for the singular vectors which determine the hidden weights. The gradient method uses straight gradient descent with back-tracking line search. The direct method uses a linearized Hessian method in which the sigmoids are replaced by locally linear mappings. The direct method is more costly, but will require fewer minor cycles to produce optimal coefficients. The cost of the direct method increases rapidly with n2, the number of hidden nodes, and thus the gradient method is usually preferable for large networks. 
     NETS Compatibility: 
     As noted, the i/o files for this program are compatible with those for NETS. If the weights generated by this program are to be used by NETS, then the following rules must be followed. 
     (1) The number of nodes in layer 0 (NETS&#39; input layer) must be equal to n1 (item (a) in line 2 of &#34;describe.net&#34;). 
     (2) The number of nodes in layer 1 (NETS&#39; output layer) must be equal to n3 (item (b) of line 2 in &#34;describe.net&#34;). 
     (3) The number of nodes in layer 2 (a hidden layer for NETS) must be equal to n2 (item (c) on line 2 of &#34;describe.net&#34;). 
     (4) The network implemented by NETS must be fully connected. 
     (5) The network implemented by NETS must have 3 layers. 
     The name of the weight file created by this program automatically has the &#34;.pwt&#34; extension, and as such, is compatible with the `p` (portable) format for NETS weight files. The weights determined by this program are generated for a network with no thresholds (biases) but are stored in a fashion which renders them compatible with networks with or without thresholds. Even for networks with no biases, NETS requires bias values to be included in weight files. The program includes bias values in its weight files as 0.0&#39;s. 
     There has thus been shown and described a novel training method for feed-forward, back propagation neural networks which fulfills all the objects and advantages sought therefor. Many changes, modifications, variations and other uses and applications of the subject invention will, however, become apparent to those skilled in the art after considering this specification and the accompanying drawings which disclose the preferred embodiments thereof. All such changes, modifications, variations and other uses and applications which do not depart from the spirit and scope of the invention are deemed to be covered by the invention, which is to be limited only by the claims which follow. ##SPC1##