昨日の話の続き。 実験で学習をするロボットを作るということで、学習のためのアルゴリズムをいくつか調べた。そこで最終的に採用したのがSupport Vector Machine(SVM)。詳しい説明は各サイトでどうぞ。 提案された当初のSVMは線形分離可能な2クラスを識別するためのアルゴリズムだったのだけど、カーネルトリックと呼ばれる手法を取り入れることによって非線形な集合の識別にも適用することができるようになった。実際に使ってみると、確かににょろーんとした境界を張って識別してくれるんだよなあ。不思議。 Javaアプレットでデモを作ってみたので、よかったら遊んでみてください。 http://nya3.jp/files/SVMDemo/SVMDemo.html (Javaアプレット) http://nya3.jp/files/SVMDemo/example1.png (例1) http://n