surface_ai

Crates.iosurface_ai
lib.rssurface_ai
version0.0.0
sourcesrc
created_at2021-03-08 07:13:22.676187
updated_at2021-03-08 07:13:22.676187
descriptionExperimental machine learning crate (ongoing project, not fit for "release" yet)
homepagehttps://github.com/dbyr/surface_ai
repositoryhttps://github.com/dbyr/surface_ai
max_upload_size
id365569
size49,494
David Byrne (dbyr)

documentation

README

Surface AI

This is an experimental AI library written natively in Rust.

Plans:

  • Provide useful abstraction for generic use as a library ()
  • Documentation
  • Perceptron
    • Perceptron tests
    • Redesign perceptron/neuron type(s) such that code is more reusable in the neural net
  • Neural Network (still investigating is this is complete or not yet, see below)
    • NN tests (created, but results are not satisfactory, see below)
  • Allow for adjustable constants such as learning rate and training stop condition(s)
  • Convolutional Neural Network
  • Other machine learning algorithms

Currently I'm using this mostly as a learning experience, but I would like to extend it to be useful for other people in their machine learning projects. At the moment I am having difficulty using the NeuralNet type to classify stars on the HR Diagram (as seen in the test_star_classification test). I am researching what's wrong, as I am still new to neural networks and how they function/how best to use them. Based on other tests (the sum learning example (test_sum_classification), and the test of a single back-propagation outcome (test_learn_function)) it appears as though the NN works correctly as intended, however I have noticed a case where the sum test does not terminate in training (or at least runs for a very long time). This is likely an issue with the NN, and (hopefully) the cause of the star classification not working correctly.

If you have advice or suggestions (or even contributions if you're interested) please either contact me through my email or by opening an issue/pull request on github.

I will only be releasing versions under "0.0.x" until I am happy enough with the library being presented as "usable" in a general sense. As mentioned, at the moment this is entirely experimental. The only reason I am releasing a crate this early is in the hopes that people with more experience will be able to play test/steer development of the project, and even also to allow the project to gain some traction and get used :D

Commit count: 29

cargo fmt