Encog is a
machine learning
Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
framework available for
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
and
.Net
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
.
[J. Heaton http://www.jmlr.org/papers/volume16/heaton15a/heaton15a.pdf Encog: Library of Interchangeable Machine Learning Models for Java and C#]
Encog supports different learning algorithms such as
Bayesian Networks
A Bayesian network (also known as a Bayes network, Bayes net, belief network, or decision network) is a probabilistic graphical model that represents a set of variables and their Conditional dependence, conditional dependencies via a directed a ...
,
Hidden Markov Models and
Support Vector Machines
In machine learning, support vector machines (SVMs, also support vector networks) are supervised max-margin models with associated learning algorithms that analyze data for classification and regression analysis. Developed at AT&T Bell Laborato ...
.
However, its main strength lies in its
neural network
A neural network is a group of interconnected units called neurons that send signals to one another. Neurons can be either biological cells or signal pathways. While individual neurons are simple, many of them together in a network can perfor ...
algorithms. Encog contains classes to create a wide variety of networks, as well as support classes to normalize and process data for these neural networks. Encog trains using many different techniques. Multithreading is used to allow optimal training performance on multicore machines.
Encog can be used for many tasks, including medical
[D. Heider, J. Verheyen, D. Hoffmann http://www.biomedcentral.com/content/pdf/1471-2105-11-37.pdf Predicting Bevirimat resistance of HIV-1 from genotype] and financial research.
[J. Heaton http://www.devx.com/opensource/Article/44014/1954 Basic Market Forecasting with Encog Neural Networks] A GUI based workbench is also provided to help model and train neural networks. Encog has been in active development since 2008.
[http://www.heatonresearch.com/encog Description of Encog Project.]
Neural Network Architectures
*
ADALINE Neural Network
*
Adaptive Resonance Theory 1 (ART1)
*
Bidirectional Associative Memory (BAM)
*
Boltzmann Machine
A Boltzmann machine (also called Sherrington–Kirkpatrick model with external field or stochastic Ising model), named after Ludwig Boltzmann, is a spin glass, spin-glass model with an external field, i.e., a Spin glass#Sherrington–Kirkpatrick m ...
* Counterpropagation Neural Network (CPN)
*
Elman Recurrent Neural Network
*
Neuroevolution of augmenting topologies (NEAT)
*
Feedforward Neural Network (Perceptron)
*
Hopfield Neural Network
*
Jordan Recurrent Neural Network
*
Radial Basis Function Network
In the field of mathematical modeling, a radial basis function network is an artificial neural network that uses radial basis functions as activation functions. The output of the network is a linear combination of radial basis functions of the in ...
* Recurrent Self Organizing Map (RSOM)
*
Self Organizing Map (Kohonen)
Training techniques
*
Backpropagation
In machine learning, backpropagation is a gradient computation method commonly used for training a neural network to compute its parameter updates.
It is an efficient application of the chain rule to neural networks. Backpropagation computes th ...
*
Resilient Propagation (RProp)
*
Scaled Conjugate Gradient (SCG)
*
Levenberg–Marquardt algorithm
*
Manhattan Update Rule Propagation
*
Competitive learning Competitive learning is a form of unsupervised learning in artificial neural networks, in which nodes compete for the right to respond to a subset of the input data. A variant of Hebbian learning, competitive learning works by increasing the special ...
*
Hopfield Learning
*
Genetic algorithm training
* Instar Training
* Outstar Training
*
ADALINE Training
See also
*
JOONE: another
neural network
A neural network is a group of interconnected units called neurons that send signals to one another. Neurons can be either biological cells or signal pathways. While individual neurons are simple, many of them together in a network can perfor ...
programmed in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
*
FANN, a neural network written in
C with bindings to most other languages.
*
Deeplearning4j: An open-source deep learning library written for Java/C++ w/LSTMs and convolutional networks. Parallelization with Apache Spark and Aeron on CPUs and GPUs.
References
{{Reflist
External links
Encog HomepageEncog Project (GitHub)Basic Market Forecasting with Encog Neural Networks (DevX Article)An Introduction to Encog Neural Networks for Java (Code Project)Benchmarking and Comparing Encog, Neuroph and JOONE Neural Networks
Neural network software
Free science software
Java (programming language) software
Free data analysis software