アルゴリズムの微積分: 面接で目立つための関数微分公式 5 つ

アルゴリズムの微積分: 面接で目立つための関数微分公式 5 つ

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)から転載したものです。

就職市場では、機械学習エンジニアは数学の基礎がしっかりしていないと思われているため、常に疑問視されています。実際、すべての機械学習アルゴリズムの本質は数学的な問題です。サポートベクターマシン、主成分分析、ニューラルネットワークのいずれであっても、最終的には、二重最適化、スペクトル分解スクリーニング、連続非線形関数の組み合わせなどの数学的な問題に帰着します。数学を徹底的に理解することによってのみ、これらの機械学習アルゴリズムを真に習得することができます。

[[344884]]

Python のさまざまなライブラリは、高度なアルゴリズムを使用していくつかの簡単な手順を完了するのに役立ちます。たとえば、K 近傍法、K 平均法、決定木、Keras などのアルゴリズムを含む機械学習アルゴリズム ライブラリ Scikit-learn を使用すると、畳み込みニューラル ネットワーク (CNN) や再帰型ニューラル ネットワーク (RNN) の詳細を理解しなくても、ニューラル ネットワーク アーキテクチャを構築できます。

しかし、優れた機械学習エンジニアになるには、それ以上のことが求められます。面接中、面接官は通常、K 最近傍アルゴリズムや決定木を最初から実装する方法、線形回帰とソフトマックス逆伝播方程式の行列閉形式解を導出する方法などの質問をします。

この記事では、単変量関数と多変量関数の導関数、勾配、ヤコビ行列、ヘッセ行列など、面接の準備に役立つ微積分学の基本的な概念をいくつか確認します。同時に、この記事は機械学習、特にニューラル ネットワークの背後にある数学的演算を詳しく調べるための優れた基礎を築くこともできます。これらの概念は、面接に絶対に欠かせない 5 つの微分式を通じて実証されます。


微分1: 複合指数関数


指数関数は非常に基本的で、一般的であり、非常に便利です。標準的な正関数です。実数ℝでは、eˣ > 0です。同時に、指数関数には重要な特性、つまりe⁰ = 1があります。

また、指数関数と対数関数は互いに逆関数です。指数関数は、その導関数がそれ自身、つまり (eˣ)' = eˣ であるため、微分するのが最も簡単な関数の 1 つでもあります。指数関数を別の関数と組み合わせて合成関数を形成すると、合成関数の導関数はより複雑になります。この場合、微分を求めるには連鎖律に従う必要があり、f(g(x)) の微分は f'(g(x))⋅g'(x) に等しくなります。つまり、


連鎖律を使用して、f(x) = eˣ² の導関数を計算できます。まず、g(x)=x²の導関数を求めます: g(x)'=2x。指数関数の導関数は、(eˣ)'=eˣ です。これら2つの導関数を掛け合わせると、合成関数f(x) = eˣ²の導関数が得られます。


これは非常に単純な例であり、一見重要ではないと思われるかもしれませんが、面接官が面接開始前に候補者の能力をテストするためによく使用されます。デリバティブをしばらく勉強していないと、これらの簡単な問題をすぐに解決できるかどうかはわかりません。必ずしも仕事が得られるとは限りませんが、このような基本的な質問に答えることさえできないと、間違いなく仕事を失うことになります。

微分2: 底を変数とする複素指数


複雑な指数関数は、特にテクノロジー企業の機械学習職よりも数学的スキルを重視する定量金融の分野では、面接でよく聞かれる質問です。複雑な指数関数により、面接官は快適な領域から抜け出すことを余儀なくされます。しかし、実際には、この問題の最も難しい部分は、正しい方向をどうやって見つけるかということです。

関数が指数関数に近似する場合、最初に認識すべき最も重要なことは、指数関数と対数関数は互いに逆関数であり、次に、すべての指数関数は自然指数関数の形に変換できるということです。


複素指数関数 f(x) = xˣ の導関数を取る前に、まず単純な指数関数 f(x) = 2ˣ を使用して複素関数の特性を証明します。まず上記の式を使用して2ˣをexp(xln(2))に変換し、次に連鎖律を使用して導関数を求めます。


さて、元の関数 f(x)=xˣ に戻り、これを f(x)=exp(x ln x) に変換すれば、導出は比較的簡単になります。おそらく、難しいのは連鎖律を使った導出だけでしょう。


ここでは、指数関数 xln(x) の導関数を求めるために、積の規則 (uv)'=u'v+uv' が使用されていることに注意してください。

通常、面接官は質問するときに関数のドメインを教えてくれません。面接官が関数の定義域を教えてくれない場合、面接官はあなたの数学的洞察力をテストしようとしている可能性があります。この質問が誤解を招くのはこの点です。ドメイン定義はなく、xˣ は正または負のいずれかになります。 x が負の場合、たとえば (-0.9)^(-0.9) の場合、結果は複素数 -1.05–0.34i になります。

1つの解決策は、関数の定義域を ℤ⁻ ∪ ℝ⁺ \0 に制限することですが、負の数の場合、関数は依然として微分可能ではありません。したがって、複素指数関数 xˣ の導関数を正しく導くためには、関数の定義域を厳密に正の数に制限するだけで済みます。このとき導関数も 0 であるため 0 は除外され、左導関数と右導関数は等しくなければなりませんが、この場合はこの条件が満たされません。左の極限が定義されていないため、関数は 0 で微分できず、関数の定義域は正の数にのみ制限されます。


話を続ける前に、質問させてください。複素指数関数 f(x) = xˣ よりも高度な関数が存在します。f(x) = xˣ² です。最初の例の背後にあるロジックと手順を理解していれば、指数の追加は問題なく、次の結果を推測できます。


導関数3: 多変量入力関数の勾配


これまで説明した関数の導関数はすべて、ℝ から ℝ にマッピングされる関数です。つまり、関数の定義域と値域はどちらも実数です。しかし、機械学習は本質的にベクトルであり、関数は多変量です。

この多様性を最もよく表す例が、ニューラル ネットワークの入力層のサイズが m で、出力層のサイズが k、つまり f(x) = g(Wᵀx + b) の場合、この関数は線形マッピング Wᵀx (重み行列 W と入力ベクトル x) と非線形マッピング g (活性化関数) の要素ごとに構成されます。一般に、この関数はℝᵐ から ℝᵏ へのマッピングとして見ることもできます。

k=1 のときの導関数を勾配と呼びます。ここで、ℝ³ を ℝ にマッピングする次の三項関数を計算してみましょう。


f は、サイズ 3 のベクトルからサイズ 1 のベクトルにマッピングする関数と考えることができます。

[[344893]]

画像ソース: unsplash

複数の入力を持つ関数の導関数は勾配と呼ばれ、逆三角形の記号 ∇ (英語ではナブラ) で表されます。 ℝⁿからℝに写像する関数 g の勾配は、それぞれが n 個の変数の関数である n 個の偏導関数の集合です。したがって、gがℝⁿからℝへの写像である場合、その勾配∇gはℝⁿからℝⁿへの写像です。

関数 f(x,y,z) = 2ˣʸ + zcos(x) の勾配を導出するには、偏微分のベクトル ∂f/∂x、∂f/∂y、および ∂f/∂z を構築する必要があります。結果は次のようになります。


等価変換には2ˣʸ=exp(xy ln(2))という式も必要となることに注意してください。

要約すると、ℝ³ から ℝ にマッピングする 3 次元関数 f の場合、その導関数は ℝ³ から ℝ³ にマッピングする勾配 ∇ f です。 ℝᵐ を ℝᵏ (k > 1) にマッピングするための一般的な式では、ℝᵐ を ℝᵏ にマッピングする多変量関数の導関数は、勾配ベクトルではなく、ヤコビ行列です。

導関数4: 多変量入出力関数のヤコビ行列


前のセクションでは、ℝᵐ から ℝ への関数マッピングの導関数は、ℝᵐ から ℝᵐ への勾配マッピングであることを説明しました。しかし、出力ドメインも多変量、つまりℝᵐからℝᵏ(k > 1)へのマッピングの場合はどうなるでしょうか?

この場合、導関数はヤコビ行列です。勾配は、サイズが m x 1 の特殊なヤコビ行列として簡単に考えることができます。ここで、m は変数の数に等しくなります。ヤコビ行列J(g)は、ℝᵐからℝᵏ*ᵐへの写像であり、関数gはℝᵐからℝᵏに写像します。これは、出力ドメインの次元が kxm、つまり kxm 行列であることを意味します。言い換えれば、ヤコビ行列J(g)において、i行目は関数gᵢの勾配∇gᵢを表します。

上記の関数 f(x, y) = [2x², x √y] が ℝ² から ℝ² にマップされると仮定します。関数の導関数を導出すると、関数の入力ドメインと出力ドメインの両方が多変量であることがわかります。この場合、平方根関数は負の数に対して定義されていないため、y の定義域を ℝ⁺ に制限する必要があります。出力ヤコビ行列の最初の行は関数 1 の導関数、つまり ∇ 2x² です。2 行目は関数 2 の導関数、つまり ∇ x √y です。


ヤコビ行列の興味深い使用例は、ディープラーニングにおける解釈可能性の領域です。その目的は、ニューラル ネットワークの動作を理解し、ニューラル ネットワークの出力層の入力に対する感度を分析することです。

ヤコビ行列は、入力空間の変化が出力に与える影響を調べるのに役立ち、ニューラル ネットワークの中間層の概念を理解するためにも使用できます。要約すると、勾配はベクトルに対するスカラーの微分であり、ヤコビ行列は別のベクトルに対するベクトルの微分であることを覚えておいてください。

