見出し画像

【専門学校の授業】誤差関数の最小値問題で微分を使う/勾配降下法が必要な理由【G検】

このNoteでは、AI-G検での「微分」を、IT専門学校の先生が解説します。

G検定では「微分(偏微分)」は、「最小値問題」「勾配消失問題」を理解するために必要です。

テキスト186頁の頭(172, 179)の段階で、私が授業を補強してる内容を書きました。

テキストは必ず最新版(第三版, 2026/02月現在)。旧版はαβ法が致命的に間違ってます。>amazon検索結果

AIの学習は、誤差を最小にするパラメータの探索です。誤差はパラメータで変化する「誤差関数」になっていて、最小値を探すために「誤差関数の微分」を使います(微分=0の地点を探す)。

しかし、微分=0は最小値だけでなく、極大値や極小値も指します。

さらに、ニューラルネットワークのパラメータ数は兆を超えてます。誤差関数は兆次元。コンピュータで見える範囲で誤差や微分を計算して、最小値を探していきます(勾配降下法)。

以上を、グラフを使って紙芝居風に解説していきます。

それでは始めましょう!


私のNoteは500記事以上あります(2025/11/30)。
>全Noteへのリンク



G検定で微分が絡む2点

G検では「微分」が良く絡んできます。

私が思うに2点ですね。

  • 最小値問題:関数の最小値を見つける時に使う。AI学習の目標は、誤差”関数の最小値”となるパラメータを見つけることなので。

  • 勾配消失問題ニューラルネットワーク(NN)にて、誤差が前の層に伝わらない問題の理解に使う。NN学習は、”後層の誤差×誤差関数の微分”を”前層の誤差"として伝えます(誤差逆伝播法)

どちらもAIの「学習」の根本に絡んでいます。

今回は、最小値問題の方を詳しく解説します。「勾配消失問題」は、またの回で。>【G検】勾配消失問題のNote(企画中*)



AI学習 = 最小値問題を解く

AIの学習とは、自分の脳みそ(モデル)のパラメータを調整して、正しい答えに近い推測ができるよう目指すことです。よって誤差が小さくなるように、自分(パラメータ)を調整する作業が「学習」です。

「誤差関数」「モデル」「パラメータ」の理解が必要です。必ず前回のNoteを一読して下さい。>【G検定】誤差関数をグラフで解説Note

下図が「誤差関数」

上軸が「誤差」、横軸2つが「(モデルの)パラメータ」です。

この「モデル」はパラメータが2つだけ。数式で例えると、y=ax+bの、aとbがパラメータ。xが入力、yが予測。

誤差の最小値に黒丸を付けました。

パラメータ(a=0, b=0)で誤差(Error)=0になるように作りました。実際はもっとデコボコですし、aやbも違う値(0ではない)になります。


パラメータaから見た誤差関数。a=0で最小になっているのが分かります。

パラメータbから見た誤差関数。b=0で最小になっているのが分かります。パラメータaの時よりちょっと複雑な形にしてみました。

分かったかもですが、複数パラメータからなる誤差関数の最小値は、1個ずつのパラメータから見て探すと良さそうだと分かります。

今回は、パラメータaとbでした。パラメータが5個になっても100個になってもやることは同じ。誤差関数は5次元や100次元になっていくんです。すごいもんですね。グラフとして図示できない💦



微分の関数(導関数)を見る

関数の最小値の探し方。関数を微分した「導関数」が0になる点を探します。※高校数学。正確には2階微分して正になるか(下に凸)も見ますが割愛します。

下図が、パラメータaについての誤差関数と、導関数(誤差関数を微分)です。関数が最小値になる点で、導関数が0になっているのが分かります。

パラメータbでも描きました。

やはり、最小値で導関数=0になってますね。

以上のように、aの誤差関数の導関数, bの誤差関数の導関数を使って、最小値が特定できるのが分かりました。

今まで「微分」と云いましたが、正確には「偏微分」と云います。

「偏微分」とは、複数の変数をもつ関数について、1つの変数だけに注目して微分すること。

誤差関数はaとbの関数。aについてのみ微分したので「偏微分」、bについてのみ微分したので「偏微分」。



微分の注意点

微分を使った最小値探しは注意点があります。

微分係数=0になるのは最小値、だけではありません。最大値, 極大値と極小値でも0になります。微分係数=0を探すだけではダメです。

