cc.mallet.fst.semi_supervised.constraints
Class OneLabelL2RangeGEConstraints

java.lang.Object
  extended by cc.mallet.fst.semi_supervised.constraints.OneLabelL2RangeGEConstraints
All Implemented Interfaces:
GEConstraint

public class OneLabelL2RangeGEConstraints
extends java.lang.Object
implements GEConstraint

A set of constraints on individual input feature label pairs. This is to be used with GE, and penalizes the L_2^2 difference between model and target distributions. Multiple constraints are grouped together here to make things more efficient.

Author:
Gregory Druck

Nested Class Summary
protected  class OneLabelL2RangeGEConstraints.OneLabelL2IndGEConstraint
           
 
Field Summary
protected  gnu.trove.TIntArrayList cache
           
protected  gnu.trove.TIntObjectHashMap<OneLabelL2RangeGEConstraints.OneLabelL2IndGEConstraint> constraints
           
protected  StateLabelMap map
           
 
Constructor Summary
  OneLabelL2RangeGEConstraints()
           
protected OneLabelL2RangeGEConstraints(gnu.trove.TIntObjectHashMap<OneLabelL2RangeGEConstraints.OneLabelL2IndGEConstraint> constraints, StateLabelMap map)
           
 
Method Summary
 void addConstraint(int fi, int li, double lower, double upper, double weight)
           
 void computeExpectations(java.util.ArrayList<SumLattice> lattices)
          Compute expectations using cached lattices.
 GEConstraint copy()
          This is used in multi-threading.
 double getCompositeConstraintFeatureValue(FeatureVector fv, int ip, int si1, int si2)
          Computes the composite constraint feature value (over all constraint features) for FeatureVector fv and a transition from state li1 to li2.
 double getValue()
          Returns the total constraint value.
 boolean isOneStateConstraint()
           
 void preProcess(FeatureVector fv)
          Gives the constraint the option to do some caching using only the FeatureVector.
 java.util.BitSet preProcess(InstanceList data)
           
 void setStateLabelMap(StateLabelMap map)
          Sets that map between the state indices and label indices.
 void zeroExpectations()
          Zero expectation values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

constraints

protected gnu.trove.TIntObjectHashMap<OneLabelL2RangeGEConstraints.OneLabelL2IndGEConstraint> constraints

map

protected StateLabelMap map

cache

protected gnu.trove.TIntArrayList cache
Constructor Detail

OneLabelL2RangeGEConstraints

public OneLabelL2RangeGEConstraints()

OneLabelL2RangeGEConstraints

protected OneLabelL2RangeGEConstraints(gnu.trove.TIntObjectHashMap<OneLabelL2RangeGEConstraints.OneLabelL2IndGEConstraint> constraints,
                                       StateLabelMap map)
Method Detail

addConstraint

public void addConstraint(int fi,
                          int li,
                          double lower,
                          double upper,
                          double weight)

isOneStateConstraint

public boolean isOneStateConstraint()
Specified by:
isOneStateConstraint in interface GEConstraint
Returns:
true if constraint feature only considers one state

setStateLabelMap

public void setStateLabelMap(StateLabelMap map)
Description copied from interface: GEConstraint
Sets that map between the state indices and label indices.

Specified by:
setStateLabelMap in interface GEConstraint
Parameters:
map - StateLabelMap

preProcess

public void preProcess(FeatureVector fv)
Description copied from interface: GEConstraint
Gives the constraint the option to do some caching using only the FeatureVector. For example, the constrained input features could be cached.

Specified by:
preProcess in interface GEConstraint
Parameters:
fv - FeatureVector input

preProcess

public java.util.BitSet preProcess(InstanceList data)
Specified by:
preProcess in interface GEConstraint
Parameters:
data - Unlabeled data
Returns:
Returns a bitset of the size of the data, with the bit set if a constraint feature fires in that instance.

getCompositeConstraintFeatureValue

public double getCompositeConstraintFeatureValue(FeatureVector fv,
                                                 int ip,
                                                 int si1,
                                                 int si2)
Description copied from interface: GEConstraint
Computes the composite constraint feature value (over all constraint features) for FeatureVector fv and a transition from state li1 to li2.

Specified by:
getCompositeConstraintFeatureValue in interface GEConstraint
Parameters:
fv - FeatureVector on transition
ip - Position of input in sequence
si1 - Source state index for transition
si2 - Destination state index for transition
Returns:
Constraint feature value

getValue

public double getValue()
Description copied from interface: GEConstraint
Returns the total constraint value.

Specified by:
getValue in interface GEConstraint
Returns:
Constraint value

zeroExpectations

public void zeroExpectations()
Description copied from interface: GEConstraint
Zero expectation values. Called before re-computing gradient.

Specified by:
zeroExpectations in interface GEConstraint

computeExpectations

public void computeExpectations(java.util.ArrayList<SumLattice> lattices)
Description copied from interface: GEConstraint
Compute expectations using cached lattices.

Specified by:
computeExpectations in interface GEConstraint
Parameters:
lattices - Cached SumLattices

copy

public GEConstraint copy()
Description copied from interface: GEConstraint
This is used in multi-threading.

Specified by:
copy in interface GEConstraint
Returns:
A copy of the GEConstraint.