Class: MachineLearningWorkbench::Compressor::OnlineVectorQuantization

Inherits:
VectorQuantization
  • Object
show all
Defined in:
lib/machine_learning_workbench/compressor/online_vector_quantization.rb

Overview

Online Vector Quantization: VQ with per-centroid decaying learning rates. Optimized for online training.

Constant Summary

Constants inherited from VectorQuantization

VectorQuantization::Verification

Instance Attribute Summary collapse

Attributes inherited from VectorQuantization

#centrs, #dims, #ncentrs, #ntrains, #rng, #vrange

Instance Method Summary collapse

Methods inherited from VectorQuantization

#encode, #most_similar_centr, #new_centr, #reconstr_error, #reconstruction, #similarities, #train

Constructor Details

#initialize(min_lrate: 0.01, **opts) ⇒ OnlineVectorQuantization



8
9
10
11
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 8

def initialize min_lrate: 0.01, **opts
  super **opts.merge({lrate: nil})
  @min_lrate = min_lrate
end

Instance Attribute Details

#min_lrateObject (readonly)

Returns the value of attribute min_lrate.



6
7
8
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 6

def min_lrate
  @min_lrate
end

Instance Method Details

#check_lrate(lrate) ⇒ Object

Overloading lrate check from original VQ



14
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 14

def check_lrate lrate; nil; end

#lrate(centr_idx, lower_bound: min_lrate) ⇒ Object

Note:

nicely overloads the ‘attr_reader` of parent class

Decaying per-centroid learning rate.



20
21
22
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 20

def lrate centr_idx, lower_bound: min_lrate
  [1/ntrains[centr_idx], lower_bound].max
end

#train_one(*args, **kwargs) ⇒ Object

Raises:

  • (NotImplementedError)


24
25
26
# File 'lib/machine_learning_workbench/compressor/online_vector_quantization.rb', line 24

def train_one *args, **kwargs
  raise NotImplementedError, "Remember to overload this using the new lrate(idx)"
end