static GaussianProcessCovarianceOptimizationProblem() { // cumbersome initialization because of ConstrainedValueParameters maternIso1 = new CovarianceMaternIso(); SetConstrainedValueParameter(maternIso1.DParameter, 1); maternIso3 = new CovarianceMaternIso(); SetConstrainedValueParameter(maternIso3.DParameter, 3); maternIso5 = new CovarianceMaternIso(); SetConstrainedValueParameter(maternIso5.DParameter, 5); piecewisePoly0 = new CovariancePiecewisePolynomial(); SetConstrainedValueParameter(piecewisePoly0.VParameter, 0); piecewisePoly1 = new CovariancePiecewisePolynomial(); SetConstrainedValueParameter(piecewisePoly1.VParameter, 1); piecewisePoly2 = new CovariancePiecewisePolynomial(); SetConstrainedValueParameter(piecewisePoly2.VParameter, 2); piecewisePoly3 = new CovariancePiecewisePolynomial(); SetConstrainedValueParameter(piecewisePoly3.VParameter, 3); poly2 = new CovariancePolynomial(); poly2.DegreeParameter.Value.Value = 2; poly3 = new CovariancePolynomial(); poly3.DegreeParameter.Value.Value = 3; spectralMixture1 = new CovarianceSpectralMixture(); spectralMixture1.QParameter.Value.Value = 1; spectralMixture3 = new CovarianceSpectralMixture(); spectralMixture3.QParameter.Value.Value = 3; spectralMixture5 = new CovarianceSpectralMixture(); spectralMixture5.QParameter.Value.Value = 5; linear = new CovarianceLinear(); linearArd = new CovarianceLinearArd(); neuralNetwork = new CovarianceNeuralNetwork(); periodic = new CovariancePeriodic(); ratQuadraticArd = new CovarianceRationalQuadraticArd(); ratQuadraticIso = new CovarianceRationalQuadraticIso(); sqrExpArd = new CovarianceSquaredExponentialArd(); sqrExpIso = new CovarianceSquaredExponentialIso(); }
public void CovMaternIsoTest() { var cov = new CovarianceMaternIso(); cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 1); TestCovarianceFunction(cov, 0, new double[,] { { 0.3504, 0.3297, 0.5736, 0.3413, 0.4721, 0.3071, 0.4052, 0.4670, 0.3995, 0.5310}, { 0.3765, 0.4317, 0.4364, 0.3649, 0.4520, 0.3261, 0.4090, 0.5328, 0.4412, 0.5155}, { 0.4891, 0.4695, 0.5618, 0.4200, 0.3432, 0.4996, 0.5545, 0.4036, 0.4729, 0.5468}, { 0.4918, 0.3358, 0.4935, 0.4420, 0.2843, 0.3562, 0.6189, 0.6027, 0.5844, 0.5373}, { 0.6085, 0.3600, 0.4844, 0.6291, 0.2643, 0.2947, 0.5017, 0.6650, 0.6440, 0.5835}, { 0.5959, 0.4556, 0.4312, 0.5456, 0.2990, 0.3593, 0.5907, 0.7278, 0.7318, 0.5848}, { 0.3720, 0.4733, 0.4507, 0.3492, 0.5928, 0.3435, 0.3972, 0.3798, 0.4041, 0.5320}, { 0.3708, 0.3810, 0.5235, 0.3344, 0.4378, 0.3775, 0.4260, 0.3309, 0.3778, 0.4967}, { 0.3884, 0.4261, 0.5860, 0.3704, 0.5063, 0.3631, 0.4172, 0.4196, 0.4088, 0.5645}, { 0.3516, 0.4413, 0.3808, 0.3253, 0.3839, 0.3700, 0.4200, 0.5215, 0.4193, 0.4426}, }, new double[][,] { new double[,] { { 0, 0.3341, 0.3674, 0.3665, 0.3647, 0.3678, 0.3380, 0.3621, 0.3122, 0.3673}, { 0.3341, 0, 0.3655, 0.3678, 0.3593, 0.3512, 0.3535, 0.3632, 0.3441, 0.2724}, { 0.3674, 0.3655, 0, 0.3679, 0.3657, 0.3678, 0.3679, 0.3518, 0.3521, 0.3639}, { 0.3665, 0.3678, 0.3679, 0, 0.3532, 0.3217, 0.3675, 0.3679, 0.3654, 0.3670}, { 0.3647, 0.3593, 0.3657, 0.3532, 0, 0.3143, 0.3661, 0.3627, 0.3645, 0.3657}, { 0.3678, 0.3512, 0.3678, 0.3217, 0.3143, 0, 0.3679, 0.3624, 0.3677, 0.3462}, { 0.3380, 0.3535, 0.3679, 0.3675, 0.3661, 0.3679, 0, 0.3343, 0.3361, 0.3678}, { 0.3621, 0.3632, 0.3518, 0.3679, 0.3627, 0.3624, 0.3343, 0, 0.3534, 0.3480}, { 0.3122, 0.3441, 0.3521, 0.3654, 0.3645, 0.3677, 0.3361, 0.3534, 0, 0.3669}, { 0.3673, 0.2724, 0.3639, 0.3670, 0.3657, 0.3462, 0.3678, 0.3480, 0.3669, 0}, }, new double[,] { { 2.0000, 1.0726, 0.6992, 0.7999, 0.8353, 0.7546, 1.0516, 0.8703, 1.1763, 0.7767}, { 1.0726, 2.0000, 0.6529, 0.7205, 0.9001, 0.9680, 0.9512, 0.6215, 1.0157, 1.3261}, { 0.6992, 0.6529, 2.0000, 0.7399, 0.8171, 0.7524, 0.7427, 0.9637, 0.9614, 0.6307}, { 0.7999, 0.7205, 0.7399, 2.0000, 0.9532, 1.1341, 0.7016, 0.7298, 0.6522, 0.6865}, { 0.8353, 0.9001, 0.8171, 0.9532, 2.0000, 1.1670, 0.6654, 0.6156, 0.8384, 0.8177}, { 0.7546, 0.9680, 0.7524, 1.1341, 1.1670, 2.0000, 0.7414, 0.6121, 0.7152, 1.0027}, { 1.0516, 0.9512, 0.7427, 0.7016, 0.6654, 0.7414, 2.0000, 1.0716, 1.0620, 0.7236}, { 0.8703, 0.6215, 0.9637, 0.7298, 0.6156, 0.6121, 1.0716, 2.0000, 0.9514, 0.5073}, { 1.1763, 1.0157, 0.9614, 0.6522, 0.8384, 0.7152, 1.0620, 0.9514, 2.0000, 0.7911}, { 0.7767, 1.3261, 0.6307, 0.6865, 0.8177, 1.0027, 0.7236, 0.5073, 0.7911, 2.0000}, }, } ); cov = new CovarianceMaternIso(); cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 1); TestCovarianceFunction(cov, 1, new double[,] { { 5.0240, 4.9127, 6.0225, 4.9757, 5.6062, 4.7858, 5.2996, 5.5839, 5.2720, 5.8539}, { 5.1587, 5.4247, 5.4464, 5.0993, 5.5171, 4.8930, 5.3181, 5.8612, 5.4683, 5.7906}, { 5.6795, 5.5947, 5.9766, 5.3703, 4.9856, 5.7244, 5.9479, 5.2920, 5.6098, 5.9177}, { 5.6910, 4.9457, 5.6984, 5.4720, 4.6518, 5.0545, 6.1936, 6.1332, 6.0640, 5.8794}, { 6.1550, 5.0740, 5.6595, 6.2308, 4.5290, 4.7142, 5.7333, 6.3593, 6.2847, 6.0607}, { 6.1078, 5.5332, 5.4226, 5.9127, 4.7394, 5.0707, 6.0880, 6.5739, 6.5871, 6.0658}, { 5.1358, 5.6116, 5.5116, 5.0174, 6.0960, 4.9875, 5.2612, 5.1753, 5.2945, 5.8581}, { 5.1296, 5.1809, 5.8235, 4.9384, 5.4528, 5.1635, 5.3983, 4.9192, 5.1652, 5.7119}, { 5.2179, 5.3989, 6.0701, 5.1278, 5.7524, 5.0900, 5.3568, 5.3681, 5.3171, 5.9874}, { 5.0301, 5.4688, 5.1800, 4.8886, 5.1954, 5.1255, 5.3700, 5.8155, 5.3671, 5.4746}, }, new double[][,] { new double[,] { { 0, 1.3467, 1.9408, 1.7781, 1.7213, 1.8512, 1.3793, 1.6654, 1.1869, 1.8156}, { 1.3467, 0, 2.0157, 1.9064, 1.6180, 1.5105, 1.5369, 2.0667, 1.4355, 0.9602}, { 1.9408, 2.0157, 0, 1.8749, 1.7505, 1.8547, 1.8704, 1.5173, 1.5209, 2.0519}, { 1.7781, 1.9064, 1.8749, 0, 1.5338, 1.2516, 1.9369, 1.8912, 2.0170, 1.9613}, { 1.7213, 1.6180, 1.7505, 1.5338, 0, 1.2011, 1.9955, 2.0764, 1.7164, 1.7495}, { 1.8512, 1.5105, 1.8547, 1.2516, 1.2011, 0, 1.8725, 2.0820, 1.9149, 1.4559}, { 1.3793, 1.5369, 1.8704, 1.9369, 1.9955, 1.8725, 0, 1.3483, 1.3632, 1.9013}, { 1.6654, 2.0667, 1.5173, 1.8912, 2.0764, 2.0820, 1.3483, 0, 1.5366, 2.2512}, { 1.1869, 1.4355, 1.5209, 2.0170, 1.7164, 1.9149, 1.3632, 1.5366, 0, 1.7923}, { 1.8156, 0.9602, 2.0519, 1.9613, 1.7495, 1.4559, 1.9013, 2.2512, 1.7923, 0}, }, new double[,] { { 14.7781, 11.7510, 10.0394, 10.5489, 10.7184, 10.3248, 11.6660, 10.8814, 12.1567, 10.4351}, { 11.7510, 14.7781, 9.7898, 10.1506, 11.0167, 11.3155, 11.2432, 9.6139, 11.5176, 12.7049}, { 10.0394, 9.7898, 14.7781, 10.2506, 10.6319, 10.3138, 10.2646, 11.2970, 11.2870, 9.6657}, { 10.5489, 10.1506, 10.2506, 14.7781, 11.2517, 11.9945, 10.0521, 10.1990, 9.7856, 9.9719}, { 10.7184, 11.0167, 10.6319, 11.2517, 14.7781, 12.1214, 9.8583, 9.5798, 10.7329, 10.6348}, { 10.3248, 11.3155, 10.3138, 11.9945, 12.1214, 14.7781, 10.2581, 9.5600, 10.1233, 11.4631}, { 11.6660, 11.2432, 10.2646, 10.0521, 9.8583, 10.2581, 14.7781, 11.7468, 11.7082, 10.1669}, { 10.8814, 9.6139, 11.2970, 10.1990, 9.5798, 9.5600, 11.7468, 14.7781, 11.2438, 8.9219}, { 12.1567, 11.5176, 11.2870, 9.7856, 10.7329, 10.1233, 11.7082, 11.2438, 14.7781, 10.5061}, { 10.4351, 12.7049, 9.6657, 9.9719, 10.6348, 11.4631, 10.1669, 8.9219, 10.5061, 14.7781}, }, } ); cov = new CovarianceMaternIso(); cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 5); TestCovarianceFunction(cov, 0, new double[,] { { 0.4963, 0.4629, 0.7958, 0.4817, 0.6753, 0.4255, 0.5810, 0.6685, 0.5725, 0.7486}, { 0.5375, 0.6197, 0.6264, 0.5193, 0.6481, 0.4570, 0.5867, 0.7507, 0.6331, 0.7303}, { 0.6974, 0.6718, 0.7832, 0.6029, 0.4847, 0.7108, 0.7752, 0.5786, 0.6764, 0.7668}, { 0.7008, 0.4727, 0.7030, 0.6342, 0.3873, 0.5056, 0.8402, 0.8250, 0.8069, 0.7559}, { 0.8305, 0.5116, 0.6914, 0.8494, 0.3535, 0.4049, 0.7134, 0.8794, 0.8623, 0.8060}, { 0.8184, 0.6530, 0.6190, 0.7654, 0.4121, 0.5105, 0.8132, 0.9232, 0.9256, 0.8074}, { 0.5305, 0.6769, 0.6464, 0.4943, 0.8153, 0.4853, 0.5691, 0.5426, 0.5794, 0.7499}, { 0.5286, 0.5443, 0.7399, 0.4706, 0.6283, 0.5390, 0.6115, 0.4648, 0.5395, 0.7071}, { 0.5557, 0.6117, 0.8085, 0.5280, 0.7191, 0.5164, 0.5987, 0.6022, 0.5864, 0.7862}, { 0.4982, 0.6333, 0.5441, 0.4557, 0.5488, 0.5273, 0.6028, 0.7375, 0.6019, 0.6350}, }, new double[][,] { new double[,] { { 0, 0.3844, 0.5881, 0.5499, 0.5324, 0.5694, 0.3987, 0.5135, 0.3134, 0.5603}, { 0.3844, 0, 0.5987, 0.5817, 0.4964, 0.4543, 0.4650, 0.6029, 0.4230, 0.2154}, { 0.5881, 0.5987, 0, 0.5749, 0.5416, 0.5703, 0.5739, 0.4571, 0.4586, 0.6019}, { 0.5499, 0.5817, 0.5749, 0, 0.4638, 0.3422, 0.5874, 0.5785, 0.5988, 0.5915}, { 0.5324, 0.4964, 0.5416, 0.4638, 0, 0.3197, 0.5963, 0.6034, 0.5308, 0.5413}, { 0.5694, 0.4543, 0.5703, 0.3422, 0.3197, 0, 0.5744, 0.6036, 0.5833, 0.4316}, { 0.3987, 0.4650, 0.5739, 0.5874, 0.5963, 0.5744, 0, 0.3852, 0.3917, 0.5806}, { 0.5135, 0.6029, 0.4571, 0.5785, 0.6034, 0.6036, 0.3852, 0, 0.4649, 0.5937}, { 0.3134, 0.4230, 0.4586, 0.5988, 0.5308, 0.5833, 0.3917, 0.4649, 0, 0.5539}, { 0.5603, 0.2154, 0.6019, 0.5915, 0.5413, 0.4316, 0.5806, 0.5937, 0.5539, 0}, }, new double[,] { { 2.0000, 1.5097, 0.9901, 1.1464, 1.1989, 1.0773, 1.4852, 1.2492, 1.6213, 1.1113}, { 1.5097, 2.0000, 0.9152, 1.0239, 1.2908, 1.3817, 1.3599, 0.8633, 1.4419, 1.7557}, { 0.9901, 0.9152, 2.0000, 1.0545, 1.1721, 1.0739, 1.0588, 1.3761, 1.3731, 0.8785}, { 1.1464, 1.0239, 1.0545, 2.0000, 1.3625, 1.5777, 0.9939, 1.0387, 0.9139, 0.9697}, { 1.1989, 1.2908, 1.1721, 1.3625, 2.0000, 1.6120, 0.9356, 0.8534, 1.2033, 1.1730}, { 1.0773, 1.3817, 1.0739, 1.5777, 1.6120, 2.0000, 1.0568, 0.8477, 1.0156, 1.4258}, { 1.4852, 1.3599, 1.0588, 0.9939, 0.9356, 1.0568, 2.0000, 1.5084, 1.4974, 1.0289}, { 1.2492, 0.8633, 1.3761, 1.0387, 0.8534, 0.8477, 1.5084, 2.0000, 1.3601, 0.6706}, { 1.6213, 1.4419, 1.3731, 0.9139, 1.2033, 1.0156, 1.4974, 1.3601, 2.0000, 1.1332}, { 1.1113, 1.7557, 0.8785, 0.9697, 1.1730, 1.4258, 1.0289, 0.6706, 1.1332, 2.0000}, }, } ); cov = new CovarianceMaternIso(); cov.DParameter.Value = cov.DParameter.ValidValues.Single(x => x.Value == 5); TestCovarianceFunction(cov, 1, new double[,] { { 6.5823, 6.4972, 7.1422, 6.5459, 6.9521, 6.3944, 6.7729, 6.9402, 6.7551, 7.0723}, { 6.6790, 6.8501, 6.8629, 6.6372, 6.9035, 6.4817, 6.7847, 7.0756, 6.8757, 7.0436}, { 6.9899, 6.9460, 7.1241, 6.8172, 6.5535, 7.0122, 7.1124, 6.7680, 6.9540, 7.0999}, { 6.9957, 6.5229, 6.9993, 6.8778, 6.2792, 6.6048, 7.2033, 7.1828, 7.1579, 7.0835}, { 7.1904, 6.6190, 6.9797, 7.2154, 6.1675, 6.3337, 7.0164, 7.2536, 7.2321, 7.1567}, { 7.1739, 6.9125, 6.8488, 7.0978, 6.3553, 6.6166, 7.1667, 7.3062, 7.3089, 7.1586}, { 6.6630, 6.9549, 6.9004, 6.5773, 7.1696, 6.5549, 6.7481, 6.6904, 6.7696, 7.0742}, { 6.6587, 6.6943, 7.0587, 6.5173, 6.8667, 6.6823, 6.8343, 6.5023, 6.6835, 7.0060}, { 6.7194, 6.8347, 7.1602, 6.6574, 7.0257, 6.6305, 6.8089, 6.8159, 6.7840, 7.1284}, { 6.5868, 6.8760, 6.6937, 6.4782, 6.7042, 6.6558, 6.8171, 7.0551, 6.8153, 6.8793}, }, new double[][,] { new double[,] { { 0, 0.5862, 1.4459, 1.1551, 1.0644, 1.2798, 0.6204, 0.9803, 0.4359, 1.2178}, { 0.5862, 0, 1.5974, 1.3802, 0.9128, 0.7716, 0.8048, 1.7072, 0.6825, 0.2685}, { 1.4459, 1.5974, 0, 1.3222, 1.1103, 1.2860, 1.3141, 0.7801, 0.7846, 1.6746}, { 1.1551, 1.3802, 1.3222, 0, 0.8009, 0.4933, 1.4383, 1.3520, 1.5999, 1.4863}, { 1.0644, 0.9128, 1.1103, 0.8009, 0, 0.4481, 1.5552, 1.7288, 1.0568, 1.1088}, { 1.2798, 0.7716, 1.2860, 0.4933, 0.4481, 0, 1.3179, 1.7414, 1.3962, 0.7060}, { 0.6204, 0.8048, 1.3141, 1.4383, 1.5552, 1.3179, 0, 0.5878, 0.6033, 1.3707}, { 0.9803, 1.7072, 0.7801, 1.3520, 1.7288, 1.7414, 0.5878, 0, 0.8045, 2.1597}, { 0.4359, 0.6825, 0.7846, 1.5999, 1.0568, 1.3962, 0.6033, 0.8045, 0, 1.1785}, { 1.2178, 0.2685, 1.6746, 1.4863, 1.1088, 0.7060, 1.3707, 2.1597, 1.1785, 0}, }, new double[,] { { 14.7781, 14.1637, 13.1581, 13.5134, 13.6208, 13.3631, 14.1260, 13.7191, 14.3263, 13.4382}, { 14.1637, 14.7781, 12.9663, 13.2398, 13.7972, 13.9577, 13.9203, 12.8239, 14.0574, 14.5034}, { 13.1581, 12.9663, 14.7781, 13.3113, 13.5666, 13.3555, 13.3212, 13.9482, 13.9431, 12.8665}, { 13.5134, 13.2398, 13.3113, 14.7781, 13.9248, 14.2646, 13.1676, 13.2747, 12.9630, 13.1074}, { 13.6208, 13.7972, 13.5666, 13.9248, 14.7781, 14.3133, 13.0201, 12.7957, 13.6298, 13.5685}, { 13.3631, 13.9577, 13.3555, 14.2646, 14.3133, 14.7781, 13.3166, 12.7791, 13.2200, 14.0312}, { 14.1260, 13.9203, 13.3212, 13.1676, 13.0201, 13.3166, 14.7781, 14.1618, 14.1449, 13.2516}, { 13.7191, 12.8239, 13.9482, 13.2747, 12.7957, 12.7791, 14.1618, 14.7781, 13.9207, 12.2062}, { 14.3263, 14.0574, 13.9431, 12.9630, 13.6298, 13.2200, 14.1449, 13.9207, 14.7781, 13.4853}, { 13.4382, 14.5034, 12.8665, 13.1074, 13.5685, 14.0312, 13.2516, 12.2062, 13.4853, 14.7781}, }, } ); }
private CovarianceMaternIso(CovarianceMaternIso original, Cloner cloner) : base(original, cloner) { }