hnn-0.1: A minimal Haskell Neural Network LibraryContentsIndex
AI.HNN.Neuron
Contents
Type Definitions, type class instances
Neuron creation
Transfer functions
Neuron output computation
Neuron learning with Widrow-Hoff (Delta rule)
Description
Neuron module, defining an artificial neuron type and the basical operations we can do on it
Synopsis
data Neuron = Neuron {
threshold :: Double
weights :: UArr Double
func :: Double -> Double
}
createNeuronU :: Double -> UArr Double -> (Double -> Double) -> Neuron
createNeuronHeavysideU :: Double -> UArr Double -> Neuron
createNeuronSigmoidU :: Double -> UArr Double -> Neuron
createNeuron :: Double -> [Double] -> (Double -> Double) -> Neuron
createNeuronHeavyside :: Double -> [Double] -> Neuron
createNeuronSigmoid :: Double -> [Double] -> Neuron
heavyside :: Double -> Double
sigmoid :: Double -> Double
computeU :: Neuron -> UArr Double -> Double
compute :: Neuron -> [Double] -> Double
learnSampleU :: Double -> Neuron -> (UArr Double, Double) -> Neuron
learnSample :: Double -> Neuron -> ([Double], Double) -> Neuron
learnSamplesU :: Double -> Neuron -> [(UArr Double, Double)] -> Neuron
learnSamples :: Double -> Neuron -> [([Double], Double)] -> Neuron
Type Definitions, type class instances
data Neuron
Our Artificial Neuron type
Constructors
Neuron
threshold :: Double
weights :: UArr Double
func :: Double -> Double
show/hide Instances
Neuron creation
createNeuronU :: Double -> UArr Double -> (Double -> Double) -> Neuron
Creates a Neuron with the given threshold, weights and transfer function
createNeuronHeavysideU :: Double -> UArr Double -> Neuron
Equivalent to `createNeuronU t ws heavyside'
createNeuronSigmoidU :: Double -> UArr Double -> Neuron
Equivalent to `createNeuronU t ws sigmoid'
createNeuron :: Double -> [Double] -> (Double -> Double) -> Neuron
Same as createNeuronU, with a list instead of an UArr for the weights (converted to UArr anyway)
createNeuronHeavyside :: Double -> [Double] -> Neuron
Same as createNeuronHeavysideU, with a list instead of an UArr for the weights (converted to UArr anyway)
createNeuronSigmoid :: Double -> [Double] -> Neuron
Same as createNeuronSigmoidU, with a list instead of an UArr for the weights (converted to UArr anyway)
Transfer functions
heavyside :: Double -> Double
The Heavyside function
sigmoid :: Double -> Double
The Sigmoid function
Neuron output computation
computeU :: Neuron -> UArr Double -> Double
Computes the output of a given Neuron for given inputs
compute :: Neuron -> [Double] -> Double
Computes the output of a given Neuron for given inputs
Neuron learning with Widrow-Hoff (Delta rule)
learnSampleU :: Double -> Neuron -> (UArr Double, Double) -> Neuron
Trains a neuron with the given sample, of the form (inputs, wanted_result) and the given learning ratio (alpha)
learnSample :: Double -> Neuron -> ([Double], Double) -> Neuron
learnSamplesU :: Double -> Neuron -> [(UArr Double, Double)] -> Neuron
Trains a neuron with the given samples and the given learning ratio (alpha)
learnSamples :: Double -> Neuron -> [([Double], Double)] -> Neuron
Trains a neuron with the given samples and the given learning ratio (alpha)
Produced by Haddock version 2.4.2