#author("2017-11-03T11:45:56+09:00","default:takataka","takataka")
#author("2017-11-03T11:46:06+09:00","default:takataka","takataka")

*SJS2016 ex09 [#f69bd8f1]
*SJS2017 ex08 [#f69bd8f1]


#contents
**これまでの分 [#kbc5dcd1]

- 以前の分を全て報告してokをもらってから,今回分にすすみましょう.

**課題A [#z6651c87]

手書き数字の認識 (3) -- MNISTの最近傍法による識別 --


前回の識別法では,クラス毎に1つの見本(プロトタイプ)を用意して,テストデータを,最も近いプロトタイプのクラスに分類していた.これを一般化すれば,1つのクラスに複数のプロトタイプを用意して,それらの中からテストデータと最も近いプロトタイプを探して,そのテストデータはそのプロトタイプと同じクラスに分類する,という方法が考えられる.これを最近傍(Nearest Neighbor)法という.

前回の最短距離法は,このNN法で1クラス1プロトタイプとし,かつプロトタイプを学習データの平均とした,という特別な場合に相当する.プロトタイプは,あらかじめ集めておいたクラスラベル既知のデータに何らかの処理を施して作成してもよいが,最も単純でよく使われるのは,「学習データ全部そのまんま使ってまえ」という方法である.

というわけで,MNISTのデータをこのようなNN法で識別するプログラムを作って実験しなさい.プログラムと,テストデータの誤識別率が何%になったかを報告すること(学習データの誤識別率は...調べる必要ないことは明らかですよね).

ただし,上記の説明から想像つくようにNN法は記憶コストも計算コストも大きい.最初のうちは 学習データの最初の1000件だけを用いてテストデータを識別させるようにしてデバグ&動作確認し,それから全部使って実行,という方針でやることをおすすめします.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS