4 ms·
Well, this is the difference in phrasing between the traditional statistical modeling setting and the terminology used in numerical analysis; perhaps this is wh
by mccourt 11y ago
Well, this is the difference in phrasing between the traditional statistical modeling setting and the terminology used in numerical analysis; perhaps this is why GPs are sometimes referred to as a nonparametric model. Also, I think you're oversimplifying the role of regularization, but that's more of a semantic than salient point.
You are correct that you should not use "N parameters for N data points", but the role that covariance kernels play is not the same as the role played by (as you suggest) polynomials. Covariance kernels have some sort of localized behavior which limits the degree to which they interact with the data. Not to limit the discussion to things I'm comfortable with, but I wrote some of this up at a very high level here http://blog.sigopt.com/post/131498069303/sigopt-fundamentals-intuition-behind-covariance http://blog.sigopt.com/post/131498069303/sigopt-fundamentals.... As a result, I think one could argue that the compactness of their domain (practical compactness, regardless of their potentially infinite support) produces the actual dimension of the parameter space. As such, different locations in the domain may have different dimensionality, though most of the time the swift decay of kernels away from their center will lead to a much lower "effective dimensionality" than N.
Maybe a good way to think of this is the following: Why are you using a quadratic polynomial to fit your (presumably, if you have only 3 parameters) 1D data? Probably just because you feel like it - which is as good a reason as any, short of some rigorous statistical testing. I use kernels because I like their theoretical properties, not because "the data demands it" or some more rigorous reason. But suppose you actually thought of the biggest polynomial you could use: an N-1 degree polynomial:
s(x) = a_1 + a_2x + a_3x^2 + a_4x^3 + ... + a_Nx^{N-1}
That's the biggest (unique) polynomial you could use to fit your data. You feel, probably correctly, that N terms is too many, so you zero out some of these terms by manually setting most of the coefficients equal to 0 and solving (somehow) for the rest:
s(x) = a_1 + a_2x + a_3x^2 + 0x^3 + ... + 0x^{N-1}
This is one, very common and very useful way, to fit data, and it is the first thing I teach when I introduce people to approximation theory. But think about the main drawback behind this method: this is the same function everywhere that you want to make approximations. You have no ability to do anything different in different regions of your domain. You could have a problem for which this is true, but I think a lot of problems have some degree of spatial variability/locality, and this is where kernel methods shine. Kernel methods propose that you fit a model that looks like
s(x) = a_1K(x,x_1) + a_2K(x,x_2) + a_3K(x,x_3) + a_4K(x,x_4) + ... + a_NK(x,x_N)
Now, does this require you to invert an NxN matrix - absolutely. But because there is some locality in these K functions, different kernels will end up being 0 in different locations. Suppose that x_4 through x_N are very far from x_1; your interpolation in that setting looks like:
s(x) = a_1K(x,x_1) + a_2K(x,x_2) + a_3K(x,x_3) + a_4 0 + ... + a_N 0 , for x close to x_1
Notice I use the term "close" here; the decision of what close means is the hyperparameter solution that this blog post was trying to allude to, and that this other post http://blog.sigopt.com/post/134931028143/sigopt-in-depth-profile-likelihood-vs-kriging http://blog.sigopt.com/post/134931028143/sigopt-in-depth-pro... addresses more thoroughly. These summation values are probably not identically 0 (although it could be, if you like the Wendland or Wu kernels) but it may be close enough to think of it as 0. Suppose, instead, that you are over near x_N and that only x_4 is close to x_N:
s(x) = a_1 0 + a_2 0 + a_3 0 + a_4 K(x,x_4) + ... + a_N K(x,x_N) , for x close to x_N
Notice that both the polynomial and kernel methods have less than N terms which are nonzero, but only the kernel method has the ability to deal with regional differences within your problem. That's the benefit for kernel methods over polynomials; they more intelligently zero out a bunch of the terms in the summation. Incidentally, this is also the outcome of using support vector machines/regression, although that problem is phrased in a different way and chooses which pieces of data are worth considering, not which basis functions should be considered. But, I digress ...
You are absolutely correct to be worried about overfitting: it is the bane of all people who do any sort of statistical modeling and it will cause problems if you are not wary. But kernels are not inherently problematic on this front. First off, they offer a locality that can have a similar effect as polynomial fitting, but with the benefit of acting locally rather than globally. Perhaps the best point to be made though is that you can combine a polynomial method (for global action) with a kernel method (for local action). That's sometimes called universal kriging, and is basically just GPs with a nonzero (polynomial) mean. My book has an example of this in chapter 17.3, and Rasmussen and Williams talks about this in chapter 2.7 (http://www.gaussianprocess.org/gpml/chapters/RW2.pdf http://www.gaussianprocess.org/gpml/chapters/RW2.pdf).
I would also mention that regularization is something that can be done in the GP framework. I described the impact in http://blog.sigopt.com/post/132959177928/sigopt-fundamentals-approximation-of-data http://blog.sigopt.com/post/132959177928/sigopt-fundamentals... at a high level, but you can read more about it in chapter 15.1 of my book, or under the name smoothing spline (https://en.wikipedia.org/wiki/Smoothing_spline https://en.wikipedia.org/wiki/Smoothing_spline, though not the best writeup), or in RBF networks. If you really want to get fancy, you could even make the argument that interpolation with reproducing kernels has some built-in regularization because the interpolant is the minimum norm interpolating function in the Hilbert space; I don't have an easily accessible reference for that but you can see the derivation worked out here http://math.iit.edu/~fass/590/notes/Notes590_Ch8Print.pdf http://math.iit.edu/~fass/590/notes/Notes590_Ch8Print.pdf. That's not the same norm that you are referring to above, but I mention it simply to note that people in the kernel community are as worried about this situation as you are and we have some results that help inform of how to deal with potential overfitting.
Thanks for your interest. I really appreciate the opportunity to go in depth with this.
- kshitijl 11y agoAhh thanks, this line > Notice that both the polynomial and kernel methods have less than N terms which are nonzero, but [...] starts to answer my worry a little bit. It really is not the case that there are N true degrees of freedom, we just nominally started out with that many and then gave up certain ones of them. What I would love to have is a quantitative analysis of the "number of free parameters" in my model after I have fit it, so that I can compare it to (say) a 50-parameter polynomial model that is equally good at reproducing the training set.
- mccourt 11y agoI'm happy to think on this with you, although it might take a little time to think about. One short answer I could point you to regarding this question is a topic called "local interpolation" using a compactly defined Lagrange basis with a prescribed size (perhaps size 50) of the parameter space. I talk about this in the context of kernel-based finite difference methods in remark 19.8 of my book: some of the references I point to there are (http://epubs.siam.org/doi/abs/10.1137/090769570 http://epubs.siam.org/doi/abs/10.1137/090769570, Hangelbroek is an outstanding author) and (http://www.sciencedirect.com/science/article/pii/S0377042711003669 http://www.sciencedirect.com/science/article/pii/S0377042711...). I think it's also possible to look at this question from the framework of moving least squares/approximate approximation (http://link.springer.com/chapter/10.1007/978-3-642-56103-0_8 http://link.springer.com/chapter/10.1007/978-3-642-56103-0_8) or maybe even quasi-interpolation, depending on how you think about it (http://link.springer.com/article/10.1007/BF01279020 http://link.springer.com/article/10.1007/BF01279020). If you'd like to talk about this offline, email me (see the blog post). I'll still post any thoughts I have here.
- kshitijl 11y agoI am also very interested in knowing what to do when the dimension of the input space can vary. For example, suppose that I'm interested in learning 4-body gravitational motion using 3-body training data ie. predict total energy of a system given mutual distances. Notwithstanding the fact that this is trivial to compute directly, how do I set this up as a GP? Are there general strategies for this? What do I look up on google scholar, or what application field of ML most deals with this? Thanks a lot for your help.