1. Test Modules
  2. Training Characteristics
    1. Input Learning
      1. Gradient Descent
      2. Conjugate Gradient Descent
      3. Limited-Memory BFGS
    2. Results
  3. Results

Subreport: Logs for com.simiacryptus.ref.lang.ReferenceCountingBase

Test Modules

Using Seed 9089950157246108672

Training Characteristics

Input Learning

In this apply, we use a network to learn this target input, given it's pre-evaluated output:

TrainingTester.java:332 executed in 0.01 seconds (0.000 gc):

    return RefArrays.stream(RefUtil.addRef(input_target)).flatMap(RefArrays::stream).map(x -> {
      try {
        return x.prettyPrint();
      } finally {
        x.freeRef();
      }
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ 1.612, -1.1 ], [ 0.52, -1.688 ], [ -1.176, 1.776 ], [ -1.028, -1.248 ], [ 1.512, -0.768 ], [ -1.616, 0.972 ], [ -0.804, 0.52 ], [ -1.476, 1.356 ] ],
    	[ [ 0.636, -1.256 ], [ -1.564, -0.888 ], [ -1.664, 1.628 ], [ -0.852, 1.352 ], [ 0.692, 0.644 ], [ 1.42, 0.688 ], [ -1.484, 1.048 ], [ 1.704, -0.556 ] ],
    	[ [ 0.184, 1.156 ], [ -1.54, 0.048 ], [ 0.148, -1.424 ], [ 0.82, -1.156 ], [ -1.492, -0.804 ], [ 0.7, 1.552 ], [ -0.504, -2.0 ], [ 1.556, 0.996 ] ],
    	[ [ 0.344, -1.552 ], [ -0.892, -0.968 ], [ -0.128, -1.516 ], [ -1.856, 1.652 ], [ -1.832, -1.572 ], [ 0.048, -1.58 ], [ 1.764, 0.66 ], [ 0.012, 1.444 ] ],
    	[ [ 1.64, -0.012 ], [ -0.608, -1.34 ], [ -0.316, 1.108 ], [ -0.856, 1.556 ], [ 1.912, -0.968 ], [ -0.368, -0.068 ], [ -1.76, -0.384 ], [ -0.808, 1.62 ] ],
    	[ [ -1.456, -1.228 ], [ -0.032, -0.784 ], [ 0.08, -1.724 ], [ -0.312, -1.656 ], [ -0.628, -0.384 ], [ -0.176, -0.408 ], [ 1.368, -1.16 ], [ 1.24, -0.876 ] ],
    	[ [ 1.032, -1.764 ], [ 1.876, 0.392 ], [ -0.464, 0.3 ], [ 0.788, 1.98 ], [ -1.72, 1.956 ], [ 0.56, -0.636 ], [ -0.892, 0.028 ], [ 1.916, -0.124 ] ],
    	[ [ 1.208, -1.16 ], [ -0.712, -1.116 ], [ -1.256, -1.808 ], [ 0.092, 1.524 ], [ 0.016, 1.324 ], [ 1.288, 0.496 ], [ 1.628, 0.82 ], [ -0.472, 0.812 ] ]
    ]
    [
    	[ [ -1.72, -1.54 ], [ 0.092, 1.032 ], [ 0.392, -0.124 ], [ -0.968, -1.688 ], [ 1.444, 1.352 ], [ 1.368, 0.692 ], [ -0.012, 1.876 ], [ -1.1, 1.42 ] ],
    	[ [ 1.62, 0.636 ], [ -1.616, -1.176 ], [ -1.564, 1.652 ], [ 1.612, 1.288 ], [ 1.108, -1.116 ], [ 0.048, -0.384 ], [ -1.228, 0.812 ], [ -1.484, -0.472 ] ],
    	[ [ -0.856, -1.248 ], [ 1.916, 0.016 ], [ 0.52, 0.52 ], [ -0.636, 0.344 ], [ 0.56, -1.456 ], [ 0.7, 1.764 ], [ 0.82, -0.628 ], [ -1.156, -1.34 ] ],
    	[ [ -1.16, 1.208 ], [ 0.3, 1.24 ], [ -1.028, -0.804 ], [ 1.776, -1.76 ], [ 1.956, -0.312 ], [ 1.156, 1.556 ], [ -0.464, 1.048 ], [ -0.892, 0.08 ] ],
    	[ [ -0.852, 0.688 ], [ 1.512, -0.316 ], [ -1.58, 1.552 ], [ 0.972, -0.384 ], [ 0.028, 0.012 ], [ 1.628, 0.148 ], [ 1.524, -0.032 ], [ 0.788, 0.644 ] ],
    	[ [ -0.608, -1.764 ], [ 1.556, -1.724 ], [ -1.664, -0.128 ], [ -1.572, -0.808 ], [ -1.552, 1.628 ], [ -1.256, -1.808 ], [ 0.496, -0.504 ], [ -0.712, -0.768 ] ],
    	[ [ -1.832, -1.492 ], [ -2.0, 0.82 ], [ 0.184, -0.968 ], [ 1.912, -1.856 ], [ -1.16, 1.64 ], [ 1.356, 1.324 ], [ -0.888, 0.996 ], [ -0.804, -1.476 ] ],
    	[ [ -0.408, -0.876 ], [ -0.068, -1.424 ], [ -1.516, 1.704 ], [ -0.368, -0.784 ], [ -0.892, -1.656 ], [ 0.048, 0.66 ], [ -0.556, -1.256 ], [ 1.98, -0.176 ] ]
    ]
    [
    	[ [ 1.912, -1.492 ], [ -0.876, 1.956 ], [ -0.808, 0.012 ], [ -1.476, 0.184 ], [ 0.996, -1.1 ], [ 1.652, -0.316 ], [ -0.968, 0.692 ], [ 0.3, -0.472 ] ],
    	[ [ 0.148, -1.76 ], [ -1.552, -0.384 ], [ -1.54, -0.804 ], [ 0.392, 0.048 ], [ -0.968, -0.128 ], [ 1.156, 1.62 ], [ 1.776, 1.352 ], [ -0.888, -0.464 ] ],
    	[ [ 1.356, -1.484 ], [ 0.644, -0.636 ], [ -0.124, 1.552 ], [ 1.612, 1.108 ], [ -1.16, 1.42 ], [ -1.116, 1.98 ], [ -0.408, 1.64 ], [ 1.032, 0.344 ] ],
    	[ [ 1.704, 0.7 ], [ -1.72, -1.808 ], [ 0.636, -1.856 ], [ -1.572, -0.712 ], [ -1.256, -0.012 ], [ -0.768, 0.66 ], [ -0.504, 1.24 ], [ 1.048, -1.424 ] ],
    	[ [ 1.524, -0.784 ], [ -0.068, 1.556 ], [ -2.0, -1.248 ], [ 0.048, -0.856 ], [ 1.628, 0.496 ], [ 1.876, -1.764 ], [ 1.288, 0.82 ], [ 0.52, -0.368 ] ],
    	[ [ -0.852, 1.208 ], [ -0.176, 1.324 ], [ -1.564, -0.608 ], [ 0.688, -1.156 ], [ -1.34, -0.556 ], [ 0.788, -1.16 ], [ 0.092, 1.916 ], [ 0.08, -1.228 ] ],
    	[ [ 0.028, -1.688 ], [ -0.804, -1.656 ], [ 1.556, 1.444 ], [ -1.256, 1.512 ], [ -1.832, -0.628 ], [ 0.972, -1.028 ], [ -0.892, -0.032 ], [ 0.016, -1.616 ] ],
    	[ [ -1.664, 1.628 ], [ -1.58, -1.176 ], [ -0.312, 0.52 ], [ 0.812, -1.724 ], [ 0.56, -1.456 ], [ -0.892, -1.516 ], [ 1.368, 0.82 ], [ -0.384, 1.764 ] ]
    ]
    [
    	[ [ 0.344, -1.256 ], [ 1.652, -1.156 ], [ 0.788, -1.16 ], [ -1.176, 1.352 ], [ -0.312, -1.424 ], [ 0.812, -0.856 ], [ 1.916, -1.256 ], [ 0.66, -0.124 ] ],
    	[ [ 0.016, 1.048 ], [ -0.892, -1.764 ], [ 0.048, 0.56 ], [ 0.644, -1.028 ], [ 1.444, 0.972 ], [ -0.804, -0.608 ], [ -0.888, 1.612 ], [ 1.512, 0.7 ] ],
    	[ [ -0.968, -1.564 ], [ 1.524, 1.324 ], [ -0.804, 0.82 ], [ -1.832, -1.664 ], [ -1.228, -0.368 ], [ 1.956, 1.556 ], [ -0.128, 0.08 ], [ 0.52, -1.572 ] ],
    	[ [ 1.288, 0.996 ], [ 1.032, -0.176 ], [ 0.092, 1.156 ], [ -0.892, 1.368 ], [ 0.012, 0.82 ], [ 0.184, -0.784 ], [ -0.876, -1.58 ], [ -1.516, 0.692 ] ],
    	[ [ -1.1, -0.808 ], [ 1.776, 1.98 ], [ -0.464, -1.476 ], [ -1.116, -1.76 ], [ 1.108, 1.42 ], [ -0.068, -0.628 ], [ 1.24, -0.636 ], [ -0.384, 0.048 ] ],
    	[ [ -0.472, -2.0 ], [ -1.688, 0.496 ], [ 0.392, -1.808 ], [ 1.64, -1.54 ], [ -1.456, -0.032 ], [ -1.616, 0.148 ], [ 1.552, -0.384 ], [ -1.492, -1.552 ] ],
    	[ [ -1.248, 1.62 ], [ 0.688, 1.356 ], [ 1.556, -0.556 ], [ -0.712, -0.768 ], [ 1.764, -0.316 ], [ -0.012, -1.656 ], [ 1.912, -0.852 ], [ 1.628, 0.3 ] ],
    	[ [ 0.636, -1.34 ], [ 1.704, -1.856 ], [ 1.208, 0.028 ], [ 1.876, -1.72 ], [ -0.968, -1.484 ], [ 0.52, 1.628 ], [ -1.16, -1.724 ], [ -0.504, -0.408 ] ]
    ]
    [
    	[ [ -0.556, -1.176 ], [ 1.764, -1.656 ], [ 1.98, -1.484 ], [ 1.552, -1.34 ], [ -0.368, -1.424 ], [ 0.344, 0.184 ], [ 1.612, -1.116 ], [ 1.288, -0.472 ] ],
    	[ [ -0.312, -0.804 ], [ 0.3, -1.832 ], [ -0.408, -0.888 ], [ -1.58, -1.724 ], [ -1.256, -0.852 ], [ -0.608, 0.644 ], [ 0.092, -0.068 ], [ -1.156, -1.1 ] ],
    	[ [ -0.316, 0.82 ], [ 1.556, 0.016 ], [ -0.128, 1.032 ], [ -0.876, 1.62 ], [ -1.808, 0.392 ], [ -1.764, 1.324 ], [ 0.812, 0.028 ], [ -1.856, -0.384 ] ],
    	[ [ -1.572, 0.688 ], [ 1.108, -1.16 ], [ -1.564, 0.012 ], [ -1.228, -1.256 ], [ -0.784, 1.876 ], [ -1.516, -0.804 ], [ 1.956, 1.912 ], [ -1.476, -2.0 ] ],
    	[ [ -1.492, 0.52 ], [ -0.892, -1.16 ], [ 1.156, 0.692 ], [ -0.968, -0.968 ], [ -0.176, -0.856 ], [ 1.916, -1.72 ], [ 1.776, 0.7 ], [ 0.82, -1.028 ] ],
    	[ [ -1.76, -1.456 ], [ -0.628, -0.712 ], [ -0.768, -1.664 ], [ 0.496, -0.636 ], [ 1.556, 1.368 ], [ 1.652, 0.148 ], [ 1.64, 1.352 ], [ 0.972, -0.384 ] ],
    	[ [ 0.788, 1.628 ], [ 1.356, 0.048 ], [ 0.52, -0.892 ], [ -1.54, 1.512 ], [ 1.444, -0.012 ], [ -1.552, 1.42 ], [ 1.628, -0.808 ], [ -0.504, 0.08 ] ],
    	[ [ -0.124, -0.464 ], [ 0.66, 1.208 ], [ -1.616, 1.24 ], [ 1.048, 0.56 ], [ 0.636, 0.996 ], [ 0.048, -1.248 ], [ -1.688, 1.524 ], [ -0.032, 1.704 ] ]
    ]

