|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.stanford.nlp.maxent.iis.LambdaSolve
public class LambdaSolve
This is the main class that does the core computation in IIS.
Field Summary | |
---|---|
boolean |
convertValues
|
double |
eps
|
boolean |
fixedFnumXY
This flag is true if all (x,y) have the same f# in which case the newton equation solving is avoided |
byte[][] |
fnumArr
This contains the number of features active for each pair (x,y) |
double[] |
ftildeArr
This is an array of empirical expectations for the features |
double[] |
lambda
These are the model parameters that have to be learned |
boolean[] |
lambda_converged
|
double |
newtonerr
|
Problem |
p
|
double[][] |
probConds
Conditional probabilities. |
static boolean |
smooth
|
boolean |
weightRanks
|
double[] |
zlambda
Normalization factors, one for each x |
Constructor Summary | |
---|---|
LambdaSolve()
|
|
LambdaSolve(Problem p1,
double eps1,
double nerr1)
|
|
LambdaSolve(String filename)
reads the prameters from a file |
Method Summary | |
---|---|
boolean |
checkCorrectness()
Check whether the constraints are satisfied, the probabilities sum to one, etc. |
static double |
divide(double first,
double second)
Given a numerator and denominator in log form, this calculates the conditional model probabilities. |
double |
expectedValue()
Each pair x,y has a value in p.data.values[x][y] |
protected double |
fnum(int x,
int y)
|
double |
GainCompute(Feature f,
double errorGain)
Computes the gain from a feature. |
double[] |
getDerivatives()
assuming we have the lambdas in the array and we need only the derivatives now. |
double[] |
getDerivativesExpectedValue()
assuming we have the probConds[x][y] , compute the derivatives for the expectedValue function |
double[] |
getDerivativesLossDomination()
using the arrays calculated when computing the loss, it should not be too hard to get the derivatives |
double[] |
getDerivativesNeg()
assuming we have the lambdas in the array and we need only the derivatives now. |
void |
ImprovedIterative()
Iterate until convergence. |
void |
ImprovedIterative(int iters)
Does a fixed number of IIS iterations. |
double |
logLikelihood()
|
double |
logLikelihoodNeg()
Calculate the log-likelihood from scratch, hashing the conditional probabilities in pcond, which we will use later. |
double |
logLikelihoodScratch()
calculate the log likelihood from scratch, hashing the conditional probabilities in pcond which we will use for the derivative later. |
double |
lossDomination()
calculate the loss for Dom ranking using the numbers in p.data.values to determine domination relationships in the graphs if values[x][y]> values[x][y'] then there is an edge (x,y)->(x,y') |
static void |
main(String[] args)
With arguments, this will print out the lambda parameters of a bunch of .lam files (which are assumed to all be the same size). |
double |
pcond(int y,
int x)
|
void |
print()
Print out p(y|x) for all pairs to the standard output. |
static double[] |
read_lambdas(InDataStreamFile rf)
|
void |
read(String filename)
Read the model parameters from a file ( only the lambdas ) |
protected void |
readL(InDataStreamFile rf)
Read the lambdas from the stream. |
void |
readL(String filename)
Read the lambdas from the file. |
static void |
save_lambdas(OutDataStreamFile rf,
double[] lambdas)
Writes the lambdas to a stream |
void |
save_lambdas(String filename)
Writes the lambdas to the file. |
void |
save(OutDataStreamFile file)
Saves xSize,ySize and the lambdas to the file. |
void |
save(String filename)
Saves xSize,ySize and the lambdas to the file. |
void |
setBinary()
|
void |
setNonBinary()
|
void |
transformValues()
This is a specialized procedure to change the values of parses for semantic ranking. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public double[] lambda
public boolean[] lambda_converged
public double eps
public double newtonerr
public boolean fixedFnumXY
public Problem p
public double[][] probConds
public double[] zlambda
public byte[][] fnumArr
public double[] ftildeArr
public static boolean smooth
public boolean weightRanks
public boolean convertValues
Constructor Detail |
---|
public LambdaSolve(Problem p1, double eps1, double nerr1)
public LambdaSolve(String filename)
public LambdaSolve()
Method Detail |
---|
public void setNonBinary()
public void setBinary()
public void transformValues()
public void ImprovedIterative()
public void ImprovedIterative(int iters)
public double pcond(int y, int x)
protected double fnum(int x, int y)
public boolean checkCorrectness()
public double GainCompute(Feature f, double errorGain)
public void print()
public void save(String filename)
public void save(OutDataStreamFile file)
public void save_lambdas(String filename)
public static void save_lambdas(OutDataStreamFile rf, double[] lambdas)
public void readL(String filename)
protected void readL(InDataStreamFile rf)
public void read(String filename)
public static double[] read_lambdas(InDataStreamFile rf)
public double logLikelihood()
public static double divide(double first, double second)
public static void main(String[] args)
args
- command line argumentspublic double logLikelihoodNeg()
public double logLikelihoodScratch()
public double[] getDerivatives()
public double[] getDerivativesNeg()
public double expectedValue()
public double[] getDerivativesExpectedValue()
public double lossDomination()
public double[] getDerivativesLossDomination()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |