This tutorial will show how to implement Deep Neural Network for pixel based supervised classification of Sentinel-2 multispectral images using H20 package in R.
H2O is an open source, in-memory, distributed, fast, and scalable machine learning and predictive analytics platform that allows you to build machine learning models on big data and provides easy productionalization of those models in an enterprise environment. It's core code is written in Java and can read data in parallel from a distributed cluster and also from local culster. H2O allows access to all the capabilities of H2O from an external program or script via JSON over HTTP. The Rest API is used by H2O's web interface (Flow UI), R binding (H2O-R), and Python binding (H2O-Python). Requirement and installation steps in R can be found here here.
We will use the Deep Neural Network algorithm using H20 package in R for image classification. First, we will split "point_data" into a training set (75% of the data), a validation set (12%) and a test set (13%) data.The validation data set will be used to optimize the model parameters during training process.The model's performance will be tested with the data set and then we will predict landuse clasess on grid data set. The point and grid data can be download as rar, 7z and zip format.
Tuning and Optimizations parameters:
- Four hidden layers with 200 neurons and Rectifier Linear (ReLU) as a activation function of neurons.
- The default stochastic gradient descent function will be used to optimize different objective functions and to minimize training loss.
- To reduce the generalization error and the risk of over-fitting of the model, we will use set low values for L1 and L2 regularizations.
- The model will be cross validated with 10 folds with stratified sampling
- The model will be run with 100 epochs.
More details of Tuning and Optimizations parameters of H20 Deep Neural Network for supervised classification can be found here