前の月 / 次の月 / 最新

~matubara/ChangeLog / 2007-07移動しました

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12

2007-07-24 Tue

The Ubuntu NLP Repository [linux][nlp][net]

<http://cl.naist.jp/~eric-n/ubuntu-nlp/>
NAISTのericさんによる Ubuntu 用リポジトリ。

2007-07-21 Sat

factored language models [lm]

Traditional SLMs are based on N-gram language models (NGLMs),
which essentially treat each word occurrence as an probabilistic event.

Naive NGLMs are suffered with data sparseness.
One examples was ...

To avoid the data sparseness problem, ...
- smoothing
- back-off
- interpolation with class model

J. A. Bilmes and K. Kirchhoff(2003),
Factored language models and generalized parallel backoff,
In HLT/NAACL-2003

単語を素性の束で表し、字面ベースのN-gramモデルを置き換える。
バックオフを一般化した形で再定義している。
通常のN-gramは、N個の縮退したモデルだけをもつが、
FLMは、単語当たり素性数F 文脈長Nのもとで、combination(F,N)個の縮退したモデルを想定する。 # ←理解が怪しい
可能なバックオフの経路の数がexponentialなため、
汎用的なグラフィカルモデルの構造推定(Graphical models toolkit; GMTK)を用いて、
有効な経路を求める。
より多くのバックオフモデルが得られ、スパースネスに強いのが利点。
最近、フレーズベース機械翻訳システム Moses で使われている。

FLMのツールキットは SRILM に付属していて、 FLM tutorialに詳しい説明がある。

Jamoussi, Salma / Langlois, David / Haton, Jean-Paul / Smaili, Kamel (2004),
Statistical feature language model,
In INTERSPEECH-2004,

bilmes+2003と同じく、単語を素性の束で表したN-gramモデル。
素性の束を単純に結合して、従来のN-gramモデルを作る。
つまり、バックオフは一般化せず、素性の束を新しい字面とみなす。
実装も(FLMを含まない)SRILMツールキットを使ったシンプルなもの。
でもあまり効果がなかったらしい。

2007-07-18 Wed

Language model smoothing tutorial [lm][net]

<http://nlp.stanford.edu/~wcmac/papers/20050421-smoothing-tutorial.pdf>
ふつうのLMスムージング

2007-07-17 Tue

系列ラベリング問題に関するメモ [learning][segmentation][net]

<http://cl.naist.jp/~masayu-a/article/2006-05-26.pdf>

2007-07-15 Sun

neural networks と bayesian networks [stat][learning]

Feed Forward Neural Networks (Multi-layer Perceptron)と Baysian Networks (Belief Networks) は、DAG で表現された学習・推論のモデルであるという点で似ている。

FFNNでは、1つのノードは入力の線形和に対する閾値関数として定義され、
線形和の重みと閾値関数(典型的には閾値そのの)が、1つのノードのパラメータ。

BN では、1つのノードは入力確率変数に対する条件付き確率分布として定義され、
離散確率変数を用いる場合は全組み合わせの確率表(Conditional Probability Table)、
連続確率変数を用いる場合はそのパラメータが、1つのノードのパラメータ。

FFNNでは有向グラフの向きに沿って、入力値が加工されていき、
最後の出る辺がないノードから、出力値が出される。

BNでは観測変数が入力されると、
そこから有効グラフの向きに沿って、もしくは逆流して、ノードの確率表が埋められてゆく。
隠れ変数の確率表が埋められたら、それが出力となる。

neural networks と baysian networks のからみの一例として
sigmoid belief networks がある。
Mean Field Theory for Sigmoid Belief Networks - Saul, Jaakkola, Jordan (1996)
BNのノードは一般にFFNNのノードよりも多くの情報を持つが、
特に各ノードの条件付き確率分布を入力の確率の線形和にsigmoidを掛けた関数とした場合のBNは、
ニューロンの閾値関数がsigmoidになったFFNNに一致する。
ただし、信号が伝わる方向がDAGの方向とは限らなくて、
誤差逆伝播のかわりに、
ベイズ則を使って隠れ変数ノードのパラメータを求める。
解析的には求まらないので、サンプリングかvariational bayes法(平均場近似)を用いるのが一般的。

もっと深い解説は http://d.hatena.ne.jp/higotakayuki2/20070712/p2#c

変分ベイズ - 朱鷺の杜Wiki
ベイジアンネット - 朱鷺の杜Wiki
ニューラルネット - 朱鷺の杜Wiki
Markov確率場 - 朱鷺の杜Wiki

Frequently asked questions about Bayesian methods for neural networks

2007-07-12 Thu

オブジェクトをキーとしたハッシュ [perl]

Perl の組込みのハッシュは、いろいろな点で java.util.Map (Java) とか std::map (C++) と違うので、
同じような動作を期待するとはまることが多い。

Perl の組込みのハッシュは文字列をキーとしたハッシュなので、
bless されたリファレンスはたとえば 「クラス名=HASH(0xXXXXXX)」のような文字列として扱われる。
キーの同値性検査も、その文字列をつかって行われる。
したがって、
・アドレスが一致しないとキーが一致したとみなされない
・文字列からもとのオブジェクトへの参照はないので、ハッシュが生きていても、元のオブジェクトが破壊されていることがある。

  そもそも、文字列からもとのオブジェクトを復元する手段がない。

対処はいくつかあって、

1. キーにしたいクラスで overload q{""} => sub {ユニークな表現を返す}

若干自由度が高くなる。
あまり深く考えたくないときは、シリアライズモジュール FreezeThawや Storableを使うと良さげ。
もとのオブジェクトを復元するのに、freeze, thaw を使う必要がある。

2. Tie::Hash::StructKeyed

自動的にリファレンスの中身をYAML形式にダンプしてキーに使う。
復元も可能。

$hash{yaml化されたキー} = [キー, 値]


$hash{キー} = 値

のように見せている。
アクセスのたびにyaml化をするので、けっこう重い。

3. 自作モジュール

std::tr1::unordered_map をラップしてPerlモジュール作成。
コンストラクタにハッシュ値関数と比較関数を渡すとかで。
でも、ハッシュ関数をPerlで書かせるのなら、
コード量の割に速度向上の恩恵が少ないような気がする。

2と3は、標準的なPerlだけでは動かないというのが問題といえば問題。


4. Tie::RefHash

常にアドレスの一致だけで同値性を判定し、文字列化しない(ようにみえる)ハッシュは
Tie::RefHashとして標準モジュールに入っているけれど、
最終的にはアドレス値を文字列として比較しなければならないのが、どうしても気持ち悪い。

404 Blog Not Found:perl

2007-07-07 Sat

Natural Language Toolkit [nlp][programming][net]

<http://nltk.sourceforge.net/index.php/Main_Page>
各種コーパスやWordNetのパーザーがPythonで提供されている。

2007-07-03 Tue

JScience [java][programming][net]

<http://jscience.org/>
単位変換と精度つき数、行列とベクトルのライブラリ

2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12

最終更新時間: 2009-02-01 00:57

Powered by chalow
inserted by FC2 system