anchor.diff:  
   (defmethod log-test-error ((trainer mnist-dbm-trainer) (dbm mnist-dbm))
     (describe-trainer trainer)
  +  (save-weights (merge-pathnames (format nil "mnist-2-~A.dbm"
  +                                         (floor (n-inputs trainer)
  +                                                (length *training-images*)))
  +                                 *mnist-dir*)
  +                *dbm/2*)
     (log-msg "DBM TEST RMSE: ~{~,5F~^, ~} (~D)~%"
              (map 'list
                   #'get-error
  
positive.code:                         :n-gibbs 5
                          :segmenter
                          (lambda (cloud)
                            (make-instance 'mnist-dbm-segment-trainer
                                           :learning-rate (flt 0.001)
                                           :weight-decay
                                           (if (bias-cloud-p cloud)
                                               (flt 0)
                                               (flt 0.0002))
                                           :batch-size 100))
                          :sparser
                          (lambda (cloud chunk)
                            (when (and (member (name chunk) '(f1 f2))
  
negative.code: (defmethod learning-rate ((trainer mnist-dbm-segment-trainer))
    ;; This is adjusted for each batch. Ruslan's code adjusts it per
    ;; epoch.
    ;; FIXME: min 0.0001
    (/ (slot-value trainer 'learning-rate)
       (expt 1.000015 (* (/ (n-inputs trainer)
                            (length *training-images*))
  