PROJECT OMOIKANE の教科書

中学数学からの
ディープラーニング

紙と鉛筆と Python で、自分の AI をつくる。
分数と割合のおさらいから始めて、自分で書いたニューラルネットワークに数字を見分けさせ、迷路をぬける AI、そして最後は、物語を書く小さな LLM(大規模言語モデル)と、逆伝播を自動で作る道具(自動微分)まで作ります。

これがこの本でつくるものの、いちばん小さな形です。「学習スタート」を押すと、AI が点の並びに合う直線を少しずつ探します。右下の数(損失そんしつ)が小さいほど、予想がよく当たっています。

ゴール1 自分の手で AI を書く

Python + NumPy + Matplotlib だけ

PyTorch のような便利な道具は使いません。予測・損失・微分びぶん・更新の一行一行を、自分で書いて動かします。

ゴール2 紙と鉛筆で説明できる

\(w \leftarrow w - \eta\,\dfrac{\partial L}{\partial w}\)

なぜその式になるのかを、小さな数で実際に計算して説明できるようにします。コードはその確かめに使います。

この本の読み方

この本は、数学が苦手な中学生が一人で読めるように書いています。先生役のロボット「カネ」(オモイカネ)と、中学2年生の「ソラ」、ソラのクラスメイトの「ミオ」が、ところどころで話しながら進みます。

数学、正直ニガテです……。AI なんて作れるのかな。

わたしは計算はわりと得意。でも「なんでそうなるの?」って聞かれると、説明できないことが多いかも。

だいじょうぶ。AI の中身は「かけ算と足し算」と「坂道を下りる」の組み合わせなんだ。必要な数学だけを、小学校の筆算や分数から順番に積み上げていこう。計算の手順と、その理由の両方をね。

ページの中には、次のような囲みが出てきます。

ここだけは覚えておきたい、という内容です。

多くの人がつまずく場所と、その直し方です。

紙と鉛筆で計算してみる場所です。電卓を使ってもかまいません。

同じことを Python で確かめます。第4章で使い方を説明します。

やり方を説明するための問題です。「つまずき度」は、多くの人がまちがえやすいところほど「!」が多くなります。まず自分で解いてから、説明を読みましょう。

例題の答えは、次のような「解答」の行にまとめてあります。大事なルールは、赤い帯で示します。

\(46 \times 27 =\) 1242

かけ算・わり算は、足し算・引き算より先に計算する。

グラフの多くは、つまみ(スライダー)を動かすと形が変わります。読むだけでなく、動かして確かめてください。各ページの最後には確認問題があり、「答えと解説を見る」を押すと解説が開きます。読み終えたら「このページを読んだ」を押しておくと、目次に ✓ がつきます(この印はこのブラウザの中だけに残ります)。

学ぶ順番

下の段から上の段へ、左から右へ進みます。矢印は「この章の知識が、あの章で使われる」という意味です。第14章までで自作のディープラーニングが完成し、そのあとの応用編(第15〜17章)では、ほかの機械学習の方法を同じ数学で組み立てます。さらに、第18〜25章(応用編:自作 LLM)では、Hello, World! から始めて、トークナイザ・Transformer・事前学習・SFT・強化学習まで、文章を書く AI を自分で作り、分類のファインチューニングや LoRA、逆伝播を自動で作る道具(自動微分)の自作にも進みます。第26〜33章(深層学習編)では、第14章で駆け足で見た学習の工夫・正則化・CNN・RNN を、1943 年の人工ニューロンから順に、紙と鉛筆とコードでくわしく確かめ、自己符号化器・ボルツマンマシン・深層強化学習(DQN とアルファ碁のしくみ)まで進みます。深層学習編は、第14章を読み終えたら、自作 LLM の章より先に読んでもかまいません。第18章は Python の Hello, World! から始めるので、LLM に興味がある人は、第18章から読み始めて、わからない数学が出てきたら前の章にもどる読み方もできます。計算に自信がない人は、第0章(小学校の算数のおさらい)から始めましょう。数学が得意な人は、第0章の「腕だめし」と第2・3章の確認問題だけ解いて、先に進んでもかまいません。

章どうしのつながり。下の段の数学が、上の段のモデルを支えています。破線は、第14章のあとに選べる道です。

用意するもの

目次