Java

Encog 2.3(beta) adds Scaled Conjugate Gradient (Levenberg-Marquardt) Training

in

We just added a new training technique. I really need to test this out more, but so far it outperforms RPROP on anything I've given it. We also have it fully multithreaded, so I really think this is going to become the training algorithm of choice for Encog. It is called Scaled Conjugate Gradient (Levenberg-Marquardt) Training. So far I am really impressed with it! It is quite easy to use.

Train train = new ScaledConjugateGradient(network, trainingSet);

Java only... for now... this will be part of the official 2.3 release which should come out in the Jan/Feb timeframe.

Programming Contributions

Are you a Java or C# programmer? Would you like to contribute some time to the Encog project? We are always looking for volunteers, and at all skill levels. You do need to be proficient with Java or C#, but you by no means need to be an AI expert. We are, of course, glad to have AI experts help! But we usually have tasks available that do not require advanced knowledge of AI.

Suggesting New Features

Generating Code

    The Encog workbench provides two ways that you can make use of your neural network in Java code. First, you can save the neural network and training data to an .EG file. Java applications can then load data from this .EG file. Using .EG files will be covered in much greater detail in Chapter 9, “Encog Persistence”.

    Another way to generate code is to use the Encog Workbench. The Encog workbench can generate code in the following languages.

Chapter 1: Introduction to Encog

  • The Encog Framework
  • What is a Neural Network?
  • Using a Neural Network
  • Training a Neural Network

Choosing the Best C# Array Type for Matrix Multiplication

Implementing 2D arrays in C# involves some decisions as to how to represent the array. C# has two different types of arrays. This is somewhat different than the Java programming language, which supports only a single type of array. In C# you must choose between rectangular and jagged arrays. There are very important considerations for each of these array types. There are also many articles about the differences between array handling in Java and C#. This article focuses on one thing-- performance. Particularly how to implement a matrix with the best performance.

Java Radial Basis Function Neural Network

The Radial Basis Function neural network contains a hidden layer based on radial basis functions (RBF). A radial basis function is a function that peaks in the center and rapidly falls off in each direction along an axis. One of the most common examples of a RBF is the Gaussian function. The hidden layer consists of one or more RBF's. This allows for a complex function to be modeled inside of the hidden layers. RBF neural networks are used for a variety of purposes, such as function approximation and prediction.

Java Neural Network

A neural network is a mathematical construct that attempts to emulate the way that actual neural networks, in the brain, work. A neural network accepts input and produces output. The input and output are usually both floating point arrays. Neural networks can be implemented in a variety of programming languages. This page focuses on using neural networks with Java.

Encog Presentation at Gateway Java Users Group (St. Louis)

On Tuesday, June 2, 2009 I will do a presentation on Encog at the Gateway Java Users Group in St. Louis, MO at 6:00 PM. The information on this presentation can be found here. I will post the material for this presentation online after I complete it.

Implementing a Java Neural Network with the Encog Framework

Introduction to Groovy

In this article I am going to present a brief introduction to the Groovy programming language. Groovy can be very beneficial to the artificial intelligence programmer. When training a neural network for pattern recognition it is often necessary to pre-process the data considerably before training the neural network. This is particularly true for temporal pattern recognition. Additionally control and training sets must be established, often by statistical analysis. Groovy allows you to very quickly create such code in a scripted way, without all of the ceremony of regular Java.

Syndicate content

Copyright 2005 - 2010 by Heaton Research, Inc.. Heaton Research™ and Encog™ are trademarks of Heaton Research. Click here for copyright and trademark information.