arrayfire / arrayfire-ml

ArrayFire's Machine Learning Library.
BSD 3-Clause "New" or "Revised" License
102 stars 23 forks source link

Proposal for the initial API #3

Closed pavanky closed 7 years ago

pavanky commented 9 years ago

This library will sit on top of arrayfire. The default implementation will be C++, however C wrappers will be added on top so that the library can be used from other languages.

The optimization function and distance metrics need to be abstract out so the user has a choice of switching them out whenever possible.

Base classes

Needs research

pavanky commented 9 years ago

@umar456 @pentschev @jramapuram Any suggestions about what can go in the first go would be greatly appreciated.

pavanky commented 9 years ago

In particular, additions to Regression and clustering would be nice.

jramapuram commented 9 years ago

I think it makes sense to start with the basics, go with:

And then take it from there! :)

Personally I would like to maybe do some LSTM's & other RNN type models. However, for these we will need an optimizer. SGD & ADAM should be easy enough to implement

jramapuram commented 9 years ago

Btw for the suite of neural models it would be good to abstract a standard 'Layer' class. This will make the addition of conv layers/etc pretty easy.

pavanky commented 9 years ago

@jramapuram I was just running through the library design via github issues. I came up with this: https://github.com/arrayfire/arrayfire_ml/issues/17 for the standard Layer class. It might change once the work actually begins.

pavanky commented 9 years ago

I will look into the optimization functions and update the list. Can you create an issue for base RNN class and / or LSTM and discuss what additional work should be done ?

jramapuram commented 9 years ago

Sure thing. For optimization I suggest paralleling something like keras's solution minus maybe the automatic differentiation that theano offers (thats pretty tough to implement I'd imagine).

futurely commented 9 years ago

@zxie has implemented a very elegant neural network library which maybe was based on the general flow graph described in the Stanford course Deep Learning for Natural Language Processing.

A graph based neural network model can be built with Nodes which do the math with Ops. Currently only one model was implemented with nodes. The library also implements some NNet models without using the nodes.

Caffe is also trying to manage the relationship of layers in a computation graph.

unbornchikken commented 9 years ago

I have some experience with recurrent learning models, like RTLR and LSTM. Those coluld be used for tasks like speech recognition and realtime time series predictions, and so. Do you have plans for supporting such functionality aswell?

jramapuram commented 9 years ago

@unbornchikken : https://github.com/arrayfire/arrayfire_ml/issues/20

unbornchikken commented 9 years ago

Yeah, but that doesn't get icluded in this list above. Yet?

UniqueFool commented 8 years ago

Caffe is also trying to manage the relationship of layers in a computation graph.

FWIW, there is an increasing number of ML algorithms that are doing tree/graph processing to some extent, so that may be another useful thing to have in arrayfire-ml: graph processing utilities for some of the more common algorithms (e.g. breadth-first search implemented in OpenCL)

pavanky commented 7 years ago

Closing this because it is no longer relevant.

jasonhargrove commented 7 years ago

Why is it no longer relevant?

pavanky commented 7 years ago

@jasonhargrove Using autograd for implementing neural networks. This involved changing the API. If you have any suggestions / questions, please follow up over here: https://github.com/arrayfire/arrayfire-ml/issues/17

tcandzq commented 5 years ago

Hi,Could I join this project and develop some function in arrayfire-ml。Because write ml algorithm in C++ and GPU would interesting and challenging! Thank you!