-*- coding:utf-8 mode:org -*- * Steps to be taken: ** Bootstrap-phase *** DONE Simple ASCII serialization of an MLP CLOSED: [2016-05-24 Tue 16:45] Definition grammar of MLP serialization exists as self-documenting source code. To be iteratively refined later on. *** DONE Initialize sanity checks / coarse testing CLOSED: [2016-05-24 Tue 16:45] Sanity checks can be made to ensure that modified code works. *** DONE Creation of MLPs. Grammar for specifying init. CLOSED: [2016-05-25 Wed 15:44] Grammar for defining architectural limits and initial MLP creation exists as self-documenting source code. To be iteratively refined later on. MLPs can be created and randomly initialized from strings given in the grammar. *** DONE Tentative Grammar for specifying case studies CLOSED: [2016-05-25 Wed 16:35] Definition grammar for case studies and data sets exists in example definition files, but not yet as implemented code. To be iteratively refined later on, throughout the project. *** DONE Writing and reading of a population CLOSED: [2016-05-26 Thu 14:57] MLPs can be stored and retrieved to/form population or solution archive files. A randomly initialized "population zero" can be output for any MLP size and any number of objective functions. This step was taken by copying and modifying the codes done for Alexey Kornilov's Master Thesis project. A lot was changed though. *** DONE Reading of a dataset CLOSED: [2016-05-27 Fri 10:36] Any classification dataset can now be read from the file specified in the case specification. *** DONE A mock-up / example case study actually runs CLOSED: [2016-06-13 Mon 15:02] A mock-up / sample case study exists in the setups, and it _apparently_ runs by 'make experiments'. *** DONE Tracing and post-run visualization of the individuals CLOSED: [2016-06-21 Tue 15:41] Setup and running is now done by an algorithm object instead of a hardcoded main program. Solution individuals have unique ID numbers (running indices) for post-run exploration of operators. Matlab/Octave can now be used for visualization of 2D cases, using old but somewhat revamped codes. *** DONE The first thesis illustrations and examples CLOSED: [2016-08-15 Mon 19:57] The first single and multiobjective cases of the thesis Introduction now exist in the case study bank, and they can be replicated and visualized "from source code", given an identical computing platform (software and hardware). Supported modes are: (1) emulation of a single-objective multistart backprop using the total MSE error (2) emulation of a multistart backprop-based Pareto search using weight coefficients towards randomized classwise errors. Objective functions and other measures of interest can be traced throughout the iteration. Not yet fully multiobjective (working on some issues still). *** DONE Mock-up multiobjective framework CLOSED: [2016-08-16 Tue 02:41] Non-dominance ranks, as in NSGA-II, are actually used for the main population updates. *** DONE Convenience: store run duration CLOSED: [2016-08-22 Mon 23:30] Log files are stored that contain information about run times. *** DONE Automatic run scripts for reproducing experiments CLOSED: [2016-08-23 Tue 05:07] The set of thesis results and visualizations exist as self-documenting sources (Makefile, case descriptions, and a utility program to make a catalogue of experiments in LaTeX). To be iteratively refined and augmented throughout the project. First example in the thesis text, with visualizations, can be reproduced automatically using the automated run scripts. Label correspondence with LaTeX source is defined and a tentative labeling scheme proposed. *** DONE Objective definition grammar CLOSED: [2016-08-23 Tue 05:02] Tentative definition grammar and a mock-up parser for selecting a combination of objectives. The grammar can be used for selecting a combination of: 1. overall MSE ("standard objective") 2. classwise error rates More will follow. *** DONE Objective function evaluation for the multiobjective framework CLOSED: [2016-08-24 Wed 06:40] Evolution objectives can be aggregated from a combination of (items in parentheses not yet fully implemented): 1. classwise MSEs 2. classwise MEEs 3. classwise MAEs 4. classwise error rates 5. overall MSE ("standard objective") 6. overall MEE ("robust objective 1") 7. overall MAE ("robust objective 2") 8. overall error rate 9. minimum classwise MSE 10. minimum classwise MEE 11. minimum classwise MAE 12. minimum classwise error rate 13. mean of squared weight values of all synapses 14. mean of squared weight values excluding outer layer bias 15. mean of absolute weight values of all synapses 16. mean of absolute weight values excluding outer layer bias 17. number of hidden neurons 18. number of non-zero weights 19. number of active input nodes, i.e., inputs with at least one non-zero connection to a forward neuron ("feature selection") [not as of yet: 20. intra-optimization error(s) on a validation dataset] *** TODO Basic memetic operators (individual and population-wise) Population operators include backprop, weight jogging, combining all neurons of two MLPs, pruning a random neuron, greedy pruning of small weights. *** TODO Tracing functionality Any combination of the MOEA objective functions that took no part in the actual evolution can be traced for post-run examinations. Tracing can be enabled for post-analyses or disabled for speeding up the actual computation. *** TODO Objective functions in the local improvement Improvement methods can use (1) overall MSE (2) classwise MSEs with weigths randomized once or every time (3) mean of squared weights factored in with a random coefficient. *** TODO Actual algorithmic framework class Definition grammar of case studies and data sets now exist also as a self-documenting source code module. To be iteratively refined later on, throughout the project. *** TODO Exception facilities Base helpers are now available for own exception handling. Simple methods for throwing exceptions with messages meaningful to the domain and case studies. *** TODO Debug / tracing facilities Debug and tracing facilities exist as self-documenting source code modules; these facilities can be turned on or off via a command line switch and customized by the definition grammar. Capabilities to be iteratively refined later on. *** TODO Population serialization is fixed as in the thesis text. Computation code can read/write populations of MLPs that can be evaluated exactly also by the Matlab counterpart. *** TODO Definition grammar and implementation have been created for random initialization of different MLP architectures and weights. *** TODO Second example in the thesis text, with visualizations, can be reproduced automatically using the automated run scripts. Label correspondence with LaTeX source is defined and the labeling scheme is final. ** Feature addition phase *** TODO Variable size of MLPs in population is possible Definition of MLP architectural limits/constraints is fixed as in the thesis text. *** TODO Final MLP limits and constraints Definition of MLP architectural limits/constraints is fixed as in the thesis text. *** TODO Solution archive *** TODO Combination operators *** TODO Self-adaptation