title: scipy.optimize.fmin_l_bfgs_b returns 'ABNORMAL_TERMINATION_IN_LNSRCH'
body: <p>I am using scipy.optimize.fmin_l_bfgs_b to solve a gaussian mixture problem. The means of mixture distributions are modeled by regressions whose weights have to be optimized using EM algorithm.</p>
  
  <pre><code>sigma_sp_new, func_val, info_dict = fmin_l_bfgs_b(func_to_minimize, self.sigma_vector[si][pj], 
                         args=(self.w_vectors[si][pj], Y, X, E_step_results[si][pj]),
                         approx_grad=True, bounds=[(1e-8, 0.5)], factr=1e02, pgtol=1e-05, epsilon=1e-08)
  </code></pre>
  
  <p>But sometimes I got a warning 'ABNORMAL_TERMINATION_IN_LNSRCH' in the information dictionary: </p>
  
  <pre><code>func_to_minimize value = 1.14462324063e-07
  information dictionary: {'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 147, 'grad': array([  1.77635684e-05,   2.87769808e-05,   3.51718654e-05,
           6.75015599e-06,  -4.97379915e-06,  -1.06581410e-06]), 'nit': 0, 'warnflag': 2}
  
  RUNNING THE L-BFGS-B CODE
  
             * * *
  
  Machine precision = 2.220D-16
   N =            6     M =           10
   This problem is unconstrained.
  
  At X0         0 variables are exactly at the bounds
  
  At iterate    0    f=  1.14462D-07    |proj g|=  3.51719D-05
  
             * * *
  
  Tit   = total number of iterations
  Tnf   = total number of function evaluations
  Tnint = total number of segments explored during Cauchy searches
  Skip  = number of BFGS updates skipped
  Nact  = number of active bounds at final generalized Cauchy point
  Projg = norm of the final projected gradient
  F     = final function value
  
             * * *
  
     N    Tit     Tnf  Tnint  Skip  Nact     Projg        F
      6      1     21      1     0     0   3.517D-05   1.145D-07
    F =  1.144619474757747E-007
  
  ABNORMAL_TERMINATION_IN_LNSRCH                              
  
   Line search cannot locate an adequate point after 20 function
    and gradient evaluations.  Previous x, f and g restored.
   Possible causes: 1 error in function or gradient evaluation;
                    2 rounding error dominate computation.
  
   Cauchy                time 0.000E+00 seconds.
   Subspace minimization time 0.000E+00 seconds.
   Line search           time 0.000E+00 seconds.
  
   Total User time 0.000E+00 seconds.
  </code></pre>
  
  <p>I do not get this warning every time, but sometimes. (Most get 'CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_&lt;=_PGTOL' or 'CONVERGENCE: REL_REDUCTION_OF_F_&lt;=_FACTR*EPSMCH').</p>
  
  <p>I know that it means the minimum can be be reached in this iteration. I googled this problem. Someone said it occurs often because the objective and gradient functions do not match. But here I do not provide gradient function because I am using 'approx_grad'.</p>
  
  <p>What are the possible reasons that I should investigate? What does it mean by "rounding error dominate computation"?</p>
  
  <p>======</p>
  
  <p>I also find that the log-likelihood does not monotonically increase:</p>
  
  <pre><code>########## Convergence !!! ##########
  log_likelihood_history: [-28659.725891322563, 220.49993177669558, 291.3513633060345, 267.47745327823907, 265.31567762171181, 265.07311121000367, 265.04217683341682]
  </code></pre>
  
  <p>It usually start decrease at the second or the third iteration, even through 'ABNORMAL_TERMINATION_IN_LNSRCH' does not occurs. I do not know whether it this problem is related to the previous one.</p>