Various initial weight configurations, various thread counts
Hidden/IW Threads Host Hours
32/s2 8 bianca 1.4463888
28/s2 8 bianca 1.4588889
32/r 8 bianca 1.4694444
36/s2 8 bianca 1.6933334
40/r 8 bianca 1.9836111
32/s1 8 bianca 2.0366666
48/r 6 bianca 2.1650000
24/r 8 bianca 2.1775000
S2 initial weight configuration, thread-count 8, host bianca
Hidden Hours
34 0.9761111
34 1.3216667
34 1.0425000
32 1.4463888
28 1.4588889
36 1.6933334
24 1.7602777
S2 initial weight configuration, thread count 8, host bianca, hidden 34
Action Seconds
infer-frame training set 98.181
train-frame training set 204.049
shuffle training-set indices 0.004
network-error training-set 16.550
Hidden Threads Minutes Accuracy
34 8 11.500000
34 7 11.466660
34 6 11.100000
34 5 14.950000
64 8 16.833334
64 7 18.400000
64 6 18.616667
128 64 8 13.600000 94.76%
After refresh-frame-errors
Hidden Threads Minutes Accuracy
128 64 8 29.116667 96.15%
32 8 52.816667 96.24%
40 7 33.100000
Hidden Threads Minutes Accuracy
40 7 25.916667 96.48%
hidden_layers hidden_count threads target skip_refresh minutes accuracy
128 128 7 0.04 Y 54.566667 94.11
32 32 7 0.05 Y 13.750000 94.86
64 32 2048 7 0.05 Y 19.616667 95.13
40 40 7 0.06 Y 10.033333 95.42
40 40 7 0.04 Y 13.716667 95.50
40 40 7 0.05 Y 12.250000 95.89
64 32 2048 7 0.05 N 27.883333 96.02
64 64 7 0.04 Y 16.550000 96.12
64 64 7 0.05 Y 16.300000 96.13
128 128 7 0.05 Y 22.333333 96.36
128 128 7 0.05 N 52.816667 96.54
40 40 7 0.06 N 20.300000 96.58
32 32 7 0.05 N 42.000000 96.72
40 40 7 0.05 N 33.283333 96.76
128 128 7 0.04 N 98.550000 96.83
64 64 7 0.05 N 29.583333 96.88
40 40 7 0.04 N 46.350000 96.93
64 64 7 0.04 N 30.950000 97.15
drop table if exists asr;
create table asr (
hidden_layers text,
hidden_count inteter,
threads integer,
target real,
skip_refresh text,
minutes real,
accuracy real);
.mode csv asr
.import $orgtable asr
select
hidden_layers || ' ' || skip_refresh || ' ' || target as attributes,
(accuracy - 91) / 9 as "normalized accuracy",
1 - (minutes / (select max(minutes) from asr)) as "normalized minutes"
from asr order by accuracy desc;
attributes normalized accuracy normalized minutes
64 N 0.04 0.683333333333334 0.685946220192795
40 N 0.04 0.65888888888889 0.529680365296804
64 N 0.05 0.653333333333333 0.69981397260274
128 N 0.04 0.647777777777778 0.0
40 N 0.05 0.640000000000001 0.662269578893962
32 N 0.05 0.635555555555555 0.573820395738204
40 N 0.06 0.62 0.794013191273465
128 N 0.05 0.615555555555556 0.464062232369356
128 Y 0.05 0.595555555555556 0.773380690005074
64 Y 0.05 0.57 0.834601725012684
64 Y 0.04 0.568888888888889 0.832064941653983
64 32 N 0.05 0.557777777777777 0.717064099441908
40 Y 0.05 0.543333333333333 0.875697615423643
40 Y 0.04 0.5 0.860815149670218
40 Y 0.06 0.491111111111111 0.898190431253171
64 32 Y 0.05 0.458888888888888 0.800947062404871
32 Y 0.05 0.428888888888889 0.860476915271436
128 Y 0.04 0.345555555555556 0.446304748858447
– select
– hidden_layers || ’ ’ || bad_frame as attributes,
– (accuracy - 94) / 6 as “normalized accuracy”,
– minutes / 60 as minutes
– from tbf order by accuracy desc;
threads: 7
target: 0.05
hidden_layers hidden_count bf skip_refresh minutes accuracy
64 64 0 N 29.583333 96.88
40 40 0 N 33.283333 96.76
40 40 1 Y 45.083333 96.69
40 40 1 N 50.200000 96.59
128 128 0 N 52.816667 96.54
64 64 1 Y 43.850000 96.54
128 128 0 Y 22.333333 96.36
64 64 0 Y 16.300000 96.13
32 16 48 0 N 44.000000 95.98
64 48 32 16 160 0 N 59.850000 95.98
40 40 0 Y 12.250000 95.89
drop table if exists tbf;
create table tbf (
hidden_layers text,
hidden_count integer,
bf integer,
skip_refresh text,
minutes real,
accuracy real);
.mode csv tbf
.import $orgtable tbf
-- select
-- hidden_layers || ' ' || bf as attributes,
-- (accuracy - 94) / 6 as "normalized accuracy",
-- minutes / 60 as minutes
-- from tbf order by accuracy desc;
select hidden_count, accuracy, minutes * 60 as seconds
from tbf
where hidden_count in (40, 64)
and bf = 0
and skip_refresh = 'N'
order by accuracy desc, seconds
hidden_count accuracy seconds
40 96.76 1996.99998
64 96.88 1774.99998
bianca-1 vs sim-1 vs blade-1
iteration bianca-1 sim-1 blade-1 bianca-1 sim-1 blade-1
1 1786 1406 1252 142.65% 112.30% 100.00%
2 1581 1402 1263 125.18% 111.01% 100.00%
(network-error environment)
should track elapsed-seconds, presentation, and network-error
should have a limited size
An element from the beginning of the list should be removed when
adding an element to the end of the list causes the list to
exceed the size limit.
There should be a function for adding an error
Reporting function plotting loop needs to be modified for dlist
plotting should be an option in the train function
Play with sinusoid initial weight generation
Multiple approaches didn’t work as well as random initial weights.
Analyze impact of number of hidden cells on results
See evaluate-topologies
hidden fitness seconds presentations network_error
72 97.08 1562 179011 0.0497525
68 97.02 1525 182301 0.048873354
76 96.94 2067 202566 0.045480218
48 96.83 1636 231256 0.04280906
60 96.81 1622 197367 0.045777403
40 96.76 1455 241959 0.044418395
64 96.75 1701 198033 0.04700385
52 96.73 1897 279620 0.04743318
80 96.55 2028 186672 0.043811984
56 96.53 1598 206863 0.0467945
44 96.43 1412 237813 0.04740469
drop table if exists hta;
create table hta (
hidden integer,
fitness real,
seconds integer,
presentations integer,
network_error real
);
.mode csv hta
.import $orgtable hta
select 'x-' || hidden as "hidden units",
round((fitness - (select min(fitness) from hta)) /
(select max(fitness) - min(fitness) from hta), 2) as "relative fitness",
round((seconds / 60.0 - 20) / 15, 2) as "relative time"
from hta
order by "relative time", "relative fitness" desc
hidden units relative fitness relative time
x-44 0.0 0.24
x-40 0.51 0.28
x-68 0.91 0.36
x-72 1.0 0.4
x-56 0.15 0.44
x-60 0.58 0.47
x-48 0.62 0.48
x-64 0.49 0.56
x-52 0.46 0.77
x-80 0.18 0.92
x-76 0.78 0.96
Analyze convergence variance with random initial weights
Consider using McClim again
Plotting training error
Plotting connection weights
Linear
Color-coded weights in network diagram
Individual neuron diagram
Save and load environment
Network and network settings, including weights
Environment and environment settings, with and without training and test sets
Save training set and test set to PNGs in training directory structure
Train from PNGs in training directory structure
ID vs net or environment objects
What goes in net vs environment
Show failing images from test set
Add code to fudge existing training data
Change intensity/color noise