Class: DNN::Regularizers::L1L2
- Inherits:
-
Regularizer
- Object
- Regularizer
- DNN::Regularizers::L1L2
- Defined in:
- lib/dnn/core/regularizers.rb
Instance Attribute Summary collapse
-
#l1_lambda ⇒ Object
Returns the value of attribute l1_lambda.
-
#l2_lambda ⇒ Object
Returns the value of attribute l2_lambda.
Attributes inherited from Regularizer
Class Method Summary collapse
Instance Method Summary collapse
- #backward ⇒ Object
- #forward(x) ⇒ Object
-
#initialize(l1_lambda = 0.01, l2_lambda = 0.01) ⇒ L1L2
constructor
A new instance of L1L2.
- #to_hash ⇒ Object
Constructor Details
#initialize(l1_lambda = 0.01, l2_lambda = 0.01) ⇒ L1L2
Returns a new instance of L1L2.
81 82 83 84 |
# File 'lib/dnn/core/regularizers.rb', line 81 def initialize(l1_lambda = 0.01, l2_lambda = 0.01) @l1_lambda = l1_lambda @l2_lambda = l2_lambda end |
Instance Attribute Details
#l1_lambda ⇒ Object
Returns the value of attribute l1_lambda.
74 75 76 |
# File 'lib/dnn/core/regularizers.rb', line 74 def l1_lambda @l1_lambda end |
#l2_lambda ⇒ Object
Returns the value of attribute l2_lambda.
75 76 77 |
# File 'lib/dnn/core/regularizers.rb', line 75 def l2_lambda @l2_lambda end |
Class Method Details
Instance Method Details
#backward ⇒ Object
92 93 94 95 96 97 |
# File 'lib/dnn/core/regularizers.rb', line 92 def backward dparam = Xumo::SFloat.ones(*@param.data.shape) dparam[@param.data < 0] = -1 @param.grad += @l1_lambda * dparam @param.grad += @l2_lambda * @param.data end |
#forward(x) ⇒ Object
86 87 88 89 90 |
# File 'lib/dnn/core/regularizers.rb', line 86 def forward(x) l1 = @l1_lambda * @param.data.abs.sum l2 = 0.5 * @l2_lambda * (@param.data**2).sum x + l1 + l2 end |
#to_hash ⇒ Object
99 100 101 |
# File 'lib/dnn/core/regularizers.rb', line 99 def to_hash super(l1_lambda: l1_lambda, l2_lambda: l2_lambda) end |