Loading…
Transcript

これをコンピュータに

やらせてみたい。

これをどんな概念でやっているかを

数式を一切使わないで説明します。

基準が決まれば、判別は簡単。

じゃあ

給料日を加えよう

この線を引ければ

判断は用意

この線を引くためには

難しい数学の話になるみたいですが、、、

無理ゲー?

カーネル関数

実は、これってすごく大切なこと。

カーネル関数で

軸を一つ増やして

3次元にする

こんな感じで、

基準の分離超平面を

引いていきます。

で、どうやって実装するの?

知らないですwww

ans.dat

-----------

1

1

-1

-1

-----------

人間は今までの経験から、

パターンを認識出来る。

パターン認識って何?

覚えさせたデータを

元に推論させる。

データを教え込んで

暑い夏の日、セミが泣いている。

にゅうどう雲が出ている。

→夕立ちで土砂降り

これは何?

コンピュータ

俺、今度結婚するんだ。

ここは俺に任せて先に行け。

ここは危険だ、

俺は離でひとりで寝るからな!

→死亡フラグ

丸かなぁ。。

暴飲暴食。

コレステロール上昇

塩分濃度上昇

→病気

規則性を学習させる。

SVMって何?食えるの?

Support Vector Machineの略です。

数式を一切使用しないSVMの話

教えたデータから規則性を見つけだします。

間違っていたらごめんね。

見つけた規則性を使って、物事を判断します。

ようするにパターン認識です。

シーランド公国伯爵

人口4人の自称国家。

第2次大戦後の要塞を勝手に占拠して独立宣言。

爵位販売中

肩書き

シーランド公国とは?

本職はアーキテクト?です。

シーランド公国とは?

本職はアーキテクト?です。

数式見るとめまいがする

程度の能力

イギリス

数式見るとめまいがする

程度の能力

イギリス

by rti

能力

rti

ハンドル

自己紹介

お金を落として

悲しんでいるかの基準

基準や境界が分かれば、

物事を判別することが

できます。

どこまでだったら、

落としても泣かないですか?

rti基準

泣かない

泣く

昔、一万円

落として、

途方にくれた。

あなたは、

どこまでだったら、

落としても泣かないですか?

基準

基準が決まれば、判別は簡単。

orz

落としたら泣く金額

給料日まで

あと5日

でもなー。

給料日が近いかどうかで

金銭感覚かわってくるよ!

あと10日

あと20日

当日

落としたとき泣いた。

落としたら泣く金額

落としても泣かなかった。

想像図です

あと5日

泣く

あと10日

ちょっと質問を変えて、

お金を落としたとき

泣いたか泣かなかったを聞いた

みんなの基準は

どうなっているんだろう

あと20日

泣かない

当日

落としたとき泣いた。

落としても泣かなかった。

あと5日

泣いた

あと10日

泣かない

あと20日

ちょっとまて。

時には妥協

ソフトマージン?

分離できない場合どうする

当日

落としたとき泣いた。

取り囲まれた

落としても泣かなかった。

あと5日

カーネル関数!?

中央を通るように引く

あと10日

泣いた

あと10日

→マージン最大化

パターン認識の目的は、一般に、 データの構造(例えばクラスタ、ランキング、主成分、相関、分類) を見つけだし、研究することにある。 この目的を達成するために、 カーネル法ではデータを高次元の特徴空間上へ写像する。

wikipeidaよカーネル法より

泣かない

あと20日

分離超平面

いまだと2次元だから線

!?

当日

よくわからない。

この線を引くことが、

学習結果になります。

当日

あと5日

面白いのは軸が

増やせること

あと5日

とあるゲームのワンシーン

あと10日

z軸

2次元では無理ゲーだが。。。

年収

1億

数学なんて、

1000万

