Developer Guide for Intel® Data Analytics Acceleration Library 2017 Update 3

Neural Networks

Artificial neural networks are mathematical models inspired by their biological counterparts. A neural network is an information processing system used to approximate functions of large numbers of arguments. Neural networks are applied to solve different kinds of machine learning tasks, such as image and video processing [Szegedy13], classification, text recognition or natural language understanding, and others [LeCun15]. At a high level, in Intel DAAL a neural network comprises:

A layer can perform forward and backward computations. For a list of available layers and descriptions of their usage, see Layers. The information about the order of layers is stored in the model. Intel DAAL supports graph organization of layers and has special layers that used for that.

In addition to the order of layers, the model also contains information about weights and biases being optimized in each computation step using the optimization solver.

Intel DAAL provides different optimization solvers. For the descriptions and usages of the solvers, see Optimization Solvers.

For data storage and computations, neural networks use tensors, multidimensional data structures. For more details, see Tensors.

Flexibility of Intel DAAL allows you to create your own neural network configuration by choosing the topology, as well as number of layers and layer types. You can even create your own layers or optimization solvers by deriving from relevant classes.