AIのための数学・微積分
ニューラルネットワークの学習原理を、
微積分で理解する
ディープラーニングの微分と逆伝播の数式に馴染みがありませんか?
関数と極限から始め、小さなニューラルネットワークが重みを変えながら学習する過程まで、段階を追って見ていきます。
動く図で概念を確認し、数式で整理し、
自分で計算しながらAIの学習と結びつける講義です。
18セクション・144レッスン3回の総合プロジェクトコーディング・開発環境のインストールなしで
このような問いから始まります
重みはなぜその方向に変わるのでしょうか?
フレームワークは勾配を自動的に計算します。しかし、学習が遅かったり損失が減らなかったりするときは、その計算の意味を理解してこそ、学習率や活性化関数、損失関数を判断できます。
この値を少し変えると、誤差はどれくらい変わるだろうか?
微分と勾配はこの問いに答え、勾配降下法はその答えを利用してパラメータを調整します。
学び方
図から数式へ、
数式から実際の計算へ
01
図で理解する
極限、接線、グラディエントをアニメーションで見た後、数式と表記法を学びます。
02
AIへの接続
連鎖律が逆伝播に、勾配が重みの更新にどのように使われるのかを確認します。
03
自分で計算する
1つのニューロンから小さなニューラルネットワークまで、学んだ概念を3つのプロジェクトで一緒に適用します。
受講後にできること
自動で実行していた計算を
自分で説明できるように
- 関数、導関数、連鎖律をグラフと数式で解釈する
- 損失関数の勾配を求め、重みを更新する
- 順伝播から逆伝播まで、小さなニューラルネットワークの学習過程を計算する
- 学習率、バッチサイズ、活性化関数による学習の変化を比較する
- モメンタム、RMSProp、Adamの動作原理を区別する
学習全体の流れ
関数の基礎から
ニューラルネットワークの学習の全過程まで
基礎を身につけ → ニューロンを微分し → 損失を減らし → ニューラルネットワークを学習させます。
18のセクションを順番に進みながら、必要な概念を積み上げていきます。
セクション01
講義紹介と学習案内
関数からニューラルネットワークの学習までつながる全体の流れを見ていきます。3つのプロジェクトで何を計算するのか、どのような順序で学習するとよいのかを案内します。
SECTION 02
関数からもう一度始める
関数とグラフ、直線の傾き、指数と対数を整理します。合成関数でニューラルネットワークを表現しながら、微分を学ぶための基礎を身につけます。
SECTION 03
極限で理解する変化
数値とグラフで極限を調べ、連続、左極限と右極限、漸近線を学びます。2点間の傾きが接線の傾きへとつながる過程を確認します。
SECTION 04
導関数と瞬間変化率
平均変化率から導関数の定義へと進みます。接線と導関数のグラフを読み取り、微分できない場合と、導関数が示す変化の方向を見ていきます。
SECTION 05
微分の規則と連鎖律
多項式関数、積と商、合成関数を微分する方法を学びます。高階導関数と関数近似まで学び、連鎖律が逆伝播でどのように使われるのかを結び付けます。
セクション 06
指数・対数と活性化関数
自然定数 e と指数・対数の導関数から始め、シグモイド、tanh、ReLU、ソフトマックスを見ていきます。活性化関数の勾配が学習に及ぼす影響を比較します。
セクション 07
プロジェクト1 · ニューロン1つを微分する
重み付き和、バイアス、活性化関数で1つのニューロンを表現します。計算を段階ごとに分け、連鎖律を適用して、重みとバイアスが出力に与える影響を求めます。
SECTION 08
損失関数と勾配
MSE、MAE、交差エントロピー、フーバー損失を比較します。各損失の勾配を計算し、損失関数の選択によって学習過程がどのように変わるのかを見ていきます。
SECTION 09
勾配降下法と学習率
損失が減少する方向に重みを更新する原理を学びます。学習率による収束・振動・発散を比較し、平らな区間で学習が遅くなる理由を確認します。
セクション10
複数の変数の変化を理解する
曲面と等高線で偏微分と勾配ベクトルを理解します。方向微分、ヘッセ行列、ヤコビアンを学び、パラメータが増えた場合の微分へと拡張します。
セクション11
バッチとミニバッチ学習
データごとの損失と勾配を合計して平均する過程を計算します。フルバッチ、ミニバッチ、SGDの違いと、バッチサイズによる学習経路を比較します。
SECTION 12
プロジェクト 2 · 損失曲面をたどる
パラメータが2つのモデルと小さなデータセットで損失曲面を求めます。勾配を計算して何度も更新し、等高線上に学習経路を表示します。
セクション13
計算グラフと逆伝播
順伝播で予測値を求めた後、計算グラフに連鎖律を適用します。局所勾配を用いて逆方向に計算し、中間結果を再利用する原理を理解します。
セクション14
より深いニューラルネットワークへの拡張
複数の層を経る中で、勾配がどのように変化するかを見ていきます。勾配消失と勾配爆発、活性化関数の選択、深さと幅による計算量について扱います。
セクション 15
最適化とオプティマイザー
極小点と鞍点、凸関数と非凸関数の違いを学びます。同じ損失曲面上でモメンタム、RMSProp、Adamを比較し、学習率スケジュールと曲率の役割を見ていきます。
セクション 16
積分から確率へ
曲線下の面積と累積量から積分を理解します。微積分学の基本定理を学んだ後、確率密度、期待値、モンテカルロ積分へとつなげます。
セクション 17
最終プロジェクト・ニューラルネットワーク学習の全計算
小さなニューラルネットワークの構造と初期重みを決め、順伝播、損失計算、逆伝播、ミニバッチ平均と更新を続けて計算します。学習を繰り返しながら、損失曲線の変化を確認します。
セクション 18
主要概念のまとめと次のステップ
関数、微分、勾配、逆伝播、オプティマイザの関係を整理します。続いて、AIのための確率と統計、および次の学習の方向性を案内します。
受講前のご案内
このような方におすすめです
- ディープラーニングの講義や論文に登場する微分と逆伝播の数式を理解したい方
- モデルを実行してみたものの、勾配の計算原理が気になる方
- 線形代数の次に、AIに必要な微積分を学びたい方
- 証明よりも図と計算で概念を先に理解したい方
前提知識と準備するもの
「AIのための線形代数」の受講またはこれに相当する基礎知識
ベクトル、行列、内積、線形変換をご存じだとよいでしょう。方程式の解法や座標平面、簡単なグラフの読み取りも扱います。
微積分の予備知識やプログラミング経験は必要ありません。特別な開発環境は使用せずに進めますので、計算を書き留めるための紙とペンをご用意ください。
講義の範囲
AI学習に必要な微積分の概念と計算に集中します。イプシロン・デルタ論法、三角関数・陰関数の微分、置換積分・部分積分などは、この講義では扱いません。
アニメーションと韓国語字幕で説明し、別途ソースコードやプログラミング実習ファイルは提供しません。3つのプロジェクトでは、講義画面の計算を自分で追っていくことをおすすめします。
関数から始め、
学習が行われる計算まで。
微積分の各概念がニューラルネットワークの中でどのような役割を果たすのか、
図と数式、実際に計算してみることで一緒に確認してみましょう。