|
80 | 80 | # If we sample a lot more functions however, we get closer to the anaytical result |
81 | 81 | n_manysamples = 1000 |
82 | 82 | y_sample = [naive_sample(gp, x_sample) for _ in 1:n_manysamples] |
83 | | -evaluate_samples(y_sample, m, K) |
| 83 | +ms, cs = evaluate_samples(y_sample, m, K); |
| 84 | +#- |
| 85 | +ms |
| 86 | +#- |
| 87 | +cs |
84 | 88 |
|
85 | 89 | # |
86 | 90 | # However, there are two issues with this approach: |
@@ -120,25 +124,41 @@ DisplayAs.PNG(f) #hide #md |
120 | 124 | # Unfortunately, the mean and the covariance are worse than with the naive sampling |
121 | 125 | # for the same number of samples. |
122 | 126 | y_sample = [ApproximateGPSample(rff).(x_sample) for _ in 1:n_samples] |
123 | | -evaluate_samples(y_sample, m, K) |
| 127 | +ms, cs = evaluate_samples(y_sample, m, K); |
| 128 | +#- |
| 129 | +ms |
| 130 | +#- |
| 131 | +cs |
124 | 132 |
|
125 | 133 | # However, we now have another parameter to tune: The number of features |
126 | 134 | # By increasing the number of features, we get close to the result we saw |
127 | 135 | # with the naive sampling. |
128 | 136 | rff500 = DoubleRFF(S, 500) |
129 | 137 | y_sample = [ApproximateGPSample(rff500).(x_sample) for _ in 1:n_samples] |
130 | | -evaluate_samples(y_sample, m, K) |
| 138 | +ms, cs = evaluate_samples(y_sample, m, K); |
| 139 | +#- |
| 140 | +ms |
| 141 | +#- |
| 142 | +cs |
131 | 143 |
|
132 | 144 | # By increasing the number of GP samples, we can again improve the results in |
133 | 145 | # both cases. |
134 | 146 | # |
135 | 147 | # With 10 feature functions |
136 | 148 | y_sample = [ApproximateGPSample(rff).(x_sample) for _ in 1:n_manysamples] |
137 | | -evaluate_samples(y_sample, m, K) |
| 149 | +ms, cs = evaluate_samples(y_sample, m, K); |
| 150 | +#- |
| 151 | +ms |
| 152 | +#- |
| 153 | +cs |
138 | 154 | # |
139 | 155 | # With 500 feature functions |
140 | 156 | y_sample = [ApproximateGPSample(rff500).(x_sample) for _ in 1:n_manysamples] |
141 | | -evaluate_samples(y_sample, m, K) |
| 157 | +ms, cs = evaluate_samples(y_sample, m, K); |
| 158 | +#- |
| 159 | +ms |
| 160 | +#- |
| 161 | +cs |
142 | 162 |
|
143 | 163 | # |
144 | 164 | # Lastly, we note that we no longer have to worry about conditioning issues, |
|
0 commit comments