あと20日

        靃靃靃靃靃靃淡

       靃靃靃靃靃靃淡淡

        靃靃靃靃靃靃靃靃靃靃靃

        蹴蹴蹴淡淡蹴淡淡淡

       蹴淡淡蹴淡淡蹴蹴淡淡淡淡

       蹴淡淡蹴蹴淡淡淡淡淡淡淡淡

     蹴蹴淡淡蹴蹴淡淡淡蹴淡淡淡淡

     蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴蹴

     蹴蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴

       蹴蹴淡淡淡淡淡淡淡淡

          蹴蹴蹴淡淡

          靃靃靃靃蹴蹴靃     淡

       蹴蹴蹴蹴靃靃蹴蹴靃  淡淡淡

       蹴蹴蹴蹴蹴蹴靃靃蹴靃蹴淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃蹴淡蹴

     蹴蹴蹴蹴蹴蹴靃靃靃蹴蹴靃蹴蹴

 蹴蹴蹴蹴蹴蹴靃靃靃淡靃蹴淡蹴

 蹴蹴蹴蹴靃靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃   蹴

 淡淡淡淡靃靃靃靃靃靃靃靃靃  蹴蹴

   淡淡淡靃靃靃靃靃靃靃蹴蹴蹴蹴蹴

      靃蹴靃靃靃靃靃靃蹴蹴蹴蹴蹴

     蹴靃靃蹴靃靃靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴靃靃靃蹴蹴靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴蹴蹴靃

 蹴蹴蹴

あと20日

そんな難しいことわかんないし

頭がフットーしそうだよおっっ

X00万

数学の世界なので、

何次元でも大丈夫

マリオ(仮名)

当日

X軸

なんで省略します。

どうやって回避する?

落としたとき泣いた。

落としても泣かなかった。

泣いた

これね

Y軸

これで物事が判別可能になる。

あと5日

泣かない

あと10日

飛べば

いいぢゃんw

あと20日

当日

        靃靃靃靃靃靃淡

       靃靃靃靃靃靃淡淡

        靃靃靃靃靃靃靃靃靃靃靃

        蹴蹴蹴淡淡蹴淡淡淡

       蹴淡淡蹴淡淡蹴蹴淡淡淡淡

       蹴淡淡蹴蹴淡淡淡淡淡淡淡淡

     蹴蹴淡淡蹴蹴淡淡淡蹴淡淡淡淡

     蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴蹴

     蹴蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴

       蹴蹴淡淡淡淡淡淡淡淡

          蹴蹴蹴淡淡

          靃靃靃靃蹴蹴靃     淡

       蹴蹴蹴蹴靃靃蹴蹴靃  淡淡淡

       蹴蹴蹴蹴蹴蹴靃靃蹴靃蹴淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃蹴淡蹴

     蹴蹴蹴蹴蹴蹴靃靃靃蹴蹴靃蹴蹴

 蹴蹴蹴蹴蹴蹴靃靃靃淡靃蹴淡蹴

 蹴蹴蹴蹴靃靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃   蹴

 淡淡淡淡靃靃靃靃靃靃靃靃靃  蹴蹴

   淡淡淡靃靃靃靃靃靃靃蹴蹴蹴蹴蹴

      靃蹴靃靃靃靃靃靃蹴蹴蹴蹴蹴

     蹴靃靃蹴靃靃靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴靃靃靃蹴蹴靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴蹴蹴靃

 蹴蹴蹴

X軸

次元を増やすと解けるかも。

立体図をうまくかけないな

あと5日

あと10日

z軸

あと20日

当日

1次元で無理なものが、

2次元だと解決できる。

Y軸

        靃靃靃靃靃靃淡

       靃靃靃靃靃靃淡淡

        靃靃靃靃靃靃靃靃靃靃靃

        蹴蹴蹴淡淡蹴淡淡淡

       蹴淡淡蹴淡淡蹴蹴淡淡淡淡

       蹴淡淡蹴蹴淡淡淡淡淡淡淡淡

     蹴蹴淡淡蹴蹴淡淡淡蹴淡淡淡淡

     蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴蹴

     蹴蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴

       蹴蹴淡淡淡淡淡淡淡淡

          蹴蹴蹴淡淡

          靃靃靃靃蹴蹴靃     淡

       蹴蹴蹴蹴靃靃蹴蹴靃  淡淡淡

       蹴蹴蹴蹴蹴蹴靃靃蹴靃蹴淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃蹴淡蹴

     蹴蹴蹴蹴蹴蹴靃靃靃蹴蹴靃蹴蹴

 蹴蹴蹴蹴蹴蹴靃靃靃淡靃蹴淡蹴

 蹴蹴蹴蹴靃靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃   蹴

 淡淡淡淡靃靃靃靃靃靃靃靃靃  蹴蹴

   淡淡淡靃靃靃靃靃靃靃蹴蹴蹴蹴蹴

      靃蹴靃靃靃靃靃靃蹴蹴蹴蹴蹴

     蹴靃靃蹴靃靃靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴靃靃靃蹴蹴靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴蹴蹴靃

 蹴蹴蹴

