機械学習を学ぶための準備 その1(微分について)

橘と申します。
機械学習を勉強中の身でありながら、機械学習に関して記事を書いていく予定です。

このブログを読んでいる方であればご承知のとおりかと思いますが、機械学習と数学は切っても切れない関係です。「数学を使わなくても機械学習は使える」という考え方があるのも事実ですが、いずれは数学の知識が問われることになります。

そのため、始めの数回は抑えておくべき数学の知識をまとめていこうと思います。初回は微分です。

 

そもそも数学は嫌いですか?

少し古い記事ですが、経済協力開発機構(OECD)による数学の学習意欲度の調査結果が公開されています。

OECD国際学習到達度調査(1)日本、数学の学習意欲改善

日本人の7割が苦手という結果が出ているようです。読んでいる方々の中にも、苦手意識を持っている方がいるはずです。
そして、「将来の仕事の可能性を広げてくれるから数学は学びがいがある」という人が52%しかいません。全体の平均の77%を大きく下回っている結果です。とても残念な結果のように思えます。

機械学習を学ぼうとしたのに計算の複雑さにうんざりした経験のある方もいるでしょう。ですが、「何を目的にしているのか」というところに焦点を当てると、意外とシンプルだったりします。

以上のことから、極力、機械学習を学ぶ上でのツール、アプローチとしての数学の手法をご紹介していく予定です。

結論から

結論として、「関数がある点で最大値、もしくは最小値を取るとき、その点で微分した値は0になる」という事実を抑えておけば、とりあえずは大丈夫です。

なぜこの結果が重要かというと、機械学習は「いいモデルを作る」ことを目標にしたり、「なるべく誤差を無くす」ということを目標にしたりすることがあるからです。

「いいモデルを作る」ことが目的のときは、そのモデルの「尤もらしさ(確からしさ)」を数値で求めます。この「尤もらしさ」の数値を微分した結果が0であれば、最も「尤もらしい」と見なせます。

「なるべく誤差を無くす」ことが目的の時は、誤差を数値化してその数値が小さくなることを目指します。その数値化をした際に微分した結果が0であれば、誤差が最も小さいと見なせます。

この「関数がある点で最大値、もしくは最小値を取るとき、その点で微分した値は0になる」という事実は抑えておいてください。

以降はこの事実の簡単な解説です。
理解されている方は、これ以降はあまり読む必要がないかと思われます。

微分って

微分を高校の時に次のように計算するように習った方もいるかと思います。

bibun

 

(厳密さを室伏選手にハンマー投げで投げ飛ばしてもらえれば)計算としては上の式の解釈で十分です。
(フクザツなものは上の式のようにはいきませんが)

ですが、ここではグラフ的(幾何的)な解釈をすると、「ある点における接線の傾き」が微分によって導き出されます。

graph1

 

図1により、y=x^2(xの2乗)のx=5における接線の傾きは10であることがわかります。

と書きましたが、今は具体的な接線の傾きというのは一旦忘れて、接線のパターンに注目します。
接線は、傾きの数値がマイナス、0、プラスの3つのパターンによってわけて考えることができます。

graph2

 

3つのパターンのうち、「接線の傾きが0のとき」のパターンに注目すると、グラフの谷の一番底と接している
線であることが、なんとなくわかると思います。(なんとなくで構いません。)
グラフの谷の底こそが、最も数値が低くなるところ、です。

グラフを上下反対にすれば、グラフの山の頂上でも「接線の傾きが0のとき」のパターンになることは想像できる
かと思います。そのため、次のようなフクザツなグラフでも、頂上と谷底の接線の傾きは0です。

blog2

 

さて、グラフの傾きは先程ご説明した通り、「ある点で微分した結果」でした。この事実こそが「関数がある点で最大値、もしくは最小値を取るとき、その点で微分した値は0になる」という事実です。

逆に「ある点で微分した結果が0であるとき、その点で最大値かもしくは最小値をとる」ということもできます。

この事実は今後の説明でも度々出てくるので、このニュアンスだけでも掴んでもらえれば幸いです。

次回予告

次回は、事前準備として「級数と積分」をご紹介する予定です。

あなたにおすすめの記事