Class: DNN::Lasso

Inherits:
Object
  • Object
show all
Defined in:
lib/dnn/core/regularizers.rb

Instance Method Summary collapse

Constructor Details

#initialize(l1_lambda, param) ⇒ Lasso

Returns a new instance of Lasso.



4
5
6
7
# File 'lib/dnn/core/regularizers.rb', line 4

def initialize(l1_lambda, param)
  @l1_lambda = l1_lambda
  @param = param
end

Instance Method Details

#backward ⇒ Object



13
14
15
16
17
# File 'lib/dnn/core/regularizers.rb', line 13

def backward
  dlasso = Xumo::SFloat.ones(*@param.data.shape)
  dlasso[@param.data < 0] = -1
  @param.grad += @l1_lambda * dlasso
end

#forward(x) ⇒ Object



9
10
11
# File 'lib/dnn/core/regularizers.rb', line 9

def forward(x)
  x + @l1_lambda * @param.data.abs.sum
end