「極大値」は、その周辺での最大値、全体としての最大値ではない値。「極小値」は、その周辺での最小値、全体の最小値ではない値。

世界チャンピオンが「最大値」だとすれば、各国のチャンピオンが「極大値」という感じです。



解析的か数値的か

高校数学では、関数y=ax^2+bx+cだと、導関数はy=2ax+bと手計算できました。また、y=sin(x)の導関数はy=cos(x)だと数学の歴史的に証明されているので使えました。

数式を操作した導き方を「解析的」と云います。


さて、AI学習の誤差関数は、データとモデルによって作られます。

色んなデータがあるし、色んなモデルを考え出せます。

誤差関数は、数式になるとは限らないし、数式になったとしても解析的に微分できるとも限りません。それに微分だけでは、最小値だけでなく、最大値, 極大値, 極小値も混ざり込んできます。

よって誤差関数を計算して、直接探す力業もテ。

あらゆるパラメータでの誤差を計算して、あらゆる誤差から最小値を探します。「数値的」な解法と云います。

昔のAIは、数式モデルや統計モデルを使っていたので、誤差関数の数式、微分した数式を、解析的に求めてプログラムに組み込んでいました。

上図の例なら、誤差関数, 誤差関数をaで偏微分, bで偏微分の3つの手計算(解析的)が最低限必要でした。

しかし現在の複雑なモデル・ニューラルネットワークでは、パラメータは100個どころか兆を超えます。

100も兆も手計算できません。誤差関数の形状も複雑で、極大値, 極小値もあちらこちらに沢山現れます。

もうコンピュータで、全てのパラメータについての誤差を計算して、最小値を探すしかありません(数値的)。パワープレイです!!!

だから大規模なデータセンター、大量のGPUが必要なんですね。



勾配降下法 = 暗闇を確かめながら降りていく

少しだけ「勾配降下法」に入っておきます。

前節の話。

数式化が困難なモデル, 誤差関数、100個も兆個もあるパラメータを「解析的」に解くには無理だから、誤差関数を計算して「数値的」に解く、という話をしました。

ちょっと嘘をつきました。

スーパーコンピューターを使っても、誤差関数の”全て”を計算はできません。できるのは、特定領域の誤差関数を求めることです。


「勾配降下法」の必要性と手法を例えてみます。

もし”夜に”町内で一番低い地点を探す時、見えるのは懐中電灯を当ててる足元だけ。

そこで、今いる地点から東西南北に片足を出して、低くなっている方向を調べて、その方向に1歩移動します。またその地点で東西南北に片足を出して~を繰り返せば~。と何となく低い地点には到達できる気がします。

これが「勾配降下法」。一歩片足を出して低い/高いを調べるのが「微分(偏微分)」。微分係数が負値なら下り坂なので。


「勾配降下法」では、現在のパラメータから、全パラメータを少し動かして微分係数を求めて、誤差が低くなる方向に調べを進めていきます。

探検家が見えている範囲の傾斜で、山下りしているようなものです。

もちろん、見つけた最小値(と思われる地点)が、実は極小値かもしれない疑問はあります。「勾配降下法」では極小値に落ち込まないような工夫が色々取り入れられています。>【G検定】勾配降下法のNote(企画中*)



まとめ

お疲れ様でした!

AI学習が誤差の最小値探索➡最小値探索は微分=0を探すこと、は理解できたでしょうか?

しかし、複雑なAIモデルの誤差関数も複雑で、パラメータも兆レベルに膨大な現状。見える範囲で誤差や微分を計算して、少しずつ下って最小値を探し当てる方法「勾配降下法」が現在の主流になりました。

以上をざっくり理解できたら、このNoteの学習目標は達成しています。

難しかったかもですが、グラフだけでも何度も見て、何となくで良いので理解して下さいね。(分かったつもりでOK🫠)

少しでも理解のお手伝いが出来たなら、嬉しいです。


次回は勾配降下法かなぁと考えています。>【G検定】勾配降下法のNote(*企画中)

繰り返しますが、テキストは必ず最新版(第三版, 2026/02月現在)を、お願いしますね。>amazon検索結果

ではまたお会いしましょう!

いいなと思ったら応援しよう!

せんないの過去問解説Note 学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