Ejemplo n.º 1
0
        public WeightsAndBias Update(WeightsAndBias wb, Example example)
        {
            float DLoss = _loss.GetDerivative(Score(wb, example), example.Label);

            if (_L2 == 0.0f)
            {
                wb.Weights.InplaceAddMultiply(-DLoss * _learningRate, example.Features);
            }
            else if (_L1 == 0.0f)
            {
                wb.Weights.InplaceAddMultiplyWithL2(_learningRate, -DLoss, _L2, example.Features);
            }
            else
            {
                wb.Weights.InplaceAddMultiplyWithL2AndL1(_learningRate, -DLoss, _L2, _L1, example.Features);
            }
            wb.Bias += -_learningRate * DLoss;
            return(wb);
        }