Notebookいろいろあって長く間が空いてしましましたが、Pythonやります。微分そもそも微分ってなんだっけ?微分とは滑らかなグラフの一瞬の変化の割合を示すもの。数学的には導関数を求めることとも言われている。中学数学などでも変化の割合は傾きとも言われていたと思います。微分を扱うときは数式的に入り込みすぎず、元の式の傾きを求めているということは意識しておいた方がよいでしょう。具体的にはこれからやっていきましょう。本来の極限値を使ってしっかり導出する方法が正式ですが、一般的な公式のみ紹介します。以下の最も基本的な二次関数を微分を行います。微分表現は一般的には以下の表現で表されます。一般的には3がよく見られたでしょうか。1や2については高校や大学で多少数学はちゃんとやった人には一般的な表現でしょう。これだけでは味気ないので復習がてら、Pythonで2次関数グラフを表現しておきましょう。公式では単項式で表現を行いましたが、多項式でも同様の公式が適用できます。機械学習における微分では、入れ子になった関数の微分を行うことが多々あるそうです。入れ子のイメージは以下のような関数です。入れ子関数の微分はそのままに展開してやる方法もありますが、連鎖律(チェーンルール)で解くのが一般的なようです。連鎖律という言葉はあまり聞いたことがありませんでしたが、以下のようなものです。入れ子関数を実際に解こうとすると以下のような流れになります。1まずは式[1]の部分をそれぞれ微分します。2導出できた式[2]と式[3]を式[1]に代入します。3最終的にg(x)を代入し直すと普通に展開して微分を行った場合と同様の結果が得られていることがわかります。偏微分そもそも偏微分って?偏微分ってきいたことがあるでしょうか?私は大学数学で少し聞いた覚えがある気がするということは、理系出身でないと全く触れたことがないものなのかもしれません。機械学習に実際に登場する微分はこの偏微分らしいので数学的な理解をしようと思った場合、この偏微分の理解は必須ということになります。基本的なものであれば通常の微分自体が理解できていればそこまでは難しくはないと思っています。・偏微分とは導入が長くなりましたが、偏微分とは複数の変数をもつ関数に対して、一つの変数に対して微分を行うことです。複数の変数をもつ関数として以下を考えます。偏微分では∂(ディー)という記号を用います。通常の微分で扱っていたdと扱いは同じで問題ないです。偏微分を行う場合は、一つの変数に対して微分を行うので、その際に他の変数は定数として扱います。簡単に言えば、無視して構わないということになります。一点注意があるとすれば、偏微分を行った変数が含まれていない項は定数扱いなので、消える点でしょうか。偏微分のグラフ上の表現Pythonが全然使えていないので、少し使っていきましょう。通常の微分のグラフ上のイメージは高校数学などでも多少は見ることがありましたが、偏微分はいまいち扱ったことがないので、グラフ上でどのようになるのかをPythonで確認していきます。題材は以下の関数です。三次元グラフの場合、それぞれ偏微分をとってベクトルとして表現することが可能となります。これを勾配ベクトルといいます。勾配ベクトルは初めて聞いた概念ですが、傾きの最も大きい方向と、その大きさを表します。勾配のグラフ化かなりこんがらがってきました。先ほど紹介した勾配ベクトルをグラフにより図示します。関数は変わらず同じ以下を流用します。0.5)plt.show()・グラフ化[1]は関数fをz軸に対する高等線を表現しています。[2]は勾配を表現しています。何がわかるのか・・・[2]ではその地点のz軸に対する値の変化を矢印の大きさと方向で示しています。矢印で表現しているため、少しはイメージが湧きやすいでしょうか。勾配をベクトルで表現している勾配ベクトルとなります。矢印をたどっていくと高い地点へ向かいます。逆方向をたどるとより低い方向に向かうことになります。多変数なので微分を行う際は偏微分となりますが、入れ子関数であれば連鎖律が適用できます。実際にニュートラルネットワークで使用するらしい形式のみご紹介。実際には入れ子も複雑で複数の入れ子が連なる以下のような形になるようです。これを偏微分(微分)する際には以下のような連鎖律で微分を行うことになります。連鎖律を適用した場合、Σの微分を行うことになります。Σの微分では、Σの計算(総和を求める)をしてから微分を行うという方法が考えられますが、逆に微分を先に行ってからΣの計算を行うという順序で算出することができ、これが公式となっています。一つ例示して試してみます。【微分してから総和を求める】どちらでも同じ結果が算出できることが確認できます。実際の機械学習分野では、微分を先に計算してしまった方が楽であったり、微分だけしか計算できない場合もでてくるそうなので、上記の公式は必須となるようです。普通にだいたい数学になってしまった。Pythonを挟むのが難しくてややタイトルに偽りあり。回帰編(多次元モデル)【Docker】sudoなしでDockerコマンドを実行する月別アーカイブはてなブログをはじめよう!wantanBlogさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。