Current Version: 1.3.9
Few minor changes and fixes to bugs. Recommended you to update the library.
Also update the matrix library too. Apparently it had some bugs.
This looks sick. Is it possible to train an network using a genetic algorithm?
Sure you can! Though, you need to create your own fitness and mutate functions.
To mutate the model, you need to access the model parameters using :getModelParameters() method. This will contain a table of matrices.
I’ll give you an example. If you want to access the layer L of model parameters at row I and column J, you can use this: ModelParameters[L][I][J].
Once you change the values, you can put the adjusted parameters back using :setModelParameters().
If you want to view the API reference for this, you can have a look here:
https://aqwamcreates.github.io/DataPredict/API/Models/BaseModel.html
PS: You might need to create a function to deep copy the model parameters.
Heads up! New version of the library is here!
The neural network got a new upgrade!
You can now add individual optimizers and regularization objects to individual layers using :addLayer() function.
I also changed the parameters for :createLayers() as well.
You may need to review the API for the neural network here.
Any estimate on when LSTM’s will come to this module? Would love to use this for an upcoming project
Unfortunately, I can’t give the estimates right now. The math for the LSTM model is a bit complicated to understand. It should have been done last two months ago, but due to academic pressure, I had to take a pause from this project.
Though, I can say a number of sequential neural networks are being worked on right now.
That being said, there’s another library that have LSTM model. Though the documentation may be confusing.
Apologies for late reply.
Got it! Thanks, sorry for the late reply.
Update 1.6.0: Recurrent Neural Network added. Go ahead and try it out!
Update 1.8.0:
-
LSTM model added!
-
Adjustable input, hidden, output layers for both RNN and LSTM
-
Made some changes to OnlineLearning so that it accepts both sequential and non-sequential inputs/outputs.
Note: You many need to update your Matrix Library.
Woah woah, you are telling me with this I can make those AI’s that pathfind and become better each time they train?
If this is stable, performant and good might actually use it to make a pathfinding NPC, Ive heard you can use raycasts and shapecasts to create a view for it, and the AI can learn every simulation more.
Absolutely! What’s even better about this library, you can:
-
Use Online Learning to do real-time training if you were to collect data real-time and train the model when you are not around.
-
Retrieve and store the model parameters values into datastores.
It’s about to reach the final development stage. I’m thinking whether or not to add feature that enables the models avoid exhausting script execution time. Not only that, I’m trying to add some more kernels to support vector machine right now.
I have no idea about machine learning AI, so if I decide to dive into it ill deffinetely use this, it just sounds too hard for me atm. but good job on this
Update 1.9.0:
-
Added new kernels for support vector machine.
-
Added internal model wait component to avoid exhaustion time.
-
RNN and LSTM can take in multiple token sequences.
-
Changed the parameters for online learning.
-
Some fixes.
Update 1.10.0:
-
You can now change any of neural network’s layers’s properties using setLayer() function.
-
Some calculation fixes. This leads to training improvement to certain models.
-
And some more other stuff.
PS: I recommend you to update both the Machine Learning Library and Matrix Library.
Release Version 1.0 (Beta Version 1.11.0) is here! Get the ModuleScript from the original post now!
-
Fixed a couple of stuff.
-
Added new optimizers.
-
Many more!
Greetings. I read the full version of the documentation, but I couldn’t find anywhere to save the model.
Every model is inherited from a BaseModel class. The BaseModel class contains functions getModelParameters() and setModelParameters(). You can call those functions from any models that inherits it.
Then you can save the model parameters to Roblox’s DataStore or print out the values.
Oh, I understand you, thank you very much!
Alright guys, it seems like I will not updating this for a long time. Let m know if there are any issues with the codes or any feature requests you want me to add to this library.
I’m really interested in this and it seems incredible, i would only like to see some tutorial of this being applied in a NPC