Data Processing
In order to classify data by a neural network, the network has to learn
a feature representation of the data. Usually, this is achieved by
training on a big set of labelled data. Labelling histological data,
however, is time-consuming and expensive. A solution to that issue is to
train the network in an unsupervised manner. To do so we implemented a
convolutional autoencoder (CAE). Those neural networks have a bottleneck
in their architecture. This bottleneck forces the network to learn a
reduced representation of the data. This reduced representation can then
be used as input for a classifier network.
We fed the single-pixel spectra of the two-dimensional dataset into the
ANN. A total number of over 1 million single spectra from different IR
datasets was used to pre-train the CAE. Using a large variety of data
allows the neural network to learn the features of the IR data without
the danger of overfitting the network [29].
The neural network was implemented using Python and Tensorflow. The
training of the Autoencoder took around 4 hours on an NVidia GTX 1080
GPU. After this network preparation, the so-called decoder part (blue
layers in Figure 1a ) of the Autoencoder has been removed. The
updated neural network ends at the bottleneck. All the layers are frozen
at this point, which means they cannot be altered anymore by further
training. With that, the previous feature extraction capabilities are
preserved. Next, a small neural network consisting of two layers with
ten fully connected neurons is added to the network. These two layers
are connected to the output of the network, which, depending on the
task, consists of several (for multiclass classification) or one (for
binary classification) output neurons (Figure 1b ).