Welcome to sofenn (sounds like soften)!
This package is a Keras/TensorFlow implementation of a Self-Organizing Fuzzy Neural Network. The sofenn framework
consists of two models:
(1) Fuzzy Network - Underlying fuzzy network whose parameters are optimized during training
(2) Self-Organizer - Meta-model that optimizes the architecture of the Fuzzy Network
Underlying neural network model that contains parameters to be optimized during training
Meta-model to optimize architecture of underlying fuzzy network
The model is implemented per the description in:
'An on-line algorithm for creating self-organizing fuzzy neural networks\'
Leng, Prasad, McGinnity (2004)
Fuzzy Neural Network Architecture
Credit: Leng, Prasad, McGinnity (2004)
Input layer of network
Radial (Ellipsoidal) Basis Function Layer
each neuron represents "if-part" or premise of a fuzzy rule
individual Membership Functions (MF) are applied to each feature for each neuron
output is product of Membership Functions
each MF is Gaussian function:
output for Fuzzy Layer is:
Information flow of r features within neuron j
Credit: Leng, Prasad, McGinnity (2004)
Normalization Layer
output of each neuron is normalized by total output from previous layer
number of outputs equal to previous layer (# of neurons)
output for Normalized Layer is:
Weighting of ith MF of each feature
with:
-output for weighted layer is:
Final Output
output for fuzzy layer is:
for u neurons
final layer for regression problems
Classification Output