synapse-0.1.0.0: Synapse is a machine learning library written in pure Haskell.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Synapse.NN.Optimizers

Description

This module implements several optimizers that are used in training.

Synopsis

Optimizer typeclass

class Optimizer optimizer where Source #

Optimizer typeclass represents optimizer - algorithm that defines an update rule of neural network parameters.

Associated Types

type OptimizerParameters optimizer a :: Type Source #

OptimizerParameters represent optimizer-specific parameters that it needs to implement update rule.

Methods

optimizerInitialParameters :: Num a => optimizer a -> Mat a -> OptimizerParameters optimizer a Source #

Returns initial state of optimizer-specific parameters for given variable.

optimizerUpdateStep Source #

Arguments

:: Num a 
=> optimizer a

Optimizer itself.

-> (a, Mat a)

Learning rate and gradient of given parameter.

-> (Mat a, OptimizerParameters optimizer a)

Given parameter and current state of optimizer-specific parameters.

-> (Mat a, OptimizerParameters optimizer a)

Updated parameter and a new state of optimizer-specific parameters.

Performs the update step of optimizer.

Instances

Instances details
Optimizer SGD Source # 
Instance details

Defined in Synapse.NN.Optimizers

Associated Types

type OptimizerParameters SGD a Source #

optimizerUpdateParameters Source #

Arguments

:: (Symbolic a, Optimizer optimizer) 
=> optimizer a

Optimizer itself.

-> (a, Gradients (Mat a))

Learning rate and gradients of all parameters.

-> [(SymbolMat a, OptimizerParameters optimizer a)]

Given parameters and current state of optimizer-specific parameters.

-> [(Mat a, OptimizerParameters optimizer a)]

Updated parameters and a new state of optimizer-specific parameters.

optimizerUpdateParameters function updates whole model using optimizer by performing optimizerUpdateStep for every parameter.

Optimizers

data SGD a Source #

SGD is a optimizer that implements stochastic gradient-descent algorithm.

Constructors

SGD 

Fields

Instances

Instances details
Optimizer SGD Source # 
Instance details

Defined in Synapse.NN.Optimizers

Associated Types

type OptimizerParameters SGD a Source #

Show a => Show (SGD a) Source # 
Instance details

Defined in Synapse.NN.Optimizers

Methods

showsPrec :: Int -> SGD a -> ShowS #

show :: SGD a -> String #

showList :: [SGD a] -> ShowS #

Eq a => Eq (SGD a) Source # 
Instance details

Defined in Synapse.NN.Optimizers

Methods

(==) :: SGD a -> SGD a -> Bool #

(/=) :: SGD a -> SGD a -> Bool #

type OptimizerParameters SGD a Source # 
Instance details

Defined in Synapse.NN.Optimizers

type DType (SGD a) Source # 
Instance details

Defined in Synapse.NN.Optimizers

type DType (SGD a) = a