This chapter describes a GPU-based implementation of a discriminative maximum entropy learning algorithm that can improve runtime on large datasets by a factor of over 200. A typical machine-learning algorithm creates a classification function that inductively generalizes from training examples-input features and associated classification labels-to previously unseen examples requiring labels. It is used on a variety of problems, including time series prediction for financial forecasting, machine translation, character and speech recognition, and even conservation biology. Although there are many techniques for performing such classifications, the aforementioned approaches all use one type of model: the maximum entropy classifier, also known as multinomial logistic regression. Optimizing the prediction accuracy of the learned function for complex problems can require massive amounts of training data. A learner is implemented that utilizes the parallelism of a GPU for the most common scenarios. It is likely that in the cases where matrix multiplication is not the bottleneck, performance can be improved even further by optimizing the max and sum reductions at the heart of the other kernels. Unrolling loops and/or initializing extraneous values for nonpower of two block sizes so that special cases can be eliminated should yield improved runtimes. The motivation for employing MaxEnt has been to improve character recognition in arbitrary images of natural scenes. This task is more complex than typical document-based character recognition because it involves a wide variety of fonts and uncontrolled viewing conditions. © 2011 Copyright © 2011 NVIDIA Corporation and Wen-mei W. Hwu Published by Elsevier Inc. All rights reserved..
Mendeley saves you time finding and organizing research
Choose a citation style from the tabs below