This document is the quick reference for how library components couple together.
Always update this file when any of the following changes:
- new
model - new
loss - new
optimizer - new
layer - new
activation - dependency changes between existing components
- file:
lib/ruby_ml/models/linear_regression.rb - uses
loss:RubyML::Losses::MSE - uses
optimizer:RubyML::Optimizers::SGD - uses
layers/activations: no
- file:
lib/ruby_ml/models/logistic_regression.rb - uses
loss:RubyML::Losses::BinaryCrossEntropy - uses
optimizer:RubyML::Optimizers::SGD - uses
layers/activations: no separate modules;sigmoidlives inside the model
- file:
lib/ruby_ml/models/knn.rb - uses
loss: no - uses
optimizer: no - uses
layers/activations: no
- file:
lib/ruby_ml/models/kmeans.rb - uses
loss: no (minimizes inertia internally) - uses
optimizer: no - uses
layers/activations: no
- file:
lib/ruby_ml/models/perceptron.rb - uses
loss: no (classification error implicit in the update rule) - uses
optimizer: no (internal perceptron update) - uses
layers/activations: no (uses internal step function)
- file:
lib/ruby_ml/models/neural_network.rb - uses
layers:RubyML::Layers::Dense - uses
activations:RubyML::Activations::ReLU,RubyML::Activations::Sigmoid - uses
loss:RubyML::Losses::CrossEntropy - uses
optimizer:RubyML::Optimizers::SGD
- file:
lib/ruby_ml.rb - role: aggregate
requires for losses, optimizers, layers, activations, and models.