text: Title: can A matrix, learned by MMC, have negative values?
  Body: I got some questions after running the MMC code.
  
  
  Q1.
  I've run test_iris function of Test_MMC class in metric_learn_test.py
  
  The expected matrix A of mahalanobis distance is
  
  expected = [[+0.00046504, +0.00083371, -0.00111959, -0.00165265],
                  [+0.00083371, +0.00149466, -0.00200719, -0.00296284],
                  [-0.00111959, -0.00200719, +0.00269546, +0.00397881],
                  [-0.00165265, -0.00296284, +0.00397881, +0.00587320]]
  
  in _fit_full case.
  
  
  However, what I know about mahalanobis distance is that matrix A have to be positive.
  
  The optimization process in mmc._fit_full cannot always return the result that satisfy the second constraint (A>0) .
  
  Is it ok?
  
  (I did clustering using mahalanobis distance which was trained by MMC on iris data, but the clustering result was not similar to the label(class)ㅜㅜ)
  
  
  Q2.
  There are some detailed implementations that did not explain on the original paper like learning rate control,
  
  if satisfy and (obj > obj_previous or cycle == 0):
      alpha *= 1.05
  else:
      alpha /= 2
  
  
  Is all this MMC implementation based on the original paper implementation?
  
  
  Thanks a lot for your effort!
  