Наименьшее расстояние в полукольце бревна для весового автомата - PullRequest
2 голосов
/ 31 января 2012

Я думал, что понял это ... но я все еще не могу обернуть голову вокруг этого.Я играю с OpenFst и пытаюсь выяснить, как рассчитывается 'shorttestdistance' в полукольце 'log'.Для следующего маленького автомата,

http://i.imgur.com/FThh6.png

Результатом команды «shorttestdistance» является,

$ fstshortestdistance log.fst
0   0
1   -0.510825634
2   -2.60798359
3   -0.9162907

, а описание для кратчайшего расстояния в журнале дается как,

При полукольце журнала вычисляется (log) сумма весов пути к q.

Я чувствую себя довольно глупо, но не могу понять, что на самом деле происходитприйти к финалу -2,6.Я перепробовал все варианты логарифмической суммы и обычной суммы, которые я могу придумать, даже те, которые, кажется, не должны применяться, но ничего не дает -2,6.Теперь это начинает сводить меня с ума.

Моя интуиция в этом случае состоит в том, что суммарные вероятности пути для каждой из двух различных строк (bc, bd) должны быть суммированы, а затемлучшая вероятность должна быть возвращена.Есть два пути для (bc), и их вероятности составляют 2/3 (без логарифма).(Bd) путь имеет вероятность 1/3.Однако это определенно не то, что происходит, так что происходит ?

1 Ответ

1 голос
/ 31 января 2012

Журнал двух значений, 'x' и 'y' в полукольце журнала, определяется как

-log (exp (-x) + exp (-y))

и кратчайшее расстояние в полукольце журнала должно вычислять общую вероятность, связанную с автоматом, который вы определили.Выходные строки пути не релевантны, но есть три различных пути со следующими связанными весами пути:

x = (0,1,2): -. 51083

y = (0,3,2): - 1,2729 = -,91629 + -,35667

z = (0,3,2): - 2,1202 = -91629 + -1,204

Если мы сложим x, y и z в соответствии с полученной логарифмической суммой,

-log (exp (-x) + exp (-y) + exp (-z)) =-2.607

Именно это и будет производить OpenFst.Я предполагаю, что вы забыли неприятные негативные признаки.

...