Yawn is built on top of three fundamental concepts: neural networks, environments and experiments.
A neural network class extends yawn.nn.NeuralNetwork
implementing all the
computational logic behind a given neural model. Note that although we have chosen the term
`neural network' any other machine learning method can be added to Yawn.
A test environment is any program or system capable of supplying train and testing
datasets to Yawn and receives predictions in order to process and asses them. For example,
the PlainTextEnvironment (yawn.envs.plaintext.PlainTextEnvironment
) read data
from a text file and produces a text file with the predictions obtained by Yawn. All
environment classes extends yawn.envs.Environment
.
Finally, an experiment is the combination of a particular setup of a neural network and a test environment.
A network committee (yawn.nn.committe.NetworkCommittee
) is an extension to yawn.nn.NeuralNetwork
that does not
represents a neural network. Instead, it represents a committee or set of neural networks that are trained with the
same dataset (this is not completely true since each network is trained with a different ordering of the dataset).
This set can be later used concurrently to generate predictions more statistically valid.
One of the benefits of the NetworkCommittee class is that it can contain different implementations of neural models and/or models with a different set of initial parameters. The networks that are members of a committee are trained in a multi-threaded fashion. Keep this in mind when implementing your own models.