Coder Social home page Coder Social logo

wann-genetic's People

Contributors

plonerma avatar

Watchers

 avatar  avatar

wann-genetic's Issues

Would it be sufficient to sample a const array of random weights for all iterations?

  • How many weights would be needed?

  • If we use the number of generations for weight array size, how many more evaluations would be required?

  • No heuristics needed for individuals with different numbers of weights that influences the fitness

  • How many calculations would it save on slightly lower numbers?

  • Model cost / advantage of this method

Figure out better way to store metrics

Saving a confusion matrix for each iteration blows up, if there are many generations.
Either compute metrics and cache those or just evaluate the mean confusion matrix.
Relevant questions here:

  • Is the mean of f-scores (and other metrics), the same as the f-score of the mean confusion matrix?
  • Is caching the calculated metrics a suitable alternative?

Refactoring

Should rewann be adpated to use sklearn? Check out sklearn-genetic and compare pros and cons

The amount of code to maintain should be reduced. Lean on standard libs where possible. Remove unnecessary bloaty concepts.

Check-out:
sklearn-genetic

Implement experiment class

  • Enforce policy about which
    data to store
  • Represented by a unique dir on fs

Store:

  • hyperparams were used on task
    • num processes
    • hyperparams for evol. process
  • population (if condition met)
  • time series of events:
    • best and mean performances in
      each generation
    • cpu usage
    • outputs, warnings, infos, etc.

Change logging

  • logging should not require passing the log obj via environment
  • use root logger and configure on env init

Implement sensible way to store and compute performance metrics

Performance metrics will be influenced by the introduction of multiple tests results for randomly sampled weights ( #25 ).

Peformance module should:

  • store confusion matrices for each weight that the individual was evaluated on
  • compute averages (accuracy, f-score, etc.)
  • provide interface to fitness considerations (elite & tournament selection)
  • be able to compute averages etc. for lists of individuals (populations)

Look for rewann_default.toml in cwd

Update experiment defaults with rewann_default.toml -> this allows for environment specific default values (useful for debug, storage, and num_workers settings).

Rewrite Individual Class

Individual

Individual is a representation for networks. Networks can be in different states, and not all states should be constantly in memory. To still be able to easily be able to work with each possible expression of the network (genotype, phenotype, etc.) translations should implicitly be made.

Where suitable, certain expressions will be saved to the file system for later inspection.

Class

Data

Representations
  • genotype with historical markings
  • phenotype (topologically ordered weight matrix)
  • torch network
Other
  • fitness measurements / performance stats

Functions

IO

Enable loading & saving of all representations from & to FS

Expression

Translate expressions, save all translated versions

Evaluation with task

Evaluate Individual on a given task (possibly using certain seed / other parameters)

Implement population class

  • Generate new generation
  • Mutation Operator
  • Keep track of generations
    and metadata of their overall
    performances

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.