prototorch_models/docs/source/library.rst

118 lines
3.6 KiB
ReStructuredText
Raw Normal View History

2021-05-13 13:22:32 +00:00
.. Available Models
2021-05-21 13:42:45 +00:00
Models
2021-05-13 13:22:32 +00:00
========================================
2021-05-26 19:29:37 +00:00
.. image:: _static/img/model_tree.png
:width: 600
2021-05-13 13:22:32 +00:00
Unsupervised Methods
-----------------------------------------
2021-06-08 13:01:08 +00:00
.. autoclass:: prototorch.models.knn.KNN
2021-05-13 13:22:32 +00:00
:members:
2021-05-21 13:42:45 +00:00
.. autoclass:: prototorch.models.unsupervised.NeuralGas
2021-05-13 13:22:32 +00:00
:members:
2021-06-01 15:19:43 +00:00
.. autoclass:: prototorch.models.unsupervised.GrowingNeuralGas
:members:
2021-05-13 13:22:32 +00:00
Classical Learning Vector Quantization
-----------------------------------------
2021-05-26 19:20:17 +00:00
Original LVQ models introduced by :cite:t:`kohonen1989`.
2021-05-21 13:42:45 +00:00
These heuristic algorithms do not use gradient descent.
2021-05-13 13:22:32 +00:00
.. autoclass:: prototorch.models.lvq.LVQ1
2021-05-13 13:22:32 +00:00
:members:
.. autoclass:: prototorch.models.lvq.LVQ21
2021-05-13 13:22:32 +00:00
:members:
2021-05-26 19:20:17 +00:00
It is also possible to use the GLVQ structure as shown by :cite:t:`sato1996` in chapter 4.
2021-05-21 13:42:45 +00:00
This allows the use of gradient descent methods.
.. autoclass:: prototorch.models.glvq.GLVQ1
:members:
.. autoclass:: prototorch.models.glvq.GLVQ21
:members:
2021-05-13 13:22:32 +00:00
Generalized Learning Vector Quantization
-----------------------------------------
2021-05-26 19:20:17 +00:00
:cite:t:`sato1996` presented a LVQ variant with a cost function called GLVQ.
This allows the use of gradient descent methods.
2021-05-13 13:22:32 +00:00
.. autoclass:: prototorch.models.glvq.GLVQ
:members:
2021-05-26 19:20:17 +00:00
The cost function of GLVQ can be extended by a learnable dissimilarity.
These learnable dissimilarities assign relevances to each data dimension during the learning phase.
For example GRLVQ :cite:p:`hammer2002` and GMLVQ :cite:p:`schneider2009` .
2021-05-13 13:22:32 +00:00
.. autoclass:: prototorch.models.glvq.GRLVQ
:members:
.. autoclass:: prototorch.models.glvq.GMLVQ
:members:
2021-05-26 19:20:17 +00:00
The dissimilarity from GMLVQ can be interpreted as a projection into another dataspace.
Applying this projection only to the data results in LVQMLN
2021-05-13 13:22:32 +00:00
.. autoclass:: prototorch.models.glvq.LVQMLN
:members:
2021-05-26 19:20:17 +00:00
The projection idea from GMLVQ can be extended to an arbitrary transformation with learnable parameters.
.. autoclass:: prototorch.models.glvq.SiameseGLVQ
:members:
Probabilistic Models
--------------------------------------------
Probabilistic variants assume, that the prototypes generate a probability distribution over the classes.
For a test sample they return a distribution instead of a class assignment.
The following two algorithms were presented by :cite:t:`seo2003` .
2021-05-26 19:20:17 +00:00
Every prototypes is a center of a gaussian distribution of its class, generating a mixture model.
.. autoclass:: prototorch.models.probabilistic.SLVQ
2021-05-26 19:20:17 +00:00
:members:
.. autoclass:: prototorch.models.probabilistic.RSLVQ
:members:
:cite:t:`villmann2018` proposed two changes to RSLVQ: First incorporate the winning rank into the prior probability calculation.
2021-06-08 13:01:08 +00:00
And second use divergence as loss function.
2021-05-26 19:20:17 +00:00
2021-06-08 13:01:08 +00:00
.. autoclass:: prototorch.models.probabilistic.PLVQ
:members:
2021-05-26 19:20:17 +00:00
2021-05-21 13:42:45 +00:00
Classification by Component
2021-05-26 19:20:17 +00:00
--------------------------------------------
The Classification by Component (CBC) has been introduced by :cite:t:`saralajew2019` .
In a CBC architecture there is no class assigned to the prototypes.
Instead the dissimilarities are used in a reasoning process, that favours or rejects a class by a learnable degree.
The output of a CBC network is a probability distribution over all classes.
2021-05-13 13:22:32 +00:00
.. autoclass:: prototorch.models.cbc.CBC
:members:
.. autoclass:: prototorch.models.cbc.ImageCBC
2021-05-21 13:42:45 +00:00
:members:
Visualization
========================================
2021-05-26 19:20:17 +00:00
Visualization is very specific to its application.
PrototorchModels delivers visualization for two dimensional data and image data.
The visualizations can be shown in a separate window and inside a tensorboard.
2021-05-26 19:20:17 +00:00
2021-05-21 13:42:45 +00:00
.. automodule:: prototorch.models.vis
:members:
2021-05-26 19:20:17 +00:00
:undoc-members:
Bibliography
========================================
.. bibliography::