2次元だと

回避可能

1次元だと衝突

libsvmを利用すると、

この辺をいいように

してくれます。

        靃靃靃靃靃靃淡

       靃靃靃靃靃靃淡淡

        靃靃靃靃靃靃靃靃靃靃靃

        蹴蹴蹴淡淡蹴淡淡淡

       蹴淡淡蹴淡淡蹴蹴淡淡淡淡

       蹴淡淡蹴蹴淡淡淡淡淡淡淡淡

     蹴蹴淡淡蹴蹴淡淡淡蹴淡淡淡淡

     蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴蹴

     蹴蹴蹴淡淡淡淡淡蹴蹴蹴蹴蹴

       蹴蹴淡淡淡淡淡淡淡淡

          蹴蹴蹴淡淡

          靃靃靃靃蹴蹴靃     淡

       蹴蹴蹴蹴靃靃蹴蹴靃  淡淡淡

       蹴蹴蹴蹴蹴蹴靃靃蹴靃蹴淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃淡淡淡

     蹴蹴蹴蹴蹴蹴蹴靃靃蹴蹴靃蹴淡蹴

     蹴蹴蹴蹴蹴蹴靃靃靃蹴蹴靃蹴蹴

 蹴蹴蹴蹴蹴蹴靃靃靃淡靃蹴淡蹴

 蹴蹴蹴蹴靃靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃

 淡淡淡淡淡靃靃靃靃靃靃靃靃   蹴

 淡淡淡淡靃靃靃靃靃靃靃靃靃  蹴蹴

   淡淡淡靃靃靃靃靃靃靃蹴蹴蹴蹴蹴

      靃蹴靃靃靃靃靃靃蹴蹴蹴蹴蹴

     蹴靃靃蹴靃靃靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴靃靃靃蹴蹴靃靃靃蹴蹴蹴蹴蹴

 蹴蹴蹴蹴蹴靃

 蹴蹴蹴

ライセンスは独自ライセンスですが、

修正BSD ライセンス互換だそうですので、

非オープンソースな製品にも組み込めます。

http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html

X軸

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

カーネル関数って奴に通すと、

いろいろ計算して

次元を新しく作ってくれる。

まとめ

libsvmの使い方

train.dat

----------------

-1 1:10000 2:10

-1 1:10000 2:25

-1 1:500 2:20

-1 1:1000 2:20

+1 1:500 2:25

+1 1:100 2:10

+1 1:50 2:20

+1 1:100 2:20

----------------

学習

2: y軸で給料日まで

分類する基準を作れば判断は容易。

1: x軸で落とした金額

結果:

-1 悲しい

+1 悲しくない

えんいー\e

svm-train train.dat

→学習結果が train.dat.model

ファイルに保存される。

計算はよく分からない

q.dat

--------------

+0 1:100 2:25

+0 1:500 2:25

+0 1:10000 2:15

+0 1:10000 2:20

---------------

だけど面白そう。

分類テスト

結果を判別してもらうので

0にする

svm-predict q.dat train.dat.model ans.dat

→結果が、ans.datに保存される

libsvm等のライブラリで遊ぼう

q.dat

--------------

+0 1:100 2:25

+0 1:500 2:25

+0 1:10000 2:15

+0 1:10000 2:20

---------------

結果だけ書き込まれる。

質問と照合してみる