(omod ANN-EVALUATION is protecting CONVERSION . protecting QID . --- Description. Neural Networks with Maude using strategies --- Authors: Gustavo Santos-Garcia, Miguel Palomino, and Alberto Verdejo --- email: santos@usal.es, miguelpt@sip.ucm.es, alberto@sip.ucm.es --- Date: Apr 14, 2008 --- Version: 2.7 --- Comments: - Oriented object module --- - This is a neuronal version for evaluation and training ANN --- - Use strategies (module implemented with full maude) --- - Several patterns can be introduced at the same time --- Running from Terminal: maude maude-strat configuration2 ann --- Maude commands: --- EVALUATION --- ann for only evaluation (from s N0 to N1 input patterns) --- (srew ann netStatus(N0 , 0 , 0 , N1) using one(evaluateANN) ! .) --- e.g. for 1 to 106 input pattern: --- (srew ann netStatus(0 , 0 , 0 , 106) using one(evaluateANN) ! .) --- e.g. for 3 to 5 input pattern: --- (srew ann netStatus(2 , 0 , 0 , 5) using one(evaluateANN) ! .) --- --- TRAINING --- foo data training with first 3 patterns and 4 times, then evaluation with remaining ones --- (srew ann netStatus(0 , 3 , 4 , 5) using one(trainANN) ! .) --- (cont using changeStatus ; one(evaluateANN) ! .) --- glaucoma data training with first 53 patterns and 20 times, then evaluation with remaining ones --- (srew ann netStatus(0 , 53 , 20 , 106) using one(trainANN) ! .) --- (cont using changeStatus ; one(evaluateANN) ! .) --- ********* MESSAGES ************************************************************* --- netStatus (counter, final training pattern, times of training set, final pattern) msg netStatus : Nat Nat Nat Nat -> Msg . --- inputPattern(counter, neuron, value) --- outputPattern(counter, neuron, value, state) msg inputPattern : Nat Nat Float -> Msg . msg outputPattern : Nat Nat Float Nat -> Msg . ********* CLASSES ************************************************************** --- Object classes class Net | e : Float, r : Bool , st : Nat . class Neuron | x : Float, t : Float , st : Nat . class Link | w : Float, st : Nat . ********* OPERATORS ************************************************************ --- Final object representation op net : Nat -> Oid . op neuron : Nat Nat -> Oid . op link : Nat Nat Nat -> Oid . --- Initial object representation ops ann inputs layer0 layer1 layer2 : -> Configuration . --- Initialization for input, output, desired, threshold, link matricial values --- Input and output pattern matricial values ops input0 input1 input2 output0 output1 output2 desired0 desired1 desired2 threshold0 threshold1 threshold2 : -> FloatList . ops link1 link2 : -> Matrix . ops inputPattern outputPattern : Nat -> FloatList . --- Link matrix sorts FloatList Matrix . subsorts Float < FloatList < Matrix . op __ : FloatList FloatList -> FloatList [assoc prec 30] . op _;_ : Matrix Matrix -> Matrix [assoc] . --- Conversion operators ops inPatternConversion outPatternConversion : Nat FloatList Nat -> Configuration . op neuronGeneration : Nat FloatList FloatList Nat -> Configuration . op linkGeneration : Nat Matrix Nat Nat -> Configuration . ********* VARIABLES ************************************************************ vars L L' I J K S S2 N0 N N1 N2 : Nat . var MW : Matrix . var B : Bool . vars X D T DT DT1 DT2 E P O W W1 X0 X1 X2 : Float . vars LX LT LW : FloatList . vars C C' : Configuration . ********* Initial Matricial Representation of Neural Net Model (begin) ********* eq ann = layer0 layer1 layer2 . eq layer0 = neuronGeneration(0, input0, threshold0, 0) . eq layer1 = neuronGeneration(1, input1, threshold1, 0) linkGeneration(1, link1, 0, 0) . eq layer2 = neuronGeneration(2, input2, threshold2, 0) linkGeneration(2, link2, 0, 0) . ********* Initial Matricial Representation of Neural Net Model (end) *********** ********* Conversion to Object Neural Net Model (begin) ************************ --- Neuron matricial representation to object representation eq neuronGeneration(L, X LX, T LT, S) = neuronGeneration(L, LX, LT, s S) < neuron(L, s S) : Neuron | x : X , t : T , st : 0 > . eq neuronGeneration(L, X, T, S) = < neuron(L, s S) : Neuron | x : X , t : T , st : 0 > . --- Link matricial representation to object representation eq linkGeneration(L, ((W LW) ; MW), S, S2) = linkGeneration(L, (LW ; MW), s S, S2) < link(L, s S2, s S) : Link | w : W , st : 0 > . eq linkGeneration(L, (W ; MW), S, S2) = linkGeneration(L, MW, 0, s S2) < link(L, s S2, s S) : Link | w : W , st : 0 > . eq linkGeneration(L, (W LW), S, S2) = linkGeneration(L, LW, s S, S2) < link(L, s S2, s S) : Link | w : W , st : 0 > . eq linkGeneration(L, W, S, S2) = < link(L, s S2, s S) : Link | w : W , st : 0 > . --- Pattern and objective matricial representation to object representation eq inPatternConversion(N, X LX, S) = inPatternConversion(N, LX, s S) inputPattern(N, s S, X) . eq inPatternConversion(N, X, S) = inputPattern(N, s S, X) . eq outPatternConversion(N, X LX, S) = outPatternConversion(N, LX, s S) outputPattern(N, s S, X, 0) . eq outPatternConversion(N, X, S) = outputPattern(N, s S, X, 0) < net(N) : Net | e : 0.0 , r : false , st : 0 > . ********* Conversion to Object Neural Net Model (end) ************************** ********* Sygmoid Operations (begin) ******************************************* op nu : -> Float . eq nu = 2.6 . op syg : Float Nat -> Float . eq syg(X , 0) = ( X ) . *** identity function eq syg(X , 1) = ( 1.0 / ( 1.0 + exp(_-_(nu , X)))) . *** sygmoid function eq syg(X , 2) = ( 1.0 / ( 1.0 + exp(_-_(nu , X)))) . *** sygmoid function --- identity function: ( X ) --- step function: ( if X >= 0.0 then 1.0 else 0.0 fi ) --- sygmoid function: ( 1.0 / ( 1.0 + exp(_-_(nu , X)))) ********* Sygmoid Operations (end) ********************************************* ******************************************************************************** ********* Neural Net Model RULES (begin) *************************************** crl [nextPatternTR] : --- use next pattern netStatus(N , N1 , N2 , N0) => netStatus(s N , N1 , N2 , N0) --- repeating training input pattern --- inPatternConversion(s N, inputPattern(s (N quo N2)), 0) --- outPatternConversion(s N, outputPattern(s (N quo N2)), 0) --- rotating training input pattern inPatternConversion(s N, inputPattern(s (N rem N1)), 0) outPatternConversion(s N, outputPattern(s (N rem N1)), 0) if s N <= (N1 * N2) . crl [nextPattern] : --- use next pattern netStatus(N , N1 , N2 , N0) => netStatus(s N , N1 , N2 , N0) inPatternConversion(s N, inputPattern(s N), 0) outPatternConversion(s N, outputPattern(s N), 0) if N < N0 . rl [resetNeuron] : --- reset status for all neurons < neuron(L, I) : Neuron | x : X , st : s S > => < neuron(L, I) : Neuron | x : 0.0 , st : 0 > . rl [resetLink] : C => resetLink(C) . --- reset status for all links op resetLink : Configuration -> Configuration . eq resetLink( C < link(L, I, J) : Link | w : W , st : 1 > ) = resetLink( C < link(L, I, J) : Link | w : W , st : 0 > ) . eq resetLink(C) = C [owise] . rl [introducePattern] : --- Introduce pattern into input layer neurons inputPattern(N, I, X0) < neuron(0, I) : Neuron | x : X , st : 0 > => < neuron(0, I) : Neuron | x : X0 , st : 1 > . rl [feedForward] : C => feedForward(C) . *** Compute outputs at every neuron op feedForward : Configuration -> Configuration . eq feedForward( C < link(s L, I, J) : Link | w : W , st : 0 > < neuron( L, I) : Neuron | x : X1 , st : 1 > < neuron(s L, J) : Neuron | x : X2 , st : 0 > ) = feedForward( C < link(s L, I, J) : Link | w : W , st : 1 > < neuron( L, I) : Neuron | x : X1 , st : 1 > < neuron(s L, J) : Neuron | x : (X2 + (X1 * W)) , st : 0 > ) . eq feedForward(C) = C [owise] . rl [sygmoid] : --- Compute sygmoid function for output < neuron(L, I) : Neuron | x : X , t : T , st : 0 > => < neuron(L, I) : Neuron | x : syg(_-_(X, T), L) , t : T , st : 1 > . ********** Compute output and error rules ************************************* op tol : -> Float . eq tol = 1.0e-1 . --- Tolerance value rl [computeError] : --- Compute error for last layer < neuron(2, I) : Neuron | x : X0 , st : 1 > outputPattern(N, I, X1, 0) < net(N0) : Net | e : E , st : 0 > => < neuron(2, I) : Neuron | x : X0 , st : 1 > outputPattern(N, I, X1, 1) --- < net(N0) : Net | e : (E + ((_-_(X1, X0)) * (_-_(X1, X0)))) , st : 0 > . < net(N0) : Net | e : (E + (_-_(X1, X0))) , st : 0 > . --- one neuron rl [setNet] : --- set label from 0 to 2 for the last Net < net(N) : Net | e : E , r : B , st : 0 > => --- < net(N) : Net | e : E , r : (E <= tol) , st : 2 > . < net(N) : Net | e : E , r : (abs(E) <= tol) , st : 2 > . --- one neuron rl [setNetTR] : --- set label from 0 to 1 for the last Net < net(N) : Net | e : E , r : B , st : 0 > => --- < net(N) : Net | e : E , r : (E <= tol) , st : 1 > . < net(N) : Net | e : E , r : (abs(E) <= tol) , st : 1 > . --- one neuron ********* Neural Net Model RULES (end) ***************************************** ******************************************************************************** endom ) (omod ANN-TRAINING is pr ANN-EVALUATION . class LinkTR | w+1 : Float . subclass LinkTR < Link . class NeuronTR | dt : Float . subclass NeuronTR < Neuron . --- Advanced net parameters op eta : -> Float . eq eta = 0.015 . --- Gain term or learning constant ********* VARIABLES ************************************************************ vars L L' I J K S S2 N0 N N1 N2 : Nat . var MW : Matrix . var B : Bool . vars X D T DT DT1 DT2 E P O W W1 X0 X1 X2 : Float . vars LX LT LW : FloatList . vars C C' : Configuration . ********* Training RULES ******************************************************* rl [resetLinkW+1] : C => resetLinkW+1(C) . op resetLinkW+1 : Configuration -> Configuration . eq resetLinkW+1( C < link(N, I, J) : Link | w : W , st : 1 > ) = resetLinkW+1( C < link(N, I, J) : LinkTR | w : W , w+1 : 0.0 , st : 2 > ) . eq resetLinkW+1(C) = C [owise] . rl [resetNeuronTR] : < neuron(L, I) : Neuron | x : X , t : T , st : 1 > => < neuron(L, I) : NeuronTR | x : X , t : T , dt : 0.0 , st : 2 > . rl [delta2] : --- Computes dt (delta) at neurons for output layer < neuron(2, I) : NeuronTR | x : X , dt : DT , st : 2 > outputPattern(N, I, D, 1) => < neuron(2, I) : NeuronTR | x : X , dt : ( X * ((_-_(1.0, X)) * (_-_(D, X))) ) , st : 3 > . rl [link] : C => link(C) . --- Computes w+1 (updated link) at links for output and hidden layers op link : Configuration -> Configuration . eq link( C < link(s L, I, J) : LinkTR | w : W , w+1 : W1 , st : 2 > < neuron(L, I) : NeuronTR | x : X1 , st : 2 > < neuron(s L, J) : NeuronTR | dt : DT , st : 3 > ) = link( C < link(s L, I, J) : LinkTR | w : W , w+1 : (W + (eta * (DT * X1))) , st : 3 > < neuron(L, I) : NeuronTR | x : X1 , st : 2 > < neuron(s L, J) : NeuronTR | dt : DT , st : 3 > ) . eq link(C) = C [owise] . rl [delta1] : C => delta1C(delta1B(delta1A(C))) . --- Compose delta1s ops delta1A delta1B delta1C : Configuration -> Configuration . --- delta1A: Initialize dt (delta) at neurons for hidden layer --- delta1B: Summatory of dt (delta) at neurons for hidden layer --- delta1C: Multiply dt (delta) by X(1-X) at neurons for hidden layer eq delta1A( C < neuron(1, I) : NeuronTR | dt : DT , st : 2 > ) = delta1A( C < neuron(1, I) : NeuronTR | dt : 0.0 , st : 4 > ) . eq delta1A(C) = C [owise] . eq delta1B( C < link(2, J, K) : LinkTR | w : W , st : 3 > < neuron(1, J) : NeuronTR | dt : DT1 , st : 4 > < neuron(2, K) : NeuronTR | dt : DT2 , st : 3 > ) = delta1B( C < link(2, J, K) : LinkTR | w : W , st : 4 > < neuron(1, J) : NeuronTR | dt : (DT1 + (DT2 * W)) , st : 4 > < neuron(2, K) : NeuronTR | dt : DT2 , st : 3 > ) . eq delta1B(C) = C [owise] . eq delta1C( C < neuron(1, J) : NeuronTR | x : X , dt : DT , st : 4 > ) = delta1C( C < neuron(1, J) : NeuronTR | x : X , dt : (DT * (X * (_-_(1.0, X)))) , st : 3 > ) . eq delta1C(C) = C [owise] . rl [switchLink] : C => switchLink(C) . --- Switch new links at w (w+1 with old links) op switchLink : Configuration -> Configuration . eq switchLink( C < link(N, I, J) : LinkTR | w : W , w+1 : W1 , st : s S > ) = switchLink( C < link(N, I, J) : LinkTR | w : W1 , w+1 : W , st : 0 > ) . eq switchLink(C) = C [owise] . rl [changeStatus] : --- Change status --- netStatus(N , N1 , N2 , N0) => netStatus(N1 , N1 , N2 , N0) . netStatus(N , N1 , N2 , N0) => netStatus(0 , N1 , N2 , N0) . endom) (omod ANN-DATA is pr ANN-TRAINING . ****************** VALUES FOR NEURAL NETWORK 25 HIDDEN NEURONS (begin) *************************** eq input0 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0) . eq desired0 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0) . eq threshold0 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0) . eq input1 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ) . eq desired1 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ) . eq threshold1 = (0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ) . eq link1 = ( --- 16 x 25 matrix -4.8250886e-001 4.5363079e-001 6.5476949e-002 4.3467396e-002 -1.6729622e-001 -2.3036128e-001 1.3381516e-001 -2.1399963e-001 1.9002639e-001 7.1749897e-001 -2.3380265e-001 3.5712836e-001 -3.5198136e-002 4.8261043e-001 5.5852667e-001 -1.6582959e-001 -4.9911758e-002 -3.6971164e-001 -5.1237763e-001 5.5481842e-001 6.3157585e-001 -4.9380344e-001 -1.4786950e-001 -1.9407065e-001 1.7005850e-001 ; -4.4826934e-002 4.5776921e-002 2.9223078e-002 5.9537451e-002 1.6405952e-001 -1.1279636e-002 -3.5346445e-002 1.0725564e-001 -5.2926832e-002 1.5820788e-001 7.2903151e-002 -5.9759258e-002 2.0281612e-001 1.2024970e-001 1.8195336e-001 6.3132544e-002 -8.6814812e-002 -6.4270008e-002 5.1192665e-002 4.3654304e-002 5.3618014e-002 -1.9159470e-002 9.7175410e-002 4.9255176e-002 -7.8692358e-002 ; 1.3258319e-001 1.0180803e-001 2.0102561e-001 3.0447946e-001 6.2239463e-001 8.8694735e-002 2.4663425e-002 6.9796879e-001 1.3975233e-002 -3.2033525e-001 4.4200973e-001 4.7744172e-001 8.1055711e-001 7.8016735e-001 3.9475781e-002 8.5006663e-001 -2.9759449e-001 -1.5125367e-001 1.1660556e-001 4.3522923e-001 2.0026078e-002 -2.0143962e-002 8.3609150e-001 5.5712369e-001 2.2174591e-001 ; 2.5645087e-001 1.5522454e-001 1.2266391e-001 2.2085180e-001 2.0907214e-001 1.3904020e-002 1.8098570e-001 4.6988373e-001 2.0711568e-001 3.7347102e-001 3.3101559e-001 3.2512755e-001 5.0137926e-001 5.1894528e-001 2.9263289e-001 4.4475098e-001 3.7773914e-001 3.9934557e-001 1.7021282e-001 2.1956388e-001 2.9777844e-001 1.3096671e-001 5.2833387e-001 3.8735353e-001 1.2016875e-001 ; 3.0054801e-002 -3.4962154e-003 6.2130811e-004 -6.7645966e-003 6.3299028e-002 -7.2959158e-002 1.7493184e-002 -6.4651289e-002 -1.4477771e-003 2.7620030e-002 -3.3028697e-002 6.6975847e-002 6.3989857e-002 -6.6345965e-002 -6.3189094e-003 -4.9521804e-002 2.9569408e-002 -5.5848111e-002 2.6331166e-002 2.4975779e-002 -1.3529772e-002 2.4303141e-002 -3.1109209e-002 -5.1552705e-002 1.6081208e-002 ; -1.3636578e-001 -1.3724761e-001 -6.4232715e-002 -8.8713701e-002 -3.7025771e-002 -1.2122400e-001 -8.3693984e-002 -4.4380946e-001 -1.1201755e-001 -7.6612681e-002 -1.6731713e-001 -1.1904388e-001 -1.4593774e-001 -3.5479100e-001 -3.4805732e-001 -4.1677543e-001 -2.3380105e-001 3.5789305e-002 -1.8809117e-002 -1.1571481e-001 -2.6927279e-001 -1.5565051e-001 -4.1143405e-001 -2.3565032e-001 -1.3407903e-001 ; 2.4272144e-001 -5.0955111e-001 -1.8939335e-002 -3.7684323e-002 -1.2490796e-001 -4.0626440e-002 -3.1583468e-002 -1.0873561e-001 -2.7193848e-002 -2.4428916e-001 -6.1608736e-003 -1.6503407e-001 -1.5828292e-001 -2.0240924e-001 -8.2698172e-002 -1.8851210e-001 1.7582957e-001 2.9690750e-001 2.4052391e-001 2.0950522e-002 -2.6071395e-001 7.0733093e-002 -2.1472670e-001 -5.1220171e-002 4.7011709e-002 ; -2.7816793e-001 -5.4496043e-002 -9.3587702e-003 -1.0551629e-002 -1.3891398e-001 4.0754448e-002 3.2584164e-004 -1.2667984e-001 -1.5215044e-002 3.0890681e-001 2.6820797e-002 2.4190706e-001 6.0684612e-002 7.6706650e-002 -1.8766513e-001 3.0587206e-004 -3.1133364e-001 3.6879001e-002 -4.7547439e-002 9.4353450e-003 -8.2401902e-002 -2.5971258e-001 5.4533600e-002 1.2721559e-002 -1.6823923e-001 ; -9.5399354e-002 -2.6468405e-001 -3.8216232e-002 -1.0941405e-001 -2.8412532e-001 -2.3538706e-001 -1.9529160e-002 -4.0063943e-001 -3.1759905e-002 -5.4206499e-001 -2.1461616e-001 -1.3749476e-001 -3.2752082e-001 -9.1058665e-001 -6.6399488e-001 -3.9377153e-001 -1.2678833e-001 3.7000417e-001 -5.7511807e-002 5.3519090e-002 -1.0444350e-001 -7.3302149e-002 -4.3084382e-001 -2.4978076e-001 -9.6291794e-002 ; -7.0415658e-002 -2.4252911e-001 -2.9711251e-002 -5.8185524e-002 -1.4001934e-001 -8.4081928e-002 -2.7132469e-002 -2.6838788e-001 -4.8907921e-002 -1.3302188e-001 -8.7433412e-002 -4.6315345e-002 -1.4034942e-001 -3.4955465e-001 -3.2078649e-001 -2.5259251e-001 -1.2256299e-001 1.8796557e-001 3.3708174e-002 -1.3062172e-002 -1.8304383e-001 -1.0628433e-001 -2.4441710e-001 -1.3801374e-001 -8.8757499e-002 ; 1.3910428e-001 -2.6353011e-001 2.4795357e-003 4.2505146e-002 1.9086378e-002 -2.0859524e-001 -4.1555675e-001 -1.9183021e-001 -4.8758867e-001 4.6531241e-001 -2.1427430e-002 3.2903699e-001 6.2252315e-002 1.0603777e-001 1.9308840e-001 -1.4537547e-001 -6.4611511e-001 -1.3279252e-002 -5.3164527e-001 -1.9218741e-001 -6.2448487e-002 -2.0800691e-001 1.2041912e-002 -4.4953236e-002 8.4527683e-002 ; -1.0688380e-001 -3.8846903e-002 -6.9136903e-003 -1.8173291e-002 -1.6544749e-001 -3.3421347e-001 1.2564838e-001 -4.5611686e-001 9.2323689e-002 2.5664131e-001 -6.2395207e-001 -1.0889541e-001 1.0504849e-001 -1.9505240e-002 1.8403070e-001 -1.4556490e-001 4.8463034e-001 5.8877289e-002 5.0879632e-001 -5.0437089e-001 -1.6298157e-001 3.3064665e-001 -3.2444119e-001 -4.7587604e-001 5.9015540e-001 ; 4.7281938e-001 1.9153424e-001 8.5376613e-002 8.5133887e-002 1.9701186e-001 1.2214658e-001 3.2138586e-002 3.7975242e-001 1.0808732e-001 3.3193123e-002 7.7789015e-002 -8.4347167e-002 -1.6991265e-001 -1.9536097e-001 2.3121957e-001 5.6813287e-002 -9.6958663e-002 2.0913716e-001 -3.8007311e-001 2.0511879e-001 -1.0078555e-001 4.0298224e-001 -1.3376430e-002 4.4336537e-002 5.2530763e-003 ; -2.2383590e-001 -5.7868461e-002 -6.9099404e-002 -1.5376818e-001 -1.5646114e-001 9.9998048e-001 1.1835694e-001 1.5426480e-001 1.0484011e-001 -8.2841668e-002 -6.6945162e-003 -3.7290371e-002 -3.2678416e-001 4.6191678e-002 2.3833608e-001 -2.3909841e-001 7.8104229e-001 1.1895500e-001 3.2825639e-001 8.9498240e-002 -3.8783403e-001 -2.5245633e-001 -3.9988072e-001 -2.4541921e-001 -7.5652438e-001 ; 7.3820063e-001 2.1363050e-001 1.3954170e-001 2.4933548e-001 3.5942429e-001 4.1970163e-001 4.4781809e-001 6.9008171e-001 4.5542819e-001 3.0227011e-001 4.2087367e-001 6.6034135e-001 5.9364503e-001 8.4479516e-001 2.4325379e-001 3.2752714e-001 2.6579113e-001 8.4258551e-001 4.4163179e-002 4.3635884e-001 7.9807419e-001 6.3756404e-001 2.0929530e-001 2.5872354e-001 3.1124352e-001 ; 7.8893440e-002 1.8663659e-001 1.4644549e-001 1.9404490e-001 2.2962533e-001 2.1910767e-001 -2.4428796e-001 4.9479793e-001 -3.1729137e-001 -1.1202294e-001 3.8063112e-001 -6.8418434e-001 1.3662743e-001 1.3588505e-001 2.3512491e-001 5.5071301e-001 -5.8849066e-002 -6.1977542e-001 -2.9267369e-002 -2.0958865e-001 -3.7896109e-001 1.8258695e-001 6.9691460e-001 5.1827369e-001 -1.7912133e-001 ) . eq input2 = 0.0 . eq desired2 = 0.0 . eq threshold2 = 0.0 . eq link2 = ( --- 25 x 1 matrix 6.2689021e-001 ; -1.4514256e+000 ; -1.3101203e+000 ; -6.4610635e-001 ; -9.3806551e-001 ; -1.6305813e+000 ; -1.0686268e-001 ; 1.0691993e+000 ; 7.0732380e-002 ; 1.5866312e+000 ; 5.8055289e-001 ; 1.2042482e+000 ; 6.5998048e-001 ; 1.2338062e+000 ; 7.9085231e-001 ; 5.2127067e-001 ; 1.6457244e+000 ; 9.8959204e-001 ; 1.6130673e+000 ; 1.2082090e+000 ; 1.1699290e+000 ; 7.2341290e-001 ; 5.8300167e-001 ; 4.4453142e-001 ; 2.0685801e+000 ) . *** GLAUCOMA Train Set *** 106 eyes data for 16 parameters (edad camara PIO papila fijacion NS TS NI TI media *** desv-norm-sup desv-norm-inf desv-norm-tem desv-norm-nas nro-fibras med-espesor) *** and expert-diagnosis eq inputPattern(1) = (97.0000 3.0000 20.0000 3.0000 0.6250 41.1650 41.4975 43.1700 40.9575 41.6975 -28.0900 -17.6500 8.9000 1.9800 28.0000 58.9000) . eq outputPattern(1) = 1.0000 . eq inputPattern(2) = (54.0000 2.0000 22.0000 0.0000 0.8824 43.2000 43.4775 43.4925 42.5625 43.1831 72.7700 71.1000 49.7200 64.7700 28.0000 60.7000) . eq outputPattern(2) = 0.4000 . eq inputPattern(3) = (46.0000 2.0000 21.0000 1.0000 0.0000 41.0000 42.5675 42.4500 42.3000 42.0794 -23.0000 -19.0000 8.0000 10.0000 49.0000 63.0000) . eq outputPattern(3) = 0.8000 . eq inputPattern(4) = (56.0000 2.0000 21.0000 0.0000 0.0000 39.6175 39.6850 39.7500 38.6150 39.4169 -17.0000 -7.0000 4.0000 19.0000 33.0000 64.0000) . eq outputPattern(4) = 0.4000 . eq inputPattern(5) = (56.0000 3.0000 25.0000 2.0000 0.4375 42.6000 42.1175 42.3575 43.7900 42.7163 -19.0000 -32.0000 17.0000 29.0000 69.0000 64.0000) . eq outputPattern(5) = 0.8000 . eq inputPattern(6) = (64.0000 2.0000 24.0000 1.0000 0.1429 38.1875 38.5175 38.5450 36.2925 37.8856 -9.0000 -19.0000 19.0000 15.0000 44.0000 65.0000) . eq outputPattern(6) = 1.0000 . eq inputPattern(7) = (58.0000 2.0000 12.0000 1.0000 0.4000 40.4000 40.6225 41.1425 40.9000 40.7662 -15.3800 -6.2200 13.2200 21.2300 48.0000 66.3000) . eq outputPattern(7) = 0.8000 . eq inputPattern(8) = (45.0000 3.0000 23.0000 0.0000 0.1875 42.4500 41.7075 42.8275 42.2125 42.2994 -3.1100 18.6300 13.4200 4.2900 20.0000 66.5000) . eq outputPattern(8) = 0.2000 . eq inputPattern(9) = (36.0000 3.0000 23.0000 0.0000 0.0714 38.7500 40.6650 38.1650 39.8000 39.3450 -9.0000 2.0000 5.0000 15.0000 21.0000 68.0000) . eq outputPattern(9) = 0.2000 . eq inputPattern(10) = (76.0000 2.0000 26.0000 1.0000 0.0000 40.0250 39.0575 40.5850 40.9800 40.1619 -16.0000 -11.0000 22.0000 28.0000 60.0000 69.0000) . eq outputPattern(10) = 1.0000 . eq inputPattern(11) = (39.0000 2.0000 24.0000 1.0000 0.2000 41.0000 41.7000 41.7025 43.0000 41.8506 -7.0000 -21.0000 15.0000 27.0000 63.0000 69.0000) . eq outputPattern(11) = 1.0000 . eq inputPattern(12) = (61.0000 2.0000 23.0000 2.0000 0.4286 38.1500 40.0400 38.7000 40.0325 39.2306 -6.0000 -13.0000 10.0000 17.0000 49.0000 69.0000) . eq outputPattern(12) = 1.0000 . eq inputPattern(13) = (40.0000 2.0000 20.0000 0.0000 0.0000 41.3500 42.0575 41.7800 43.5500 42.1844 -7.0900 2.1400 -3.2400 9.9400 16.0000 69.6000) . eq outputPattern(13) = 0.0000 . eq inputPattern(14) = (46.0000 2.0000 22.0000 0.0000 0.8750 41.5000 41.0375 42.5150 43.7625 42.2037 -4.5000 8.7100 4.9800 7.1500 17.0000 69.7000) . eq outputPattern(14) = 0.2000 . eq inputPattern(15) = (47.0000 2.0000 22.0000 3.0000 0.0000 36.0000 33.4675 39.8575 27.9492 34.3186 -24.0000 2.0000 18.0000 12.0000 53.0000 70.0000) . eq outputPattern(15) = 1.0000 . eq inputPattern(16) = (53.0000 2.0000 20.0000 0.0000 0.0000 42.7000 42.5625 41.7875 42.3275 42.3444 -1.2500 -0.0600 6.6700 10.0400 20.0000 70.5000) . eq outputPattern(16) = 0.0000 . eq inputPattern(17) = (47.0000 2.0000 21.0000 0.0000 0.8000 41.0500 41.7500 41.6350 43.4000 41.9588 -12.0000 -1.0000 11.0000 13.0000 36.0000 71.0000) . eq outputPattern(17) = 0.4000 . eq inputPattern(18) = (62.0000 2.0000 25.0000 2.0000 0.4286 39.4150 39.3725 40.9075 39.9775 39.9181 -14.0000 -8.0000 27.0000 6.0000 51.0000 71.0000) . eq outputPattern(18) = 1.0000 . eq inputPattern(19) = (58.0000 2.0000 25.0000 2.0000 0.9286 39.8000 40.5000 38.7925 40.4500 39.8856 -8.3600 -0.9300 28.1900 10.9600 50.0000 71.8000) . eq outputPattern(19) = 1.0000 . eq inputPattern(20) = (63.0000 2.0000 25.0000 1.0000 0.0667 26.7750 25.6000 26.2750 26.0625 26.1781 -16.0000 0.0000 16.0000 24.0000 48.0000 73.0000) . eq outputPattern(20) = 1.0000 . eq inputPattern(21) = (68.0000 1.0000 28.0000 1.0000 0.3125 41.3175 42.8125 42.0925 43.1875 42.3525 -13.0000 20.0000 11.0000 13.0000 28.0000 74.0000) . eq outputPattern(21) = 0.6000 . eq inputPattern(22) = (28.0000 3.0000 26.0000 2.0000 0.5000 40.3000 41.1475 41.2250 42.7500 41.3556 -16.0000 11.0000 13.0000 23.0000 29.0000 74.0000) . eq outputPattern(22) = 0.8000 . eq inputPattern(23) = (59.0000 3.0000 23.0000 1.0000 0.5000 37.2425 35.2575 36.2175 37.7150 36.6081 -15.0000 26.0000 22.0000 19.0000 57.0000 74.0000) . eq outputPattern(23) = 1.0000 . eq inputPattern(24) = (67.0000 2.0000 16.0000 1.0000 0.2500 40.1500 41.3500 41.1750 40.0000 40.6688 -7.0000 1.0000 42.0000 27.0000 83.0000 74.0000) . eq outputPattern(24) = 1.0000 . eq inputPattern(25) = (60.0000 3.0000 26.0000 3.0000 0.7667 6.7500 11.8750 19.3125 9.1250 11.7656 -14.5000 -4.0300 12.6900 30.9000 56.0000 74.5000) . eq outputPattern(25) = 1.0000 . eq inputPattern(26) = (61.0000 3.0000 23.0000 1.0000 0.0000 39.1500 39.8775 38.1525 39.3975 39.1444 -6.0000 9.0000 30.0000 11.0000 46.0000 75.0000) . eq outputPattern(26) = 1.0000 . eq inputPattern(27) = (55.0000 1.0000 21.0000 0.0000 0.0714 37.0500 36.0850 38.8350 40.1000 38.0175 16.0000 11.0000 11.0000 18.0000 12.0000 75.0000) . eq outputPattern(27) = 0.2000 . eq inputPattern(28) = (85.0000 1.0000 40.0000 2.0000 0.8000 39.6175 41.3600 41.5425 42.7625 41.3206 -2.0000 8.0000 20.0000 12.0000 50.0000 75.0000) . eq outputPattern(28) = 1.0000 . eq inputPattern(29) = (40.0000 2.0000 22.0000 0.0000 0.0000 41.8750 41.1250 41.5925 40.4500 41.2606 -18.0000 4.0000 27.0000 16.0000 61.0000 75.0000) . eq outputPattern(29) = 0.6000 . eq inputPattern(30) = (76.0000 2.0000 21.0000 1.0000 0.1176 36.7950 36.5000 35.4100 36.0825 36.1969 -10.0000 9.0000 16.0000 18.0000 44.0000 75.0000) . eq outputPattern(30) = 0.8000 . eq inputPattern(31) = (66.0000 1.0000 60.0000 3.0000 0.2400 1.1375 7.8150 6.5600 14.1700 7.4206 -21.0000 -15.0000 26.0000 16.0000 75.0000 75.0000) . eq outputPattern(31) = 1.0000 . eq inputPattern(32) = (65.0000 2.0000 25.0000 1.0000 0.0625 42.9500 42.5625 42.7925 42.3625 42.6669 -6.7100 19.6500 16.9500 18.6600 48.0000 75.5000) . eq outputPattern(32) = 0.8000 . eq inputPattern(33) = (37.0000 2.0000 21.0000 0.0000 0.0000 43.2500 43.6650 33.4475 42.1125 40.6187 5.3900 28.1500 25.8500 7.3500 17.0000 77.2000) . eq outputPattern(33) = 0.2000 . eq inputPattern(34) = (66.0000 2.0000 18.0000 2.0000 0.0000 40.9125 41.8500 41.0175 41.9675 41.4369 13.0000 8.0000 19.0000 12.0000 26.0000 79.0000) . eq outputPattern(34) = 0.8000 . eq inputPattern(35) = (72.0000 2.0000 26.0000 1.0000 0.0000 39.3975 38.8525 38.6650 38.0600 38.7437 -2.0000 15.0000 19.0000 15.0000 38.0000 79.0000) . eq outputPattern(35) = 0.6000 . eq inputPattern(36) = (40.0000 1.0000 28.0000 1.0000 0.1333 42.6000 41.3325 41.4850 41.5000 41.7294 10.8400 -15.3300 42.6600 56.8600 46.0000 80.0000) . eq outputPattern(36) = 0.8000 . eq inputPattern(37) = (60.0000 2.0000 22.0000 0.0000 0.5294 42.6500 44.0000 42.7125 42.3625 42.9312 6.0500 32.3300 16.6900 18.3900 28.0000 81.9000) . eq outputPattern(37) = 0.4000 . eq inputPattern(38) = (50.0000 1.0000 25.0000 0.0000 0.1429 41.1000 40.1325 41.9850 44.1875 41.8513 2.0000 33.0000 14.0000 19.0000 23.0000 82.0000) . eq outputPattern(38) = 0.2000 . eq inputPattern(39) = (58.0000 1.0000 25.0000 1.0000 0.8667 39.2850 38.8175 37.5675 41.8300 39.3750 -13.0000 21.0000 22.0000 29.0000 47.0000 82.0000) . eq outputPattern(39) = 1.0000 . eq inputPattern(40) = (76.0000 1.0000 27.0000 1.0000 0.0000 40.5900 42.3500 41.5175 41.8175 41.5688 2.0000 -12.0000 42.0000 46.0000 55.0000 82.0000) . eq outputPattern(40) = 1.0000 . eq inputPattern(41) = (67.0000 2.0000 26.0000 2.0000 0.3333 40.7000 40.5400 40.6975 42.2625 41.0500 23.8300 14.3400 25.1800 15.2400 13.0000 82.3000) . eq outputPattern(41) = 0.8000 . eq inputPattern(42) = (54.0000 2.0000 24.0000 0.0000 0.0000 39.7500 41.2150 41.4150 41.8050 41.0463 8.0000 30.0000 17.0000 25.0000 28.0000 84.0000) . eq outputPattern(42) = 1.0000 . eq inputPattern(43) = (49.0000 2.0000 23.0000 1.0000 0.0000 41.5500 42.2000 41.4850 43.3500 42.1463 7.0000 41.0000 13.0000 33.0000 18.0000 84.0000) . eq outputPattern(43) = 0.6000 . eq inputPattern(44) = (49.0000 2.0000 21.0000 1.0000 0.6250 42.4500 41.8125 42.3175 43.0000 42.3950 22.0000 29.0000 30.0000 13.0000 16.0000 86.0000) . eq outputPattern(44) = 0.6000 . eq inputPattern(45) = (72.0000 2.0000 22.0000 1.0000 0.0714 40.1175 38.3025 41.0500 38.0625 39.3831 22.0000 29.0000 34.0000 22.0000 27.0000 86.0000) . eq outputPattern(45) = 0.6000 . eq inputPattern(46) = (61.0000 2.0000 24.0000 1.0000 0.5625 42.6500 42.3125 43.3050 43.5500 42.9544 13.6100 39.9800 28.3300 16.0500 40.0000 87.7000) . eq outputPattern(46) = 1.0000 . eq inputPattern(47) = (77.0000 2.0000 26.0000 1.0000 0.0000 38.0150 38.9500 38.1150 42.8150 39.4738 8.0000 35.0000 29.0000 29.0000 38.0000 88.0000) . eq outputPattern(47) = 0.6000 . eq inputPattern(48) = (40.0000 3.0000 26.0000 1.0000 0.1176 43.5000 44.0000 43.2900 44.2900 43.7700 34.9400 27.2300 38.8800 16.0200 14.0000 90.0000) . eq outputPattern(48) = 0.6000 . eq inputPattern(49) = (53.0000 3.0000 24.0000 1.0000 0.6250 41.3500 41.2275 43.0125 42.5150 42.0262 23.8200 32.0000 29.9500 18.3900 19.0000 90.7000) . eq outputPattern(49) = 0.6000 . eq inputPattern(50) = (33.0000 3.0000 23.0000 0.0000 0.0000 43.3000 44.3500 43.2350 44.8750 43.9400 23.0000 43.0000 33.0000 18.0000 21.0000 94.0000) . eq outputPattern(50) = 0.2000 . eq inputPattern(51) = (55.0000 2.0000 20.0000 0.0000 0.4118 42.8000 43.9375 43.3050 44.4375 43.6200 54.7200 64.4400 42.8200 42.4100 21.0000 109.7000) . eq outputPattern(51) = 0.0000 . eq inputPattern(52) = (32.0000 2.0000 23.0000 1.0000 0.0000 39.0175 39.6850 38.8750 40.7925 39.5925 33.0000 51.0000 34.0000 25.0000 25.0000 112.0000) . eq outputPattern(52) = 0.6000 . eq inputPattern(53) = (60.0000 1.0000 20.0000 2.0000 0.2000 40.6000 42.1500 41.4175 41.2500 41.3544 48.0000 59.0000 37.0000 76.0000 33.0000 117.0000) . eq outputPattern(53) = 0.8000 . eq inputPattern(54) = (97.0000 3.0000 21.0000 3.0000 0.3750 40.7475 38.7050 41.0000 40.8325 40.3212 83.5600 110.5000 43.3300 67.1300 37.0000 68.7000) . eq outputPattern(54) = 1.0000 . eq inputPattern(55) = (54.0000 2.0000 22.0000 0.0000 0.0588 43.4975 43.4150 44.0500 44.0500 43.7531 4.8800 22.2500 -1.3600 14.1800 17.0000 71.6000) . eq outputPattern(55) = 0.2000 . eq inputPattern(56) = (46.0000 2.0000 21.0000 1.0000 0.8000 42.2675 41.7750 42.8000 41.9000 42.1856 -5.0000 -1.0000 21.0000 17.0000 37.0000 75.0000) . eq outputPattern(56) = 0.6000 . eq inputPattern(57) = (56.0000 2.0000 22.0000 0.0000 0.1875 41.9000 41.9175 42.9500 42.0000 42.1919 -13.0000 -6.0000 13.0000 7.0000 33.0000 67.0000) . eq outputPattern(57) = 0.4000 . eq inputPattern(58) = (56.0000 3.0000 25.0000 1.0000 0.3333 41.8000 41.6000 41.9625 41.7500 41.7781 -4.0000 -8.0000 32.0000 10.0000 37.0000 72.0000) . eq outputPattern(58) = 0.6000 . eq inputPattern(59) = (64.0000 2.0000 24.0000 1.0000 0.0000 39.0175 38.2000 38.7100 38.5450 38.6181 -17.0000 10.0000 -5.0000 12.0000 31.0000 65.0000) . eq outputPattern(59) = 0.6000 . eq inputPattern(60) = (58.0000 2.0000 17.0000 1.0000 0.1333 42.9475 40.6150 42.6375 42.1775 42.0944 -11.2000 -4.9700 15.6200 14.4400 36.0000 70.9000) . eq outputPattern(60) = 0.6000 . eq inputPattern(61) = (45.0000 3.0000 21.0000 0.0000 0.4667 41.3150 41.3150 41.9000 42.3025 41.7081 -7.6600 33.1200 -0.7700 13.4000 14.0000 68.5000) . eq outputPattern(61) = 0.2000 . eq inputPattern(62) = (36.0000 3.0000 22.0000 0.0000 0.4000 39.5500 38.6975 40.5400 40.4750 39.8156 -10.0000 -28.0000 17.0000 9.0000 31.0000 65.0000) . eq outputPattern(62) = 0.4000 . eq inputPattern(63) = (76.0000 2.0000 25.0000 1.0000 0.6429 37.1250 39.1000 40.1525 40.5000 39.2194 7.0000 -4.0000 36.0000 12.0000 30.0000 75.0000) . eq outputPattern(63) = 0.6000 . eq inputPattern(64) = (39.0000 2.0000 23.0000 1.0000 0.2000 42.3000 41.5000 42.0500 41.7675 41.9044 -15.0000 25.0000 29.0000 27.0000 64.0000 82.0000) . eq outputPattern(64) = 1.0000 . eq inputPattern(65) = (61.0000 2.0000 20.0000 2.0000 0.1429 38.8500 38.0375 38.3150 39.2075 38.6025 10.0000 36.0000 32.0000 30.0000 43.0000 88.0000) . eq outputPattern(65) = 1.0000 . eq inputPattern(66) = (40.0000 2.0000 24.0000 0.0000 0.9375 43.1975 41.5150 44.0000 42.4550 42.7919 17.9800 -4.2500 12.7100 -6.0200 9.0000 65.6000) . eq outputPattern(66) = 0.2000 . eq inputPattern(67) = (46.0000 2.0000 22.0000 0.0000 0.5625 42.1725 42.1325 43.4625 43.4275 42.7987 14.3700 25.8400 -2.9300 13.7800 10.0000 80.8000) . eq outputPattern(67) = 0.2000 . eq inputPattern(68) = (47.0000 2.0000 28.0000 3.0000 0.5625 30.1000 28.8350 33.8000 28.5025 30.3094 9.0000 67.0000 85.0000 23.0000 54.0000 97.0000) . eq outputPattern(68) = 1.0000 . eq inputPattern(69) = (53.0000 2.0000 22.0000 0.0000 0.6250 43.1325 41.7000 43.6500 41.6275 42.5275 11.1400 19.1800 4.1700 18.6000 17.0000 80.1000) . eq outputPattern(69) = 0.2000 . eq inputPattern(70) = (47.0000 2.0000 21.0000 0.0000 0.0000 39.8850 39.7700 40.9750 41.7525 40.5956 5.0000 15.0000 5.0000 6.0000 11.0000 75.0000) . eq outputPattern(70) = 0.2000 . eq inputPattern(71) = (62.0000 2.0000 25.0000 2.0000 0.1875 39.3000 39.9975 41.3000 40.8900 40.3719 -7.0000 20.0000 10.0000 25.0000 37.0000 80.0000) . eq outputPattern(71) = 0.8000 . eq inputPattern(72) = (58.0000 2.0000 25.0000 2.0000 0.0000 39.0325 38.0400 39.9500 38.5375 38.8900 -13.1100 10.5900 30.2900 16.7700 67.0000 78.7000) . eq outputPattern(72) = 1.0000 . eq inputPattern(73) = (63.0000 2.0000 25.0000 1.0000 0.0714 26.0525 26.9175 25.7500 26.0000 26.1800 13.0000 -16.0000 25.0000 21.0000 26.0000 73.0000) . eq outputPattern(73) = 0.6000 . eq inputPattern(74) = (68.0000 1.0000 28.0000 1.0000 0.8750 42.8675 41.6675 42.7500 41.7500 42.2587 -5.0000 -6.0000 14.0000 12.0000 34.0000 68.0000) . eq outputPattern(74) = 0.6000 . eq inputPattern(75) = (28.0000 3.0000 25.0000 1.0000 0.2941 42.5750 42.5500 44.4875 43.6225 43.3088 -21.0000 -3.0000 2.0000 5.0000 26.0000 70.0000) . eq outputPattern(75) = 0.6000 . eq inputPattern(76) = (59.0000 3.0000 23.0000 1.0000 0.5000 36.3825 35.1400 38.2500 36.5875 36.5900 -2.0000 28.0000 11.0000 18.0000 35.0000 76.0000) . eq outputPattern(76) = 0.6000 . eq inputPattern(77) = (67.0000 1.0000 24.0000 1.0000 0.0000 40.2500 39.2500 41.7500 40.1000 40.3375 6.0000 -15.0000 35.0000 22.0000 72.0000 77.0000) . eq outputPattern(77) = 1.0000 . eq inputPattern(78) = (60.0000 3.0000 25.0000 0.0000 0.5625 42.4650 41.6500 43.0500 42.7300 42.4738 11.4700 37.9500 11.5600 26.7600 30.0000 84.0000) . eq outputPattern(78) = 0.4000 . eq inputPattern(79) = (61.0000 3.0000 23.0000 1.0000 0.0000 44.1000 42.3325 43.6875 44.1500 43.5675 -12.0000 4.0000 1.0000 10.0000 32.0000 65.0000) . eq outputPattern(79) = 0.6000 . eq inputPattern(80) = (55.0000 1.0000 21.0000 0.0000 0.2857 40.8000 40.0025 40.6000 39.7250 40.2819 8.0000 18.0000 8.0000 15.0000 14.0000 74.0000) . eq outputPattern(80) = 0.2000 . eq inputPattern(81) = (85.0000 1.0000 27.0000 2.0000 0.7895 40.4175 38.9175 41.1750 38.5000 39.7525 2.0000 23.0000 11.0000 24.0000 38.0000 75.0000) . eq outputPattern(81) = 1.0000 . eq inputPattern(82) = (40.0000 2.0000 22.0000 0.0000 0.0000 41.7500 40.5000 42.6750 40.6525 41.3944 -4.0000 -21.0000 29.0000 9.0000 54.0000 77.0000) . eq outputPattern(82) = 0.6000 . eq inputPattern(83) = (76.0000 2.0000 21.0000 1.0000 0.1765 35.5900 33.4975 36.1625 36.4125 35.4156 12.0000 10.0000 20.0000 33.0000 33.0000 82.0000) . eq outputPattern(83) = 0.6000 . eq inputPattern(84) = (66.0000 1.0000 25.0000 1.0000 0.5714 37.5850 36.9025 39.4000 39.0025 38.2225 22.0000 33.0000 17.0000 26.0000 19.0000 90.0000) . eq outputPattern(84) = 0.6000 . eq inputPattern(85) = (65.0000 2.0000 21.0000 0.0000 0.2500 43.5975 41.9975 43.3000 43.0100 42.9763 9.8700 30.5400 -1.3900 11.1600 12.0000 74.9000) . eq outputPattern(85) = 0.2000 . eq inputPattern(86) = (37.0000 2.0000 22.0000 0.0000 0.2941 43.4825 43.1650 43.9500 42.8525 43.3625 -12.0000 27.4900 -2.1900 12.4100 22.0000 75.9000) . eq outputPattern(86) = 0.2000 . eq inputPattern(87) = (66.0000 2.0000 17.0000 2.0000 0.0000 37.9575 36.3175 40.4675 39.7925 38.6337 -13.6200 9.0600 10.2100 16.9600 44.0000 71.3000) . eq outputPattern(87) = 1.0000 . eq inputPattern(88) = (72.0000 2.0000 26.0000 1.0000 0.9333 41.6825 40.1825 41.1000 40.7000 40.9162 -1.0000 14.0000 12.0000 25.0000 39.0000 78.0000) . eq outputPattern(88) = 0.6000 . eq inputPattern(89) = (40.0000 1.0000 26.0000 1.0000 0.2500 43.0475 42.2650 42.8000 43.0875 42.8000 -0.3400 -21.0400 21.0100 18.3400 37.0000 69.4000) . eq outputPattern(89) = 0.6000 . eq inputPattern(90) = (60.0000 2.0000 20.0000 0.0000 0.2500 42.7475 41.2000 42.4000 41.5750 41.9806 31.4500 56.6600 13.4300 37.3700 17.0000 91.1400) . eq outputPattern(90) = 0.0000 . eq inputPattern(91) = (50.0000 1.0000 25.0000 0.0000 0.1429 39.7150 39.7325 40.8000 39.6250 39.9681 -9.0000 29.0000 -2.0000 22.0000 18.0000 74.0000) . eq outputPattern(91) = 0.2000 . eq inputPattern(92) = (58.0000 1.0000 25.0000 1.0000 0.6471 39.0000 33.9525 40.5500 36.6350 37.5344 4.0000 19.0000 49.0000 38.0000 51.0000 87.0000) . eq outputPattern(92) = 1.0000 . eq inputPattern(93) = (76.0000 1.0000 26.0000 1.0000 0.0000 39.2375 39.3775 40.6850 37.5700 39.2175 57.0000 4.0000 55.0000 30.0000 13.0000 98.0000) . eq outputPattern(93) = 0.4000 . eq inputPattern(94) = (67.0000 2.0000 26.0000 2.0000 0.0667 41.8000 40.6325 42.0000 41.3075 41.4350 16.7600 -7.8600 9.6900 10.5900 13.0000 75.5000) . eq outputPattern(94) = 0.8000 . eq inputPattern(95) = (54.0000 2.0000 25.0000 0.0000 0.5385 38.9325 40.0325 39.0825 39.0150 39.2656 -2.0000 42.0000 6.0000 14.0000 23.0000 80.0000) . eq outputPattern(95) = 1.0000 . eq inputPattern(96) = (49.0000 2.0000 25.0000 1.0000 0.0000 39.1000 35.1525 41.6000 38.3800 38.5581 -1.0000 21.0000 19.0000 28.0000 34.0000 83.0000) . eq outputPattern(96) = 0.6000 . eq inputPattern(97) = (49.0000 2.0000 23.0000 1.0000 0.0000 42.1000 41.1250 46.2250 38.9000 42.0875 2.0000 16.0000 15.0000 16.0000 24.0000 78.0000) . eq outputPattern(97) = 0.6000 . eq inputPattern(98) = (72.0000 2.0000 22.0000 1.0000 0.2941 39.0375 35.1775 38.9675 31.8350 36.2544 23.0000 51.0000 35.0000 34.0000 62.0000 101.0000) . eq outputPattern(98) = 1.0000 . eq inputPattern(99) = (61.0000 2.0000 24.0000 1.0000 0.7647 44.5825 42.8500 44.0000 42.1525 43.3963 100.2700 109.7700 52.3800 66.2800 41.0000 80.0000) . eq outputPattern(99) = 1.0000 . eq inputPattern(100) = (77.0000 2.0000 26.0000 1.0000 0.0000 36.7150 36.1300 37.5325 37.2150 36.8981 -24.0000 -9.0000 11.0000 10.0000 62.0000 61.0000) . eq outputPattern(100) = 1.0000 . eq inputPattern(101) = (40.0000 3.0000 26.0000 1.0000 0.6250 41.1250 42.7900 42.7350 42.7700 42.3550 16.0700 43.0600 8.0600 32.1900 25.0000 86.4000) . eq outputPattern(101) = 0.6000 . eq inputPattern(102) = (53.0000 3.0000 24.0000 1.0000 0.8235 42.2975 41.7800 43.2250 43.5400 42.7106 18.5600 21.5300 4.1300 27.2300 23.0000 85.7000) . eq outputPattern(102) = 0.6000 . eq inputPattern(103) = (33.0000 3.0000 22.0000 0.0000 0.0000 43.6500 42.3250 43.7000 43.5500 43.3062 0.0000 46.0000 5.0000 29.0000 27.0000 92.0000) . eq outputPattern(103) = 0.4000 . eq inputPattern(104) = (55.0000 2.0000 20.0000 0.0000 0.5000 42.7150 42.1000 43.6750 43.2700 42.9400 56.2700 46.8400 23.0500 42.8700 14.0000 99.5000) . eq outputPattern(104) = 0.0000 . eq inputPattern(105) = (32.0000 2.0000 23.0000 1.0000 0.9231 39.9500 39.5850 40.1750 40.2500 39.9900 -24.0000 7.0000 8.0000 11.0000 46.0000 72.0000) . eq outputPattern(105) = 1.0000 . eq inputPattern(106) = (60.0000 1.0000 23.0000 2.0000 0.0000 42.1750 41.7500 42.6500 41.7925 42.0919 92.0000 100.0000 25.0000 49.0000 8.0000 126.0000) . eq outputPattern(106) = 0.8000 . ************************* VALUES FOR NEURAL NETWORK (end) ********************** endom) ********** STRATEGIES MODULE (begin) ****************************************** (smod STRAT-ANN is vars L L' : Nat . --- strat 1: evaluation ANN strat evaluateANN : @ Configuration . sd evaluateANN := ( nextPattern ; one(resetNeuron) ! ; top(resetLink) ; one(introducePattern) ! ; top(feedForward) ; one(sygmoid[L <- 1]) ! ; top(feedForward) ; one(sygmoid[L <- 2]) ! ; one(computeError) ! ; setNet ) . --- strat 2: training ANN strat trainANN : @ Configuration . sd trainANN := ( nextPatternTR ; one(resetNeuron) ! ; one(introducePattern) ! ; top(feedForward) ; one(sygmoid[L <- 1]) ! ; top(feedForward) ; one(sygmoid[L <- 2]) ! ; one(computeError) ! ; setNetTR ; top(resetLinkW+1) ; one(resetNeuronTR) ! ; one(delta2) ! ; top(link) ; top(delta1) ; top(link) ; top(switchLink) ) . endsm ) ********** STRATEGIES MODULE (end) ******************************************** eof (srew ann netStatus(0 , 53 , 1 , 106) using one(trainANN) ! .) (cont using changeStatus ; one(evaluateANN) ! .) (srew ann netStatus(0 , 0 , 0 , 106) using one(evaluateANN) ! .) quit