You are here

Considerations for Creating a Javascript Library

In this article I will discuss some of the basics of creating a reusable framework for Javascript. I am the primary developer for the Encog Machine Learning Framework.

New tutorial series Basic Machine Learning

I began a new tutorial series, on basic Machine Learning. This is an ongoing format that I am experimenting with. I am posting a short index card of notes as I build from simple topics to more complex ones. You can see the cards posted on either my Twitter or Facebook feeds.!/jeffheaton

What version of Java do you use?

GPU Round Two

I continue to work on adding GPU processing to Encog. GPU processing is tricky, but I feel I am finally starting to get the hang of it. Round one of adding GPU processing to Encog occurred about a year ago, and ultimately, I was not successful. I attempted to simply convert existing Encog RPROP training to an OpenCL program. I was successful in creating the application. I actually got my GPU to train a neural network. However, the GPU version of Encog 2.x really did not add much speed.

Encog 3.1 (Java and C#) Released to Beta

There are now beta versions of Encog 3.1 available for download. This version of Encog adds support for Bayesian Networks, Hidden Markov Machines, Nelder Mead Training, and many other smaller improvements to both the Workbench and Encog Core.

I have all of the features that I want in Encog 3.1 at this point, and I believe most major bugs have been found. Of course, if you find any bugs in this release, please let us know.

Download links:

High Level Overview of Neural Network Training

Neural Network training can be a long process. Encog provides many different training methods to choose from. Many of these training methods contain multiple parameters that you must optimize. Understanding some of the basics of neural network training can help you to pick the training process that best suits your needs.

Choosing Between nVidia CUDA, GeForce and Tesla

Over the past few weeks I've been learning more about GPU programming. With GPU programming there are decisions to make. Should you use OpenCL, CUDA or perhaps DirectCompute. Once you've picked your platform, you will need a mid to high-end GPU card. GPU card speeds vary greatly. The first time I attempted GPU programming I did so with the same GPU that my computer came with. The GPU was compatible with CUDA and OpenCL. However it was not very fast, and I was making decisions about how to structure Encog based on obsolete hardware.

The Future of Encog GPU/OpenCL Usage

We are currently wrapping up Encog 3.1 on the Java side, and will soon begin efforts to port new enhancements to the C# side. I will be working some with some of the other Encog developers as they port and tie up any lose ends in 3.1. However my main focus will be pushing some of the new directions for Encog in 3.2. I put up a poll recently seeking votes on what new features are needed most in Encog. This poll is still ongoing, so feel free to weigh in. You can see it here.

Neural Network Forums: 

Important features for upcoming Encog versions? (these are the ones that are on my mind at the moment)

What I Learned about AI from Stanford’s AI Class

From October through December 2011 Stanford University offered three of their most popular classes online. These classes were offered for free to anyone who chose to participate. The first class offered was “Introduction to Artificial Intelligence”, taught by Sebastian Thrun and Peter Norvig. Both highly accomplished researchers and members of the faculty at Stanford. Following on the huge amount of interest in the AI class, two additional courses were announced as well.


Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer