logo

2024秋オマカセ: 二重数と自動微分 📂生エビ寿司誌

2024秋オマカセ: 二重数と自動微分

紹介

みなさんこんにちは。処暑の魔法が来なくてがっかりしているあなたに、特別なオマカセメニューを用意しました。今回のコースでは「二元数と自動微分」というテーマで、様々な記事をご紹介します。まるでオマカセ料理を楽しむように、順番に一つずつ味わいながら数学的思考の深さを感じてみてください。

メニュー

二元数

まず、今回のオマカセのスターターとして二元数について学んでみましょう。$0$ではないが、二乗して$0$になる数を$\epsilon$と呼びましょう。

$$ \epsilon \ne 0, \qquad \epsilon^{2} = 0 $$

直感的にはこれが無理だと思うかもしれませんが、二乗して$-1$になる数もまた直感とはかけ離れた数であることを考えれば、受け入れやすくなるでしょう。今、二つの実数$a, b \in \mathbb{R}$について次の形を二元数と呼びます。

$$ a + b\epsilon $$

見た目はまるで複素数$x + yi$に似ていますね? 二元数の意味と具体的な性質については、次の記事を参考にしてください。

二元数上で定義される関数

ある微分可能な関数$f : \mathbb{R} \to \mathbb{R}$が与えられたとしましょう。この関数を二元数上で定義することができるでしょうか? 与えられた$f$に対して次のような関数$F$を考え、自然に拡張することができます。

$$ F(a+b\epsilon) = f(a) + f^{\prime}(a)b\epsilon $$

このように定義すると、とても面白い性質が見つかります。詳しくは次の記事を参考にしてください。

自動微分

自動微分という言葉を聞いたことがありますか? 自動微分automatic differentiationとは、コンピュータで微分係数を計算する方法の一つで、すでに導関数がわかっている関数の加算、乗算、合成からなる関数に対して適用できます。難しく聞こえるかもしれませんが、実は本質は連鎖律です。

自動微分と二元数

二元数について説明していたのに、突然微分の話が出てきて驚いたでしょうか? 実は、二元数と自動微分には深い関係があります。二元数を使えば、自動微分を簡単に実装できます。非常に純粋数学的な定義を持つ二元数と、コンピュータで微分を実装するための方法である自動微分が結びついているのは面白い点です(しかも、このようにして求めた微分係数はディープラーニングにも使われます!)。

Juliaで二元数を使って自動微分を実装する

最後のデザートとして、これまで紹介した概念をもとに、実際に自動微分を実装する内容を用意しました。自動微分を実装するプロセスは思ったよりも簡単で、ここではJuliaを使用します。このプロセスを通じて、理論がどのように実際のコードに変換されるのかを確認してみてください。