導関数5: 多変量入力関数のヘッセ行列


これまでは 1 次微分についてのみ説明してきましたが、ニューラル ネットワークでは多変量関数の高次微分についてもよく説明されます。この特殊なケースは、2次微分であり、ヘッセ行列とも呼ばれ、H(f) または ∇² (微分演算子の2乗) と表記されます。 ℝⁿからℝに写像する関数gのヘッセ行列は、ℝⁿからℝⁿ*ⁿへの写像H(g)です。

ここで、出力ドメインを ℝ から ℝⁿ*ⁿ に変換する方法を分析してみましょう。 1次導関数の勾配∇gは、ℝⁿからℝⁿへの写像であり、その導関数はヤコビ行列です。したがって、各サブ関数の導関数∇gᵢは、ℝⁿからℝⁿにマッピングするn個の関数で構成されます。これは、ベクトルに展開される勾配ベクトルの各要素の導関数を取って、ベクトル内のベクトル、つまり行列になるようなものです。

ヘッセ行列を計算するには、交差導関数を計算する必要があります。つまり、最初に x に関して導関数を取り、次に y に関して導関数を取り、その逆も同様です。交差導関数を取る順序は結果に影響しますか? 言い換えると、ヘッセ行列は対称ですか?この場合、関数 f は 2 回連続微分可能な関数 (記号 ² で示される) であり、シュワルツの定理により交差導関数が等しいことが示されるため、ヘッセ行列は対称になります。不連続だが微分可能な関数の中には、相互微分方程式を満たさないものもあります。

関数のヘッセ行列を構築することは、スカラー関数の 2 次偏微分を求めることと同じです。 f(x,y) = x²y³を例にとると、計算結果は次のようになります。


相互導関数 6xy² は実際には等しいことがわかります。まず、x について微分して x に関する偏微分 2xy³ を取得し、次に y について微分して y に関する偏微分 6xy² を取得します。 x または y のすべての単項部分関数について、対角要素は fᵢ です。

このクラスの関数の拡張は、ℝᵐ を ℝᵏ にマッピングする多変数関数の 2 次導関数の場合を考慮することです。これは、2 次ヤコビ行列として見ることができます。これは、ℝᵐ から ℝᵏ*ᵐ*ᵐ へのマッピング、つまり 3D テンソルです。ヘッセ行列と同​​様に、ヤコビ行列の勾配を求めるには(2 次微分を求めるには)、kxm 行列の各要素を微分して、テンソルであるベクトル行列を取得する必要があります。受験者が手作業で計算を行うように求められる可能性は低いですが、多変数関数の高次導関数を理解することは重要です。

[[344899]]

この記事では、機械学習の背後にある重要な微積分の基礎を復習し、単変量関数と多変量関数の例をいくつか挙げ、勾配、ヤコビ行列、ヘッセ行列について説明し、機械学習の面接で出題される可能性のある概念と、それに関連する微積分の知識を包括的に整理します。スムーズな面接になることを願っています。

<<:  ニューラルネットワークと人間の思考の深い関係

>>:  ゲームの背後にあるAIストーリー:小規模サンプル学習と転移学習

ブログ    
ブログ    
ブログ    

推薦する

AI、VR、ブロックチェーンにより、新しい時代は貧しい人々にとっての楽園となるのでしょうか?

今日の社会では貧困がまだ存在しています。 [[275832]]国連開発計画(UNDP)のデータによる...

時空間AI技術:スマートシティ分野における深層強化学習の応用入門

深層強化学習は近年人気が出てきている技術です。深層強化学習の制御および意思決定プロセスには、状態、ア...

人工知能は緊急に「倫理的転換」を必要としている

現在の人工知能の発展は、主にディープラーニングに代表される機械学習技術の恩恵を受けています。ディープ...

...

AIが観測性を高める方法

今の時代、過去を懐かしむのは当然ですが、私たちは、以前と同じ観測可能性を持つことは決してできないよう...

...

...

3大分野で需要が解放され、2021年には検査ロボットの開発が期待される

近年、人口ボーナスの継続的な減少に伴い、無人作業の需要がますます顕著になり、ロボット産業は急速な発展...

...

AIは人間の教師に取って代わるでしょうか?どれだけの能力があるのか​​を確かめるためにレッスンを受けました

少し前に、「ピーター」と「トニー」という名前の二人の英語教師が人々の注目を集めました。彼らはあらゆる...

決済の未来は生体認証にかかっている

現在、生体認証技術は比較的成熟しており、さまざまな応用シナリオがあります。国内の生体認証市場全体は、...

...

人工知能による雇用促進

[[347833]]近年、人工知能は急速に発展し、新たな科学技術革命と産業変革を主導する中核的な原動...

人工知能とビッグデータの違い

人工知能とビッグデータは人々がよく知っている流行語ですが、混乱が生じることもあります。 AI とビッ...