まったりAI勉強記

AI(人工知能)について、特にゆかりがあるわけでもない社会人が、まったりとAIについて勉強していく勉強日記です。

【ひとり読書会】ディープラーニングの数学(第17回)

どうも、カタミチです。

さて、今日も「最短コースでわかる ディープラーニングの数学」のひとり読書会、やっていきたいと思います。

さぁ「理論編」を終え「実践編」にやってきました。本書に対する私の個人的な興味は「理論編」にあったんですが、どうも、理論編やっただけでは武器が手に馴染んだ感じがしませんね。ということで実践編、まずは7章「線形回帰モデル(回帰)」から行ってみたいと思います!

 

7-1. 損失関数の偏微分と勾配降下法

f:id:feh_asama:20220326145226j:image

最序盤で出てきましたが、難易度的には分類問題より回帰問題のほうが易しいんでしたね。で、分類問題に挑む前のウォーミングアップとして回帰問題を取り上げるようです。これは、つまづいてられないですね。

<参考>
【ひとり読書会】ディープラーニングの数学(第2回) - まったりAI勉強記

さて、最序盤で出てきた時は単回帰しかやりませんでしたが、ここでは重回帰が出てくるようです。既に数学的な武器は仕入れてますからね、いよいよ具体的な相手と対峙するというわけです。

線形回帰分析では、損失関数として残差平方和が使われるということでしたね。この残差平方和は、平方和ってくらいなのでパラメータ\(w_i\)の2次関数にしかなりません。なので、偏微分するとそれぞれのパラメータの1次関数になりますね。で、この偏微分した結果である1次関数が\(=0\)になる値が、損失関数を最小化するためのパラメータの値ってことになりますね。

偏微分の結果は、そのパラメータの数だけありますから、それぞれを\(=0\)とした式を連立させると…すべてのパラメータの値が一意に求まることになります。

そう、つまり、一発ですべてのパラメータが求まるんですよね。こうして得られた解を「解析解」って呼ぶようです。上から読んでも解析解、下から読んでも解析解ですね!(この記事は横書きだろ)

ここで、ここ数ヶ月疑問に思っていたことがひとつ解決しました。その疑問とは、
「機械学習って、学習を繰り返すことによってモデルが洗練されていくもの…だよね。そしたら、線形回帰モデルで言うところの『学習を繰り返す』っていうのは、いったいどの部分に当たるの?」
ってやつです。で、答えはつまり、こう言うことですね。

「学習は繰り返さない。一発で求めるのだ。」

ただどうやら、次の章以降の分類問題に対応するために、無理やり勾配降下法を用いて進めていくようなので、その流れに従っていくことにしましょう!

 

7-2. 例題の問題設定

f:id:feh_asama:20220326145236j:image

さて、今回は実際にデータセットを使った例題を解いていくようです。使うデータは「The Boston Housing Dataset」。Pythonを使った機械学習の勉強コンテンツをちら見していると、ときどき見かけるやつですね。どうやらかなり有名なデータセットらしいです。

今回は、この中に含まれる「物件価格」を出力変数とする予測モデルを作っていくようです。で、入力変数には「平均部屋数」「低所得者率」を使うようです。だんだん盛り上がってきましたねー。

それにしても、公開データセットを使ってことは、いよいよ紙面を飛び出して、Pythonの世界での戦いになる雰囲気ですねー。

 

7-3. 学習データの表記法

f:id:feh_asama:20220326145244j:image

さて、そこそこちゃんとしたデータを扱うって事で、変数がごちゃついてくるようです。そこで、表記のルールが2つほど定められました。

まずひとつ目は、このデータが何件目のデータか?というのを表すために、右肩に\(( )\)カッコ付きの数値を書きます。例えば、43番目のデータならこんな感じ。

$$x^{(42)}$$

いや、1歳サバ読んどるやん!(効果薄)

…まぁ、プログラマーにはお馴染みのやつですが、インデックスが\(0\)から始まるんで、\(1\)番目のデータは\(x^{(0)}\)になるせいですね、はい。

ふたつ目のルールは、出力変数\(y\)について。予測値なのか正解値なのか混乱するので…

予測値:\(yp\)(\(p\)はpredictから)
正解値:\(yt\)(\(t\)はtrueから)

って表すようです。しっかり覚えとこ。

 

ということで

今日はいったんここまでにしておきますかねー。次回も、線形回帰モデルの続きをやっていきたいと思います!

ではまた。