視覚認知計算特論 2018年度 演習その2†
課題A†
- 上記の「Gist上の...」のリンク先から gendat170430.py をダウンロードして実行しなさい.
- このプログラムは,ある3次関数にノイズをのせたデータを生成するものである.どんな3次関数を使っているかプログラムを読み解きなさい.また,どんなノイズをのせているか,関数名などを頼りに調べなさい.
- gnuplot で,x軸の範囲を [-1.5, 2.5],y軸の範囲を [-4, 8] として,元の関数と出力されたデータを重ねたグラフを描きなさい.
- n と nsig をいろいろ変えて同じことをやりなさい.それらを固定して,seed を変えて同じことをやりなさい.
課題B†
- Gist から ex02.py をダウンロードし,実行しなさい.このプログラムは,leastsquares.py および gendat170430.py を利用している.
- 実行すると表示される mean squared error (MSE) が何を表しているか,プログラムを読解しなさい.
- 実行すると,カレントディレクトリに ex02_data.txt と ex02_result.txt という二つのテキストファイルができる.これらの中身が何を表しているかプログラムを読解するとともに,
次のように gnuplot でグラフを描き,その意味を理解しなさい.
gnuplot> plot [-1.5:2.5][-4:8] "ex02_data.txt","ex02_result.txt" w l,"ex02_result.txt"u 1:3 w l
- D をいろいろ変えて,MSE の値やグラフがどのように変化するか観察しなさい.
課題C†
leastsquares.py に正則化を考慮した関数 solve3 を定義し,ex02.py を修正して実験してみよう.
- solve3 は X, y に加えて alpha という名前の引数も受け取ることにして,この値で正則化項の重み \( \alpha \) を決めるようにしよう.
- \( \alpha \) を何通りか変えて実験を行い,横軸を \( \alpha \),縦軸を学習データおよびテストデータに対する誤差としてグラフを描いてみよう.余裕があれば,真の値に対する誤差も描いてみるとよい.