# Tensor Machine Learning

Tensor Machine Learning refers to a concept of using a multi-dimensional array when learning from big data in a specific way. More general information about a tensor can be found in our article What is a Tensor. **This article focusses on the use of tensors in machine learning providing one particular usage example.** Our example is in the field of deep learning using a convolutional neural network (CNN) for image data analysis. In our example a CNN is learning one function that maps the input image data **x** to an output vector **y** that represents the image label. Given the CNN architecture this one function is indeed a composition of a sequence of simpler functions that are called layers that in turn consists of specific computational elements.

In order to work with frameworks like the Tensorflow Tool we use a three dimensional tensor to encode the inherent spatial structure of the two dimensional image data and given image features. **As shown in the illustration above the first two dimensions in our multi-dimensional tensor is height H_{l} and width W_{l} to include the spatial dimensions of the image.** The third dimension is used to encode the number of feature channels

**C**, one for each spatial location.

_{l}**Our illustration example above uses three feature channels for**But this is just one example and the encoding of images can be done differently depending on the application domain and data available. Another example is the use of

**C**in order to represent the three color channels RGB of a typical colored image._{l}**C**for 200 spectral channels in a hyper-spectral image data analysis task like within remote sensing that is listed in our article on Deep Learning Applications.

_{l}When processing data using the tensor in a real learning task we often use several data samples together in a single batch. **In orer to enable efficient parallel processing the tensor thus has a fourth dimension N_{l} that spans multiple data samples in a single batch.** The exact number of data samples

**N**in such a batch is also called the batch cardinality. The arrow in the illustration above should therefore indicate the starting of the processing through the whole CNN architecture using the computing elements of different layers in order to finally obtain the output vector

_{l}**y**as image label in the final layer. Throughout the computing the tensor above will be several times modified and transformed, for instance by obtaining feature maps after convolutions.

## Tensor Machine Learning Details

The following video provides more pieces of information about this subject: