RBF Kernel Change Breaks Testing Code
The change to RBFKernel in 84fccd898c45c08279fb5c109e6e234f3a47588a may break something about our prediction code. 

I am not totally sure what the problem is yet, but I isolated this as the problem with `git bisect` and have a reasonable test case where results are significantly worse with the commit in compared to after a revert commit. 

It seems like the stability issues we encountered when making this change in the past don't come up in the unit tests, but do on some real datasets.

I can try to push my test case to a branch as well, although it relies on a UCI dataset.

@Balandat @gpleiss 
diff --git a/gpytorch/kernels/rbf_kernel.py b/gpytorch/kernels/rbf_kernel.py
index 86db70a3..65730890 100644
--- a/gpytorch/kernels/rbf_kernel.py
+++ b/gpytorch/kernels/rbf_kernel.py
@@ -3,6 +3,7 @@ from __future__ import division
 from __future__ import print_function
 from __future__ import unicode_literals
 
+import math
 from .kernel import Kernel
 
 
@@ -12,7 +13,7 @@ class RBFKernel(Kernel):
         self,
         ard_num_dims=None,
         log_lengthscale_bounds=(-10000, 10000),
-        eps=1e-5,
+        eps=1e-6,
         active_dims=None,
     ):
         super(RBFKernel, self).__init__(
@@ -24,6 +25,6 @@ class RBFKernel(Kernel):
         self.eps = eps
 
     def forward(self, x1, x2):
-        lengthscales = self.log_lengthscale.exp() + self.eps
+        lengthscales = self.log_lengthscale.exp().mul(math.sqrt(2)).clamp(self.eps, 1e5)
         diff = (x1.unsqueeze(2) - x2.unsqueeze(1)).div_(lengthscales)
-        return diff.pow_(2).sum(-1).mul_(-0.5).exp_()
+        return diff.pow_(2).sum(-1).mul_(-1).exp_()
['gpytorch/kernels/rbf_kernel.py']