どうも、カタミチです。
さて、今日も「最短コースでわかる ディープラーニングの数学」のひとり読書会、やっていきたいと思います。
とうとう9章までやってきました。思えば遠くへ来たもんだ…(遠い目)。9章は「ロジスティック回帰モデル(多値分類)」ですね。2値分類は理解できたので、少し応用するだけ…なのかな?
見てみましょう!
9-1. 例題の問題設定
今回も使うデータはアヤメです。「Iris Data Set」ですね。
機械学習を勉強する人なら誰でも知ってるデータセットのようなので、「アヤメって英語で何ていうか知ってる?」と聞いて「Iris」と答えられない人は、機械学習エアプと言ってもいいかもしれません(偏った見方)。
ちなみに余談ですが、慣用句に「何れ菖蒲か杜若(いずれあやめかかきつばた)」ってのがありますね。どちらも優れていて優劣が付けにくいことを言いますが、つまり、カキツバタもアヤメに似てるってことになりますね(余談終わり)。
さて、今回使うアヤメの種類は、データセットに含まれるすべて…つまり3種類です。で、その特定に使う入力データは2項目。ただ、今回は別の項目を使うみたいですね。ということで、例題です。
例題:「Iris Data Set」を学習データとして、「がく片の長さ(sepal length)」と「花弁の長さ(petal length)」からアヤメの品種を「setosa(class=0)」と「versicolour(class=1)」と「virginica(class=2)」の3種類に分類するモデルを構築せよ。
…ところで、「がく片」って何のことだろう…?小学校で習った気がしますが、30年以上も前のことなので覚えていない…(汗)。ということで、調べてみたところ分かりましたので、近所の公園に咲いていたサクラを例に説明しましょう!
まず、これが近所の公園に咲いていたサクラです。撮影したのは先週の土曜日ですが、いい感じに満開でした。いやー、春ですねぇ。
で、「がく片」を理解するためには、花を裏返す必要があります。いくぜ…
えいっ!
はい、これがサクラの花の裏側です。…サクラの花びらの裏側をマジマジと見たのは始めてじゃなかろうか(ふむ)。
この、濃いピンクの部分。花びらを支えるように伸びているものが「がく片」ですね。ついでに「花弁」は花びらのことですね。サクラで言うと薄いピンクになっている部分です。これらの長さから品種を分類するってことになりますね。とりあえず実感は湧きました。
…ということで、写真撮影までして謎の情熱で「がく片」の説明までし終えたところで先に進みましょう。「がく片の長さ」を横軸、「花弁の長さ」を縦軸に取った散布図を書いてみると、こんな感じになるようです。
うん、setosaは花びらが短いんですね。明らかに分けられそうです。しかし、versicolourとvirginicaは境界付近がゴチャついてて、紛争が起きてる感じですね。線を引くのに少し難儀しそうです。
9-2. モデルの基礎概念
さて、使うデータが決まったところで、まずは予測モデルを作るところからですね。
前回の2値問題では正解値を0と1に分けることで、うまいこと確率の問題に持っていき、結果的にひとつの予測値\(yp\)と正解値\(yt\)の比較で乗り切りました。
多値問題ではどうやらそう上手くは行かないようで、複数の予測値&正解値のセット(分類器と言うらしいです)を作って対応するようです。
まず、正解値である\(0,1,2\)をそれぞれ、\((1,0,0)\)、\((0,1,0)\)、\((0,0,1)\)という3次元ベクトルに変換します。こうして作られた3次元ベクトルのことをOneHotベクトルと言うようです。…うん、聞いたことあるぞ。確か、自然言語処理のBag-of-Wordsのとこで出てきましたね。一見、冗長に見えるOneHotベクトルですが、どうやらその特徴を生かした処理をするときが来たようですね!
ということで
とりあえず今日は無理せずここまでにしときますかねー。うまいこと複数の分類器の使い方を理解できればこの章は乗りこえられそうなので、引き続き頑張っていきますかねー。
ではまた。