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 ).