パターン認識特論(2012年度)
授業科目,
www.kameda-lab.org
2012/10/12b
特にありません。
担当:掛谷英紀・亀田能成
教室:3L206
期間:2学期
時間:火曜2,3時限目(10:10-11:25, 12:15-13:30)
単位:2単位
本講義は2012年度2学期に、
筑波大学大学院システム情報工学研究科知能機能システム専攻の
1・2年生を想定して開講されます。
以下の予定は変更される可能性があります。
年/月/日 | 回 | 担当 | テーマ
|
2012/09/04 | 01 | 亀田1 | 高次元ベクトルにおけるパターン認識の問題
|
2012/09/11 | 02 | 亀田2 | Support Vector Machine 1 (理論)
|
2012/09/18 | 03 | 亀田3 | Support Vector Machine 2 (理論 - 実践)
|
2012/09/25 | 04 | 亀田4 | Support Vector Machine 3 (実践), 画像・映像での高次元処理
|
2012/10/02 | 05 | 亀田5 | k-NN, SVM補足, PCA, 課題
|
2012/10/16 | 06 | 掛谷1 |
|
2012/10/23 | 07 | 掛谷2 |
|
2012/10/30 | 08 | 掛谷3 |
|
2012/11/06 | 09 | 掛谷4 |
|
2012/11/13 | 10 | 掛谷5 |
|
2012/11/20 | (試験) | 試験 | 掛谷先生分のみ
|
この講義のうち、少なくとも亀田担当分は
ハイビジョン講義アーカイブ
で視聴可能です。
ここにあるのは亀田側からの課題のみです。
掛谷先生からの課題はここには掲載されていません。
- 課題1 [2012/11/13, 18:00締切]
詳細は2012/09/04の講義ビデオを観ること。
- 今、d次元実数ベクトルがn個存在するとし、2クラス問題を考える。
どのような分布のベクトル集合(ただし一般配置(general position)とする)にどのような2クラスのラベルを付与しても、必ず線形分離可能であるための条件を示し、その証明をせよ。
参考図書、文献を用いた場合は出典を詳細に明記すること。
説明は必ず自分で文章を作成すること。
★提出はPDFファイルで行い、1枚目に授業名、氏名、学籍番号、提出日を表示すること。
- 課題2 [2012/11/13, 18:00締切]
高次元ベクトルの2クラス(ないしそれ以上の)分類を実施してください。
詳細は2012/10/02の講義ビデオを観ること。
★提出は記述に関しては、PDFファイルで行い、1枚目に授業名、氏名、学籍番号、提出日を表示すること。その際、以下の下線部に相当する記述がすべて含まれていること。
★PDFファイルとは別に、xxxxxxx-SmallSet-L.txt, xxxxxxx-SmallSet-T.txt, xxxxxxx-LargeSet-L.txt, xxxxxxx-LargeSet-T.txtの4つのデータファイルを提出すること。
- (1) データ
- (SmallSet) 2クラス、2次元ベクトル
- 全て教師信号つき。
- 教師信号は-1と1とする。
- サンプル数は各クラス200以上。うち、100サンプルを試験用、残りの100サンプル以上を学習用とする。
- 2クラス間のデータは線形識別不能であること。
- シミュレーションによる合成可。
- フォーマットはlibsvm入力データフォーマット準拠。
- 学籍番号の数字部分 xxxxxxx を用いて、学習用(Learning)を xxxxxxx-SmallSet-L.txt、試験用(Testing)を xxxxxxx-SmallSet-T.txt として提出すること。
- データのクラスの意味と各特徴量の意味を説明すること。シミュレーションの場合は式を提示すること。
- (LargeSet) Nクラス(N>=2)、d次元ベクトル(d>=6)
- 学習データについては教師信号つき。試験データについても教師信号付きが望ましい。
- 2クラスの場合、教師信号は-1と1とする。3クラス以上の場合、教師信号は1,2,3,‥とする。
- 学習用サンプル数は各クラス100以上。試験用サンプル数は各クラス10以上。
- 2クラス場合、データは線形識別不能であること。Nクラス(N>2)の場合、少なくともどれかの2クラス間では線形識別不能であること。(ただしd>=10であれば不問)
- シミュレーションによる合成不可。公開に問題のないデータであることが望ましい。(公開できないデータの場合はその旨伝えること)
- フォーマットはlibsvm入力データフォーマット準拠。
- 学籍番号の数字部分 xxxxxxx を用いて、学習用(Learning)を xxxxxxx-LargeSet-L.txt、試験用(Testing)を xxxxxxx-LargeSet-T.txt として提出すること。
- データのクラスの意味と各特徴量の意味を説明すること。
- 参考:
libre calcで生成したcsvファイルをlibsvmフォーマットに準拠させるフィルタ
$ awk -f csv2libsvm.awk < fromlibre.csv > forlibsvm.txt
- (2) SVM
libsvmを用いて、クラス分類器を製作し、試験を行うこと。
それぞれ、SmallSet, LargeSetの両方について行うこと。
- easy.pyを用いてよい。
- スケーリング範囲は(-1, 1)とする。
- カーネルにはRBFを用いること。
- パラメータチューニングにおいて、5-fold cross validationを用いること。
- パラメータチューニングにおいて、Soft Marginのグリッドサーチ範囲は 2-5 〜 215、RBFのγのグリッドサーチ範囲は 2-15 〜 23 とする。
- 作業手順を示すこと。(bashのhistory相当でよい)
- チューニング結果であるソフトマージン、RBFのγをそれぞれ 2xの形で示すこと。
- チューニングの様子を示すグリッドサーチに対する認識率分布グラフを示すこと。
- 学習用データに対する認識率を示すこと。
- 試験用データに対する認識率を示すこと。
- 学習用データ、試験用データの認識率の差に対する考察を、データ分布状況やSVMの特性に言及して行うこと。
- (2-ExClass) SVM/Class
以下のことを行った場合、加点する。
- 学習用データに対するクラスごとの認識率を示すこと。
- 試験用データに対するクラスごとの認識率を示すこと。
- 学習用データ、試験用データの各クラスの認識率の差異に対する考察を、データ分布状況やSVMの特性に言及して行うこと。
- (2-ExLinear) SVM/linear
以下のことを行った場合、加点する。
liblinearを用いて、クラス分類器を製作し、試験を行うこと。
それぞれ、SmallSet, LargeSetの両方について行うこと。
- 使用した誤差解析法について説明すること。
- そのパラメータチューニング方法について説明すること。
- 学習用データに対する認識率を示すこと。
- 試験用データに対する認識率を示すこと。
- 学習用データ、試験用データの認識率の差に対する考察を、データ分布状況やSVMの特性に言及して行うこと。
- (3) PCAによる2D表示
R等を用いて、SmallSet, LargeSetの両方について主成分分析を行い、2Dプロットして示すこと。
- 入力データはスケーリングすること(相関行列で行うこと)。
- 求めた第1、第2主成分について、寄与率を示すこと。
- 求めた第1、第2主成分について、偏差と主成分ベクトルを示すこと。
- 求めた第1、第2主成分の軸に沿って入力データをプロットした散布図を示すこと。各クラスについて異なる印で示すこと。
- Rと合わせたlinux上での作業例については2012/10/02の講義アーカイブ参照。
- (3-Ex) PCAによる2D表示の補足
以下のことを行った場合、加点する。
- 上記(3)でプロットしたそれぞれの散布図に、(2-Ex)で求めた識別面を示すこと。
授業で解説した内容とほぼ同等のことは、全て、
Casper CartridgeのVer.5.05(相当)で実行可能です。
上記の説明に出てくるスクリプトやデータについては、下記アーカイブを展開して参照してください。
同じものがCasper Cartridge Ver.5.05 の ホームの下にあります。
授業の復習用に自由に使ってもらって構いません。
ただし、レポート提出時には(シミュレーションでもその他でも)このデータないしこのデータから派生したと思われるデータは使わないこと。
Rの簡単な使い方説明
多次元データ(2クラス)をPCAして、2次元平面上で観察する方法です。
PRML2012-kameda.zip
Archive: PRML2012-kameda.zip 67544 bytes 13 files
drwxrwxr-x 3.0 unx 0 GoGoCasper/libsvm/
drwxrwxr-x 3.0 unx 0 GoGoCasper/libsvm/example_on_seiseki/
-rw-rw-r-- 3.0 unx 4457 GoGoCasper/libsvm/example_on_seiseki/seiseki-00.csv
-rw-rw-r-- 3.0 unx 22188 GoGoCasper/libsvm/example_on_seiseki/seiseki-01.ods
-rw-rw-r-- 3.0 unx 4861 GoGoCasper/libsvm/example_on_seiseki/seiseki-02.csv
-rw-rw-r-- 3.0 unx 7952 GoGoCasper/libsvm/example_on_seiseki/seiseki-03.input
drwxrwxr-x 3.0 unx 0 GoGoCasper/R/
drwxrwxr-x 3.0 unx 0 GoGoCasper/R/PCA/
-rw-rw-r-- 3.0 unx 15208 GoGoCasper/R/PCA/.RData
-rw------- 3.0 unx 429 GoGoCasper/R/PCA/.Rhistory
-rw-rw-r-- 3.0 unx 21175 GoGoCasper/R/PCA/seiseki-chart000.png
-rw-rw-r-- 3.0 unx 4457 GoGoCasper/R/PCA/seiseki.csv
-rwxr-xr-x 3.0 unx 213 scripts/csv2libsvm.awk
13 files, 80940 bytes uncompressed, 65004 bytes compressed: 19.7%
参考資料、出典
www.statistics.co.jp/reference/R/statR_9_principal.pdf
www.statistics.co.jp/reference/data/reference-data.htm
www.statistics.co.jp/reference/data/seiseki.csv
cse.naro.affrc.go.jp/takezawa/r-tips/r.html
kameda[at]iit.tsukuba.ac.jp