2010/02/01

続・距離校正はつらいよ(1)

お疲れ様です。ソフト班Shinpukuです。

突然ですが、「ニューラルネットワーク」って知ってますか?

ヤホーとかで検索すると、「人の神経細胞(ニューロン)の仕組みをコンピュータで再現したもの」といった感じに出ると思います。

OpenCVにはCvANN_MLP(多層パーセプトロン)という形で実装されていますね。

以下、OpenCVのリファレンスマニュアルより。


MLPは入力層と出力層,そして一つまたは複数の中間層から構成される. MLPのそれぞれの層は一つまたは複数のニューロンを含んでおり,前の層と次の層のニューロンが一方向に繋がれている. 下の図は3入力,2出力,中間層に5つのニューロンを持つ3層のパーセプトロンの例である.

MLPの全てのニューロンは類似している. それらは幾つかの入力リンク(つまり前のレイヤーにある幾つかのニューロンからの出力値を入力として受け取る)と, 幾つかの出力リンク(つまり次のレイヤーの幾つかのニューロンに応答を渡す)を持つ. 前の層から受け取った値は,各ニューロン間のリンクで異なる幾らかの重みを掛けて足され,さらにバイアス項を足し合わされて, その合計値がニューロンによって異なる活性化関数fによって変換される.

では、ニューラルネットワークが距離校正とどう関係しているのでしょうか?

答えはズバリ、「関数の近似」です。ニューラルネットワークは、サンプルを与えて学習させれば、どんな関数でも表現できてしまうのです。

今までは多項式近似で距離校正を行ってきましたが、これをニューラルネットを用いて行うとどうなるのでしょうか。

(続く)

0 件のコメント: