Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/GeneticAlgorithms #210

Open
JasonShin opened this issue Jan 19, 2019 · 7 comments
Open

feature/GeneticAlgorithms #210

JasonShin opened this issue Jan 19, 2019 · 7 comments
Labels
feature New feature that does not exist in Kalimdor.js yet

Comments

@JasonShin
Copy link
Member

  • I'm submitting a ...
    [/] feature request

  • Summary
    The ticket aims to research and implement a simple version of the genetic algorithm.

  • Reference

@JasonShin JasonShin added the feature New feature that does not exist in Kalimdor.js yet label Jan 19, 2019
@JasonShin JasonShin added this to the Sprint 1 milestone Jan 19, 2019
@gigatesseract
Copy link

I'd like to take this up. I'm working with genetic algorithms lately.

@JasonShin
Copy link
Member Author

JasonShin commented May 10, 2019

Sounds good, it will be a major addition to machinelearn.js. Would you mind giving me a brief idea on how you want to introduce GA in machinelearn.js? Will there be a single GeneticAlgorithm API with configurations?

@gigatesseract
Copy link

I'd like to demonstrate the usage of the library in genetic algorithms. I was thinking of giving examples of how to use the library for genetic purposes. For the very beginning, I was thinking of introducing the concept of evolution, fitness , mutation, selection etc through an example of achieving a desired string given a random population. An API would be incredibly awesome, but since the algorithms such as selection etc are exclusive to the problem in question, I thought we'd let the end user explore.
First we can start by showing examples. I'll work on the API side by side to cover generalised functions what do you think?

@JasonShin
Copy link
Member Author

JasonShin commented May 10, 2019

I like the idea of initially introducing the smaller components of GA like evolution, fitness, mutation and selection as separate APIs.

I think a massive addition like GA should belong to its category in the library

^ We will create a new category called "Genetic Algorithms" or something and put all the associated APIs in there. We might create another layer of submenu so it can be structured like:

Genetic Algorithms
- Methods
-- Evolve
-- Train
-- Regularization
-- Mutation
-- Selection
-- Activation
-- Cost
-- Connection
-- Gating
-- Rate
- Architectures
-- NEAT

Then we can build some demos under
https://www.machinelearnjs.com/examples/
demonstration of solving a simple problem such as XOR problem using the APIs that you've introduced

Later we can introduce a fully fledged architecture like NEAT by using the APIs that you've created. It would be cool to build a game bot (running directly in the browser) using this =)

We can work on this feature together, happy to receive your inputs as well.

@JasonShin JasonShin removed this from the Sprint 1 milestone May 10, 2019
@gigatesseract
Copy link

This is more structured. We will proceed the way you conceptualise it 😄
But it's gonna take some time. I'm still not sure how we can go about for generic methods of evolution and selection, since the genotype of the population will depend on the situation. Example: for a flappy bird ai, the genotype maybe a regression model that predicts if the bird should jump , whereas there are some other instances like the xor, it might be Anns.
How do we tackle the problem specific genotype configuration in our APIs?

@JasonShin
Copy link
Member Author

JasonShin commented May 11, 2019

Sounds good =)

How do we tackle the problem specific genotype configuration in our APIs?
I haven't thought too deeply about this yet. My initial proposal is to follow the structure of https://github.com/wagenaartje/neataptic

I also want to read more on genetic algorithms over the weekend, would you be up for a studying meeting over the internet this weekend?

@gigatesseract
Copy link

Yes! We will have our conversations over telegram

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature that does not exist in Kalimdor.js yet
Projects
None yet
Development

No branches or pull requests

2 participants