認知アルゴリズム特論
課題1 ベイズ決定理論
乱数によってパターン集合を発生させて、ベイズ決定の実験を行う。
- クラス数: 2(各クラスの生起確率は等しいとする)
- パターンベクトルの次元数: 1
- パターンの数:各クラス100個以上
- パターンの分布:ガウス分布(各クラスに異なる種々の平均と分散を与えて実験を行なう)
- 理論分布に基づいたベイズ決定により、パターンのクラスを識別し、そ
の誤り率を調べる。
- 各クラスの平均ベクトルを代表ベクトルと考え、
代表ベクトルとのユークリッド距離に基づいて識別を行ったときの、識別誤り率を調べる。
- 各クラスからランダムに選んだひとつのベクトルをクラスの代表ベクトルと考え、
代表ベクトルとのユークリッド距離に基づいて識別を行ったときの、識別誤り率を調べる。
- 1, 2, 3の違いについて、各クラスに様々な分布を与えた実験結果に基づいて、
考察する。
- 一方のクラスが一様分布の場合についても同様の実験・考察を行う。
- パターンの次元数が2以上の場合についても同様の実験・考察を行う。
1, 2, 4, 5 は必ずやって下さい。その他は、余裕のある人がやって下さい。
課題に関する参考事項
- 課題に関して、ガウス乱数を発生するプログラムを見つけられない、ある
いは作るのが面倒という人のために、平均 0、分散 1 で発生した 10000 点分
の乱数データを用意しました。
- 平均 0、分散 1 のガウス乱数を x とすると,
- y = a * x の分散は a^2 (平均は 0 のまま)
- y = a * x + b の平均は b (分散は a^2 のまま)
となることを用いれば、用意した乱数データを用い、任意の平均と分散をもつ
クラスをつくることができます。多次元の場合も同様に、平均ベクトル=[0,
0, ..., 0]^T,共分散行列が単位行列の多次元ガウス乱数をx = [x_1, x_2, ...,
x_d]^Tとして
- xに正方行列Aを左からかけると(y = A x)、共分散行列はA A^T
(平均ベクトルは変わらず)
- 更に縦ベクトル b を加えると(y = A x + b)、平均ベクトルは b
(共分散行列はA A^Tのまま)
となることを利用し、任意の平均ベクトルと共分散行列をもつクラスをつくることがで
きます。
- 0 <= x < 1 の一様乱数は、C言語の場合には、x = (double) rand() / (RAND_MAX + 1)
で得ることができます(stdlib.h 参照)。
Last modified: October 5, 1999