3.5. renom.optimizers package

class Adagrad ( model , lr=0.01 , weight_decay=None , epsilon=1e-08 )

ベースクラス: renom.optimizers.optimizer.Optimizer

Adagradによる勾配降下法を実行するクラス。

パラメータ:
  • model ( Model ) – ニューラルネットワークモデル
  • lr ( float ) – 学習率
  • weight_decay ( float ) – L2正則化項の重み係数
  • epsilon ( float ) – 安定化パラメータ
class Adam ( model , lr=0.001 , g=0.999 , b=0.9 , weight_decay=None , epsilon=1e-08 )

ベースクラス: renom.optimizers.optimizer.Optimizer

Adamによる勾配降下法を実行するクラス。

パラメータ:
  • model ( Model ) – ニューラルネットワークモデル
  • lr ( float ) – 学習率
  • g ( float ) – 定数
  • b ( float ) – 定数
  • weight_decay ( float ) – L2正則化項の係数
  • epsilon ( float ) – 安定化パラメータ
class Optimizer ( model , lr=0.1 , weight_decay=None , epsilon=1e-08 )

ベースクラス: object

勾配降下アルゴリズムの基底クラス。

パラメータ:
  • model ( Model ) – ニューラルネットワークモデル
  • lr ( float ) – 学習率
  • weight_decay ( float ) – L2正則化項の重み係数

Model内に定義されているforward, backwardなどの関数は、 Optimizerオブジェクトからも実行することができる。

>>> import numpy as np
>>> from renom.model import Model
>>> import renom.layers as L
>>> from renom.optimizers import Sgd
>>> 
>>> model = Model(
...      layers = [
...          L.Input(unit = 2),
...          L.Dense(unit = 10),
...          L.Relu(),
...          L.Dense(unit = 1),
...          L.Mean_squared_error()
... ])
>>> opt = Sgd(model, lr = 0.01)    # Optimizerに、定義したmodelを渡す。
>>>
>>> x = np.array([[1, 2], [3, 4]])
>>> y = np.array([[1], [0]])
>>>
>>> opt.forward(x, y)       # 順伝播計算
array(0.2450914978981018, dtype=float32)
>>> opt.backward()          # 逆伝播計算
array([[-0.02787184,  0.00842109],
       [ 0.00142325, -0.00043001]], dtype=float32)
>>> opt.update()            # 重み更新
class Rmsprop ( model , lr=0.001 , g=0.9 , weight_decay=None , epsilon=1e-08 )

ベースクラス: renom.optimizers.optimizer.Optimizer

Rmspropによる勾配降下法を実行するクラス。

パラメータ:
  • model ( Model ) – ニューラルネットワークモデル
  • lr ( float ) – 学習率
  • g ( float ) – 定数
  • weight_decay ( float ) – L2正則化項の係数
  • epsilon ( float ) – 安定化パラメータ
class Sgd ( model , lr=0.01 , momentum=0.1 , nesterov=False , weight_decay=None )

ベースクラス: renom.optimizers.optimizer.Optimizer

確率的勾配降下法を定義下クラス。以下の式で各レイヤの重みが更新される。

w \gets w - lr * \Delta w
パラメータ:
  • model ( Model ) – ニューラルネットワークモデル
  • lr ( float ) – 学習率
  • momentum ( float ) – モメンタム係数
  • nesterov ( boolean ) – nesterov項の使用有無
  • weight_decay ( float ) – L2正則化項の重み係数