Gradient Descent

First, we train using basic gradient descent method apply weak line search conditions.

TrainingTester.java:480 executed in 0.32 seconds (0.000 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 962310219010
BACKPROP_AGG_SIZE = 3
THREADS = 64
SINGLE_THREADED = false
Initialized CoreSettings = {
"backpropAggregationSize" : 3,
"jvmThreads" : 64,
"singleThreaded" : false
}
Reset training subject: 962347411017
Constructing line search parameters: GD
th(0)=85.02732385157958;dx=-9.0437504E23
New Minimum: 85.02732385157958 > 0.0
Armijo: th(2.154434690031884)=0.0; dx=-9.043750400017588E11 evalInputDelta=85.02732385157958
Armijo: th(1.077217345015942)=0.0; dx=-9.043750400017588E11 evalInputDelta=85.02732385157958
Armijo: th(0.3590724483386473)=0.22972974982742006; dx=-9.043750400020836E11 evalInputDelta=84.79759410175217
Armijo: th(0.08976811208466183)=0.8183989624817457; dx=-9.043750400041466E11 evalInputDelta=84.20892488909783
Armijo: th(0.017953622416932366)=1.1926560978221612; dx=-9.043750400084312E11 evalInputDelta=83.83466775375742
Armijo: th(0.002992270402822061)=1.3415084373457133; dx=-9.043750400131565E11 evalInputDelta=83.68581541423387
Armijo: th(4.2746720040315154E-4)=1.3764116784917682; dx=-9.043750400149042E11 evalInputDelta=83.65091217308782
Armijo: th(5.343340005039394E-5)=1.3819028112087421; dx=-9.043750400152109E11 evalInputDelta=83.64542104037083
Armijo: th(5.9370444500437714E-6)=1.3826083970937773; dx=-9.043750400152511E11 evalInputDelta=83.6447154544858
Armijo: th(5.937044450043771E-7)=1.3826878948615837; dx=-9.043750400152556E11 evalInputDelta=83.64463595671799
Armijo: th(5.397313136403428E-8)=1.3826959262847835; dx=-9.04375040015256E11 evalInputDelta=83.6446279252948
Armijo: th(4.4977609470028565E-9)=1.382696662510934; dx=-9.043750400152561E11 evalInputDelta=83.64462718906864
Armijo: th(3.4598161130791205E-10)=1.515325625648701; dx=-1.152000090436352E19 evalInputDelta=83.51199822593088
Armijo: th(2.4712972236279432E-11)=1.805146259487374; dx=-1.0368000090647514E20 evalInputDelta=83.22217759209221
Armijo: th(1.6475314824186289E-12)=65.8594943246316; dx=-6.173702400069604E23 evalInputDelta=19.167829526947983
Armijo: th(1.029707176511643E-13)=85.02732385157806; dx=-9.0437504E23 evalInputDelta=1.5205614545266144E-12
Armijo: th(6.057101038303783E-15)=85.0273238515795; dx=-9.0437504E23 evalInputDelta=8.526512829121202E-14
MIN ALPHA (3.3650561323909904E-16): th(2.154434690031884)=0.0
Fitness changed from 85.02732385157958 to 0.0
Iteration 1 complete. Error: 0.0 Total: 0.2826; Orientation: 0.0044; Line Search: 0.2229
th(0)=0.0;dx=-1.54651712
Armijo: th(2.154434690031884E-15)=0.0; dx=-1.54651712 evalInputDelta=0.0
Armijo: th(1.077217345015942E-15)=0.0; dx=-1.54651712 evalInputDelta=0.0
MIN ALPHA (3.5907244833864734E-16): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.0325; Orientation: 0.0016; Line Search: 0.0262
Iteration 2 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 2
Final threshold in iteration 2: 0.0 (> 0.0) after 0.316s (< 30.000s)

Returns

    0.0

Training Converged

Conjugate Gradient Descent

First, we use a conjugate gradient descent method, which converges the fastest for purely linear functions.

TrainingTester.java:452 executed in 1.56 seconds (0.000 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new QuadraticSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 962631253150
Reset training subject: 962639283818
Constructing line search parameters: GD
F(0.0) = LineSearchPoint{point=PointSample{avg=85.02732385157958}, derivative=-9.0437504E23}
New Minimum: 85.02732385157958 > 1.5241393623018678
F(1.0E-10) = LineSearchPoint{point=PointSample{avg=1.5241393623018678}, derivative=-1.1520000904454148E19}, evalInputDelta = -83.50318448927771
New Minimum: 1.5241393623018678 > 1.3923771499914461
F(7.000000000000001E-10) = LineSearchPoint{point=PointSample{avg=1.3923771499914461}, derivative=-9.04451975299809E11}, evalInputDelta = -83.63494670158813
New Minimum: 1.3923771499914461 > 1.3826966565253431
F(4.900000000000001E-9) = LineSearchPoint{point=PointSample{avg=1.3826966565253431}, derivative=-9.043750400152561E11}, evalInputDelta = -83.64462719505424
New Minimum: 1.3826966565253431 > 1.382696219033708
F(3.430000000000001E-8) = LineSearchPoint{point=PointSample{avg=1.382696219033708}, derivative=-9.04375040015256E11}, evalInputDelta = -83.64462763254588
New Minimum: 1.382696219033708 > 1.3826931566127798
F(2.4010000000000004E-7) = LineSearchPoint{point=PointSample{avg=1.3826931566127798}, derivative=-9.043750400152559E11}, evalInputDelta = -83.6446306949668
New Minimum: 1.3826931566127798 > 1.3826717206716408
F(1.6807000000000003E-6) = LineSearchPoint{point=PointSample{avg=1.3826717206716408}, derivative=-9.043750400152546E11}, evalInputDelta = -83.64465213090794
New Minimum: 1.3826717206716408 > 1.382521718319304
F(1.1764900000000001E-5) = LineSearchPoint{point=PointSample{avg=1.382521718319304}, derivative=-9.043750400152461E11}, evalInputDelta = -83.64480213326027
New Minimum: 1.382521718319304 > 1.3814741052122224
F(8.235430000000001E-5) = LineSearchPoint{point=PointSample{avg=1.3814741052122224}, derivative=-9.043750400151866E11}, evalInputDelta = -83.64584974636736
New Minimum: 1.3814741052122224 > 1.3742555206510478
F(5.764801000000001E-4) = LineSearchPoint{point=PointSample{avg=1.3742555206510478}, derivative=-9.043750400147863E11}, evalInputDelta = -83.65306833092853
New Minimum: 1.3742555206510478 > 1.3284806480818379
F(0.004035360700000001) = LineSearchPoint{point=PointSample{avg=1.3284806480818379}, derivative=-9.043750400125845E11}, evalInputDelta = -83.69884320349774
New Minimum: 1.3284806480818379 > 1.117461238239176
F(0.028247524900000005) = LineSearchPoint{point=PointSample{avg=1.117461238239176}, derivative=-9.043750400070471E11}, evalInputDelta = -83.90986261334041
New Minimum: 1.117461238239176 > 0.5002782384119062
F(0.19773267430000002) = LineSearchPoint{point=PointSample{avg=0.5002782384119062}, derivative=-9.043750400027496E11}, evalInputDelta = -84.52704561316767
New Minimum: 0.5002782384119062 > 0.0
F(1.3841287201) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(9.688901040700001) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(67.8223072849) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(474.7561509943) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(3323.2930569601003) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(23263.0513987207) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(162841.3597910449) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(1139889.5185373144) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(7979226.6297612) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(5.58545864083284E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(3.909821048582988E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(2.7368747340080914E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
F(1.915812313805664E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
0.0 <= 85.02732385157958
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-9.043750400017588E11}, evalInputDelta = -85.02732385157958
Right bracket at 1.0E10
Converged to right
Fitness changed from 85.02732385157958 to 0.0
Iteration 1 complete. Error: 0.0 Total: 0.8295; Orientation: 0.0016; Line Search: 0.8137
F(0.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
0.0 <= 0.0
F(5.0E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 5.0E9
F(2.5E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 2.5E9
F(1.25E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 1.25E9
F(6.25E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 6.25E8
F(3.125E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 3.125E8
F(1.5625E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 1.5625E8
F(7.8125E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 7.8125E7
F(3.90625E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 3.90625E7
F(1.953125E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 1.953125E7
F(9765625.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 9765625.0
F(4882812.5) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Right bracket at 4882812.5
F(2441406.25) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-1.54651712}, evalInputDelta = 0.0
Loops = 12
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.7277; Orientation: 0.0013; Line Search: 0.7235
Iteration 2 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 2
Final threshold in iteration 2: 0.0 (> 0.0) after 1.558s (< 30.000s)

Returns

    0.0

Training Converged

Limited-Memory BFGS

Next, we apply the same optimization using L-BFGS, which is nearly ideal for purely second-order or quadratic functions.

TrainingTester.java:509 executed in 0.19 seconds (0.000 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new LBFGS());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setIterationsPerSample(100);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 964193252035
Reset training subject: 964196567083
Adding measurement 690759de to history. Total: 0
LBFGS Accumulation History: 1 points
Constructing line search parameters: GD
Non-optimal measurement 85.02732385157958 < 85.02732385157958. Total: 1
th(0)=85.02732385157958;dx=-9.0437504E23
Adding measurement 462702d5 to history. Total: 1
New Minimum: 85.02732385157958 > 0.0
Armijo: th(2.154434690031884)=0.0; dx=-9.043750400017588E11 evalInputDelta=85.02732385157958
Non-optimal measurement 0.0 < 0.0. Total: 2
Armijo: th(1.077217345015942)=0.0; dx=-9.043750400017588E11 evalInputDelta=85.02732385157958
Non-optimal measurement 0.22972974982742006 < 0.0. Total: 2
Armijo: th(0.3590724483386473)=0.22972974982742006; dx=-9.043750400020836E11 evalInputDelta=84.79759410175217
Non-optimal measurement 0.8183989624817457 < 0.0. Total: 2
Armijo: th(0.08976811208466183)=0.8183989624817457; dx=-9.043750400041467E11 evalInputDelta=84.20892488909783
Non-optimal measurement 1.1926560978221612 < 0.0. Total: 2
Armijo: th(0.017953622416932366)=1.1926560978221612; dx=-9.043750400084312E11 evalInputDelta=83.83466775375742
Non-optimal measurement 1.3415084373457133 < 0.0. Total: 2
Armijo: th(0.002992270402822061)=1.3415084373457133; dx=-9.043750400131565E11 evalInputDelta=83.68581541423387
Non-optimal measurement 1.3764116784917682 < 0.0. Total: 2
Armijo: th(4.2746720040315154E-4)=1.3764116784917682; dx=-9.043750400149042E11 evalInputDelta=83.65091217308782
Non-optimal measurement 1.3819028112087421 < 0.0. Total: 2
Armijo: th(5.343340005039394E-5)=1.3819028112087421; dx=-9.043750400152109E11 evalInputDelta=83.64542104037083
Non-optimal measurement 1.3826083970937773 < 0.0. Total: 2
Armijo: th(5.9370444500437714E-6)=1.3826083970937773; dx=-9.043750400152511E11 evalInputDelta=83.6447154544858
Non-optimal measurement 1.3826878948615837 < 0.0. Total: 2
Armijo: th(5.937044450043771E-7)=1.3826878948615837; dx=-9.043750400152556E11 evalInputDelta=83.64463595671799
Non-optimal measurement 1.3826959262847835 < 0.0. Total: 2
Armijo: th(5.397313136403428E-8)=1.3826959262847835; dx=-9.043750400152561E11 evalInputDelta=83.6446279252948
Non-optimal measurement 1.382696662510934 < 0.0. Total: 2
Armijo: th(4.4977609470028565E-9)=1.382696662510934; dx=-9.043750400152561E11 evalInputDelta=83.64462718906864
Non-optimal measurement 1.515325625648701 < 0.0. Total: 2
Armijo: th(3.4598161130791205E-10)=1.515325625648701; dx=-1.152000090436352E19 evalInputDelta=83.51199822593088
Non-optimal measurement 1.805146259487374 < 0.0. Total: 2
Armijo: th(2.4712972236279432E-11)=1.805146259487374; dx=-1.0368000090647516E20 evalInputDelta=83.22217759209221
Non-optimal measurement 65.8594943246316 < 0.0. Total: 2
Armijo: th(1.6475314824186289E-12)=65.8594943246316; dx=-6.173702400069604E23 evalInputDelta=19.167829526947983
Non-optimal measurement 85.02732385157806 < 0.0. Total: 2
Armijo: th(1.029707176511643E-13)=85.02732385157806; dx=-9.043750400000001E23 evalInputDelta=1.5205614545266144E-12
Non-optimal measurement 85.0273238515795 < 0.0. Total: 2
Armijo: th(6.057101038303783E-15)=85.0273238515795; dx=-9.0437504E23 evalInputDelta=8.526512829121202E-14
Non-optimal measurement 0.0 < 0.0. Total: 2
MIN ALPHA (3.3650561323909904E-16): th(2.154434690031884)=0.0
Fitness changed from 85.02732385157958 to 0.0
Iteration 1 complete. Error: 0.0 Total: 0.1645; Orientation: 0.0052; Line Search: 0.1398
Non-optimal measurement 0.0 < 0.0. Total: 2
LBFGS Accumulation History: 2 points
Non-optimal measurement 0.0 < 0.0. Total: 2
th(0)=0.0;dx=-1.54651712
Non-optimal measurement 0.0 < 0.0. Total: 2
Armijo: th(2.154434690031884E-15)=0.0; dx=-1.54651712 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 2
Armijo: th(1.077217345015942E-15)=0.0; dx=-1.54651712 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 2
MIN ALPHA (3.5907244833864734E-16): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.0255; Orientation: 0.0034; Line Search: 0.0186
Iteration 2 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 2
Final threshold in iteration 2: 0.0 (> 0.0) after 0.191s (< 30.000s)

Returns

    0.0

Training Converged

TrainingTester.java:432 executed in 0.10 seconds (0.000 gc):

    return TestUtil.compare(title + " vs Iteration", runs);
Logging
Plotting range=[0.0, 0.0], [2.0, 1.0]; valueStats=DoubleSummaryStatistics{count=0, sum=0.000000, min=Infinity, average=0.000000, max=-Infinity}
Only 0 points for GD
Only 0 points for CjGD
Only 0 points for LBFGS

Returns

Result

TrainingTester.java:435 executed in 0.00 seconds (0.000 gc):

    return TestUtil.compareTime(title + " vs Time", runs);
Logging
No Data

Results

TrainingTester.java:255 executed in 0.00 seconds (0.000 gc):

    return grid(inputLearning, modelLearning, completeLearning);

Returns

Result

TrainingTester.java:258 executed in 0.00 seconds (0.000 gc):

    return new ComponentResult(null == inputLearning ? null : inputLearning.value,
        null == modelLearning ? null : modelLearning.value, null == completeLearning ? null : completeLearning.value);

Returns

    {"input":{ "LBFGS": { "type": "Converged", "value": 0.0 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 0.0 } }, "model":null, "complete":null}

LayerTests.java:425 executed in 0.00 seconds (0.000 gc):

    throwException(exceptions.addRef());

Results

detailsresult
{"input":{ "LBFGS": { "type": "Converged", "value": 0.0 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 0.0 } }, "model":null, "complete":null}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "2.608",
      "gc_time": "0.207"
    },
    "created_on": 1586735550102,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgViewLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/test/java/com/simiacryptus/mindseye/layers/java/ImgViewLayerTest.java",
      "javaDoc": ""
    },
    "training_analysis": {
      "input": {
        "LBFGS": {
          "type": "Converged",
          "value": 0.0
        },
        "CjGD": {
          "type": "Converged",
          "value": 0.0
        },
        "GD": {
          "type": "Converged",
          "value": 0.0
        }
      }
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/java/ImgViewLayer/Basic/trainingTest/202004125230",
    "id": "72b603cf-c43d-45a7-9d6d-ab83e29d42b1",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "ImgViewLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgViewLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/main/java/com/simiacryptus/mindseye/layers/java/ImgViewLayer.java",
      "javaDoc": ""
    }
  }