/**
* Binary trainer for single SGD example. Update the
* learning rate schedule, find derivative of loss WRT f(x),
* pass to updateWeights() to make SGD update
* @param model Our model
* @param fv Our feature vector example with label and x vector
*/
public final void trainOne(Model model, FeatureVector fv)
{
WeightModel weightModel = (WeightModel)model;
double eta = learningRateSchedule.update();
double y = fv.getY();
double fx = weightModel.predict(fv);
double dLoss = lossFunction.dLoss(fx, y);
weightModel.updateWeights(fv.getX(), eta, lambda, dLoss, y);
}