Skip to content

Latest commit

 

History

History
64 lines (45 loc) · 1.67 KB

File metadata and controls

64 lines (45 loc) · 1.67 KB

Model stack map

This document is the quick reference for how library components couple together.

Maintenance rule

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

Current map (who uses what)

LinearRegression

  • file: lib/ruby_ml/models/linear_regression.rb
  • uses loss: RubyML::Losses::MSE
  • uses optimizer: RubyML::Optimizers::SGD
  • uses layers/activations: no

LogisticRegression

  • file: lib/ruby_ml/models/logistic_regression.rb
  • uses loss: RubyML::Losses::BinaryCrossEntropy
  • uses optimizer: RubyML::Optimizers::SGD
  • uses layers/activations: no separate modules; sigmoid lives inside the model

KNN

  • file: lib/ruby_ml/models/knn.rb
  • uses loss: no
  • uses optimizer: no
  • uses layers/activations: no

KMeans

  • file: lib/ruby_ml/models/kmeans.rb
  • uses loss: no (minimizes inertia internally)
  • uses optimizer: no
  • uses layers/activations: no

Perceptron

  • 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)

NeuralNetwork

  • 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

Require hub

  • file: lib/ruby_ml.rb
  • role: aggregate requires for losses, optimizers, layers, activations, and models.