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

Add support for Neural Networks #265

Open
slcott opened this issue Sep 8, 2016 · 7 comments
Open

Add support for Neural Networks #265

slcott opened this issue Sep 8, 2016 · 7 comments
Labels

Comments

@slcott
Copy link
Contributor

slcott commented Sep 8, 2016

It would be cool to support neural nets.

Context of the issue

The library could search different NN designs using different types of layers (fully connected, dropout, convolutions), activation functions (relu, sigmoid, tanh), LSTMs, RNNs etc. There are a lot of options but I think it could be started on something simple like building simple convolutional neural nets for analyzing images. Can also add support for pretrained nets like the caffe model zoo.

This is actually already being explored by other teams, like the researchers working on TensorFlow.
There are several NN libraries: torch, MXNet, Caffe, TensorFlow, and Theano. Theano and TensorFlow are the only ones built for python. Could also build on top of a wrapper like Keras. Or if brave, could code it in straight numpy.

@rhiever
Copy link
Contributor

rhiever commented Sep 8, 2016

Great idea @slcott! We've explored this a bit with a summer student on a project called DELFT, but the project has stalled a bit since the student had to go back to school. I agree that it's quite promising to build a TPOT-like tool for designing deep neural networks, though. The primary challenge is that training deep neural networks on any reasonably sized benchmark data set takes a very long time.

@slcott
Copy link
Contributor Author

slcott commented Sep 8, 2016

Cool!

I've thought a little about the long training time already. It looks like the research community has already been working on possible solutions. There's one that I think that is promising for the slowness issue.

I'm not too familiar with it yet, but there is a technique called transfer learning that uses pre-trained models as a starting point. Caffe has something called a model zoo that offers models.

This is a 2014 paper that explores this topic and it looks like there's more recent papers continuing to explore applications

After my quick literature search it looks like this technique may offer at least a partial solution to the slowness problem, though there were some caveats. Of course to build a system that exploits this would entail users downloading pre-trained models and then having the search algorithm fine tune them (perhaps ambitiously with an option to upload new models, thus offering a growing library of pre-trained models).

@mfeurer
Copy link

mfeurer commented Sep 9, 2016

@sashml
Copy link

sashml commented Mar 31, 2017

New package in addition, hyperas for tuning keras models - https://github.com/maxpumperla/hyperas

@slavakurilyak
Copy link

For inspiration, check out AutoNet by auto-sklearn (Paper, Source Code)

@karan1276
Copy link

This looks like a really interesting project. I someone i willing to mentor me i can take it up.

@namisaghaei
Copy link

I've worked on something similar, this might be helpful!
https://arxiv.org/abs/1603.06560

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants