レポート課題支援ページ

Last Update: March 30 2022

目次

  1. レポート課題(課題集と同じ)
  2. 課題全般に関する補足
  3. 課題2に関するヒント
  4. 課題3に関するヒント
  5. 課題6に関するヒント
  6. 課題7に関するヒント

レポート課題(課題集と同じです)

課題1:クラスタリングとベクトル量子化の定義を、その違いが分かるように説 明し、平方和最小基準クラスタリング問題と2乗誤差に基づくベクトル量子化問 題の局所最適解における性質について記述しなさい。

課題2:教科書の「HokkaidoTowns_xy.dat」データをk-meansアルゴリズムと競合学習で、4分割にクラスタリングする実験を行い、その結果を示し、考察しなさい。 具体的には、プログラムに与える引数である「乱数の種」、「学習率」(競合学 習のみ)などをいくつか変更して実験を行い、両手法の性能比較を行いなさい。

課題3:教科書の「HokkaidoTowns_xy.dat」データを、k-meansアルゴリズムなどによりクラスタ数4でクラスタリングし、その結果を「Hokkaido_xyl.dat」としなさい。 次に、修正パーセプトロン学習プログラムであるmodPerceptronを用い、上記クラスタリング結果を学習パターンとして学習させなさい。その時、「乱数の種」、「学習率」を変化させて実験し、収束するまでの繰り返し回数の傾向について考察しなさい。

課題4:教科書の「HokkaidoTowns_xy.dat」の各カラムがxy座標の座標値を表すとします。このデータの重みベクトルによるボロノイ分割が、y軸を境界とする2分割になりました。この重みベクトルはどのようなものになるか、例を使って説明しなさい。

課題5:赤と青の2つの箱があり、赤の箱にはりんごが2個とオレンジが6個、青の箱にはりんごが3個とオレンジが1個入っているとする。箱の1つをランダムに選び、果物をランダムに1個取り出す。その際、赤の箱を40%、青の箱を60%選び、箱の中の果物は別け隔てなく同じ確からしさで選ぶ。この時、オレンジを選び出したとして、それが青い箱からとり出されたものである確率はいくらか? 導出過程も含めて書きなさい。

課題6:教科書の表5.2「フルーツのブレンド割合」の値は、壺を選んだ時に各フルーツが取り出される条件付き確率を表しています。今、各壺が選ばれる確率がすべて等しいとします。この時、下記のフルーツポンチがあるとき、それぞれの壺が選ばれたという「対数事後確率の大小関係を比較できる値」を求めて示し、何が分かるかを説明しなさい。  フルーツポンチ:マンゴー1個、ナタデココ2個、ぶどう3個、さくらんぼ5個

課題7:教科書のプログラムgenPunchと生成モデルを表すファイルを使ってフルーツポンチのデータを生成し、次にその結果からプログラムestParam により、モデルのパラメータを推定する実験をしなさい。ボウルの数や果物の数を変えると、推定結果の精度にどのような影響があるかについて、実験結果を示しながら考察しなさい。

課題全般についての補足

最初に乱数について補足します.プログラムで使っている乱数は,「擬似乱数」 と言われるもので,同じ乱数の種を指定する(=乱数系列を指定することになる) と,いつも決まった乱数を決まった順番で生成します.この性質のおかげで,あ る乱数系列に関する実験の再現を再現できることになります. クラスタリングにおいて,異なる``乱数の種''を指定すると,異なる初期値を与 えることができ,アルゴリズムで到達できる結果(=解)が変わり,平方和も変 わります.

課題2についてのヒント

例えば,乱数の種を0から9までの10通り変え,競合学習の学習率を0.01と0.1の2 通り変えて実験するとします.k-means,競合学習+学習率0.01,競合学習+学習 率0.1の合計(1+2)x10=30回の実験を行い,それぞれの最 小値,最大値,平均値を計算してみてください.最小値,最大値,平 均値で見て,どの方法が小さな平方和になるか(小さいほど性能が良いといえま す)をいいなさい.余裕がある方は,もっと実験数を増やし,t検定などを行なっ て優劣を論じなさい.

課題3についてのヒント

まず,たとえば
./k-means HokkaidoTowns_xy.dat 4 0 > Hokkaido_xyl.dat
とコマンドを実行して「Hokkaido_xyl.dat」を作成してください.次に,たとえば 乱数の種を0から9の10通り,学習率を(0.01,0.1,0.2,0.5)の4通り,計40回の 実験を行い,1000回以内で収束した回数,平均何回で収束するか,を表にまと めてみましょう.細かく見たい方は,学習率に0.05と0.3を加えてください.

課題6についてのヒント

手計算で行うこともできますが,プログラム./estPotを使え ば簡単です.「フルーツのブレンド割合」をratioFruits.datへ,事前確率を priorPot.datに書き込み,検討対象のフルーツポンチの内容をpunch.datに書き 込んだ後,
./estPot ratioFruits.dat priorPot.dat punch.dat
とコマンドを実行すれば,求めるべき「対数事後確率の大小関係を比較できる値」 が出力されるでしょう.

課題7についてのヒント

定量的な実験は大変ですので,定性的な傾向を見る方法の一例を示します. 「ボウル数」と「果物数」(=ボウルあたりの果物数)をそれぞれ, 30,300,3000の3通り変え,それぞれ乱数の種を0から9までの10通り変えて,フルー ツポンチを生成し,パラメータを推定する実験を行います. 1回の実験は生成と 推定の組み,例えば
./genPunch ratioFruits.dat priorPot.dat 30 30 0 > punch.dat
./estParam estRatioFruits.dat estPriorPot.dat punch.dat 4 7
となります. 「壺が選択される事前確率の推定精度」を,たとえばestPriorPot.datのトロピ カルの壺に関する推定値が真の確率値0.25からどれだけ離れているかの平均値 (RMSE)により求めます.「フルーツの割合の推定精度」についても,どれ か1つの確率(たとえばトロピカルのマンゴー)の推定値が真の値から離れてい るかを求めます.これらを表にしてみて,傾向を読み取ってください.もちろん すべての推定値の誤差を求めること,など定量的な評価に挑戦することも良いと 思います.