Class: DNN::Optimizers::Nesterov

Inherits:
SGD show all
Defined in:
lib/dnn/core/optimizers.rb

Instance Attribute Summary

Attributes inherited from SGD

#momentum

Attributes inherited from Optimizer

#learning_rate

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from SGD

#to_hash

Methods inherited from Optimizer

#to_hash

Constructor Details

#initialize(learning_rate = 0.01, momentum: 0.9) ⇒ Nesterov

Returns a new instance of Nesterov.



62
63
64
# File 'lib/dnn/core/optimizers.rb', line 62

def initialize(learning_rate = 0.01, momentum: 0.9)
  super(learning_rate, momentum: momentum)
end

Class Method Details

.load_hash(hash) ⇒ Object



58
59
60
# File 'lib/dnn/core/optimizers.rb', line 58

def self.load_hash(hash)
  self.new(hash[:learning_rate], momentum: hash[:momentum])
end

Instance Method Details

#update(params) ⇒ Object



66
67
68
69
70
71
72
73
# File 'lib/dnn/core/optimizers.rb', line 66

def update(params)
  params.select { |key, param| param.grad }.each_value do |param|
    @v[param] ||= 0
    amount = param.grad * @learning_rate
    @v[param] = @v[param] * @momentum - amount
    param.data = (param.data + @momentum**2 * @v[param]) - (1 + @momentum) * amount
  end
end