Class CRFOptimizableByEntropyRegularization

  • All Implemented Interfaces:
    Optimizable, Optimizable.ByGradientValue, java.io.Serializable

    public class CRFOptimizableByEntropyRegularization
    extends java.lang.Object
    implements Optimizable.ByGradientValue, java.io.Serializable
    A CRF objective function that is the entropy of the CRF's predictions on unlabeled data. References: Feng Jiao, Shaojun Wang, Chi-Hoon Lee, Russell Greiner, Dale Schuurmans "Semi-supervised conditional random fields for improved sequence segmentation and labeling" ACL 2006 Gideon Mann, Andrew McCallum "Efficient Computation of Entropy Gradient for Semi-Supervised Conditional Random Fields" HLT/NAACL 2007
    Author:
    Gaurav Chandalia, Gregory Druck
    See Also:
    Serialized Form
    • Field Detail

      • crf

        protected CRF crf
      • scalingFactor

        protected double scalingFactor
      • cachedValue

        protected double cachedValue
      • cachedGradient

        protected double[] cachedGradient
    • Constructor Detail

      • CRFOptimizableByEntropyRegularization

        public CRFOptimizableByEntropyRegularization​(CRF crf,
                                                     InstanceList ilist,
                                                     double scalingFactor)
        Initializes the structures.
      • CRFOptimizableByEntropyRegularization

        public CRFOptimizableByEntropyRegularization​(CRF crf,
                                                     InstanceList ilist)
        Initializes the structures (sets the scaling factor to 1.0).
    • Method Detail

      • getScalingFactor

        public double getScalingFactor()
      • setScalingFactor

        public void setScalingFactor​(double scalingFactor)
      • computeExpectations

        public void computeExpectations()
        Resets, computes and fills expectations from all instances, also updating the entropy value.

        Analogous to CRFOptimizableByLabelLikelihood.getExpectationValue.

      • setParameter

        public void setParameter​(int index,
                                 double value)
        Specified by:
        setParameter in interface Optimizable