Perpetual Abstraction     About     Research     Resume     Archive     Feed
Ramblings of a rogue Mathematician

System Identification using Gaussian Processes: Santa Fe Laser Data Set

System Identification

For a short introduction to system identification and some common models refer to this previous post. Below I give a short tour of the Santa Fe Laser example which comes shipped with the DynaML machine learning library.

Santa Fe Laser Generated Data

Santa Fe

The Santa Fe laser data is a standard benchmark data set in system identification. It serves as good starting point to start exploring time series models. It records only one observable (laser intensity), has little noise and is generated from a known physics dynamical process. A more detailed explanation is given below.

The measurements were made on an 81.5-micron 14NH3 cw (FIR) laser, pumped optically by the P(13) line of an N2O laser via the vibrational aQ(8,7) NH3 transition. The basic laser setup can be found in Ref. 1. The intensity data was recorded by a LeCroy oscilloscope. No further processing happened. The experimental signal to noise ratio was about 300 which means slightly under the half bit uncertainty of the analog to digital conversion. The data is a cross-cut through periodic to chaotic intensity pulsations of the laser. Chaotic pulsations more or less follow the theoretical Lorenz model (see References) of a two level system.


Santa Fe Laser: NAR model

The data set is unidimensional, so we can only train a Nonlinear Auto-Regressive (NAR) model for the laser intensity. Choosing the auto-regressive order , we train two candidate NAR models.

Choice of Kernel Function

For this problem we build models based on two kernels.

  • Radial Basis Function (RBF):
SantaFeLaser(new RBFKernel(1.5), new DiracKernel(1.0),
opt = Map("globalOpt" -> "GS", "grid" -> "9", "step" -> "0.1"),
num_training = 200, num_test = 500, deltaT = 2)
16/03/07 22:03:10 INFO RegressionMetrics: Regression Model Performance: Laser Intensity
16/03/07 22:03:10 INFO RegressionMetrics: ============================
16/03/07 22:03:10 INFO RegressionMetrics: MAE: 10.919757407593648
16/03/07 22:03:10 INFO RegressionMetrics: RMSE: 18.527723082632765
16/03/07 22:03:10 INFO RegressionMetrics: RMSLE: 0.41343485025397475
16/03/07 22:03:10 INFO RegressionMetrics: R^2: 0.8550953005807426
16/03/07 22:03:10 INFO RegressionMetrics: Corr. Coefficient: 0.928916961722154
16/03/07 22:03:10 INFO RegressionMetrics: Model Yield: 0.6597256758459964
16/03/07 22:03:10 INFO RegressionMetrics: Std Dev of Residuals: 18.1615168822832

Steam Fe

Santa Fe

  • Fractional Brownian Field (FBM):
DynaML>SantaFeLaser(new FBMKernel(1.1), new DiracKernel(1.0),
opt = Map("globalOpt" -> "GS", "grid" -> "10", "step" -> "0.1"),
num_training = 200, num_test = 500, deltaT = 2)
16/03/07 22:07:46 INFO RegressionMetrics: Regression Model Performance: Laser Intensity
16/03/07 22:07:46 INFO RegressionMetrics: ============================
16/03/07 22:07:46 INFO RegressionMetrics: MAE: 8.466099689528546
16/03/07 22:07:46 INFO RegressionMetrics: RMSE: 13.523138654434868
16/03/07 22:07:46 INFO RegressionMetrics: RMSLE: 0.38303731310173433
16/03/07 22:07:46 INFO RegressionMetrics: R^2: 0.9228042537204268
16/03/07 22:07:46 INFO RegressionMetrics: Corr. Coefficient: 0.964525269647539
16/03/07 22:07:46 INFO RegressionMetrics: Model Yield: 0.7656581073289345
16/03/07 22:07:46 INFO RegressionMetrics: Std Dev of Residuals: 14.742253950108552

Steam Fe

Santa Fe

Source Code

If you liked this post, you can share it with your followers or follow me on Twitter!