2017-04-17 10 views
5

私はその違いを理解できないようです。私にとっては、両方とも表現を通り、チェーンルールを適用するように見えます。何が欠けていますか?象徴的な分化と自動分化の違いは?

+0

あなたは1つの変数またはmutli変数で基本方程式を調べていますか?また、私は答えを出すだろうが、自動分化の知識は象徴的な数学ほど良くはない。私に時間があれば、これをもっと調べて答えを投稿するかもしれません。 –

答えて

4

派生計算するための3つの人気の方法がありますenter image description here、:

  1. 数値微分は、シンボリック分化
  2. 自動分化

Numerical differentiationがデリバティブの定義に依存している

  • あなたは非常に小さいhを入れ、2つの場所で機能を評価します。これは最も基本的な式であり、実際には人々は推定誤差が小さい他の式を使用します。微分を計算するこの方法は、あなたが関数を知らず、それをサンプリングすることができる場合に最も適しています。また、高ディム機能のために多くの計算を必要とする。

    Symbolic differentiationは、数式を操作します。あなたは、MATLABやMathematicaを使用した場合、あなたはここで、すべての数学の発現についてsaw something like this enter image description here

    彼らは、デリバティブを知っているし、得られ微分を計算するために様々なルール(製品のルール、チェーンルール)を使用します。次に、最終表現を単純化して、結果の式を得る。

    Automatic differentiationは、コンピュータプログラムのブロックを操作します。差別化要因には、プログラムの各要素の派生を取るためのルールがあります(コアTFでオペレーションを定義する場合、このオペレーションにはregister a gradientが必要です)。また、チェーンルールを使用して複雑な式を単純なルールに分割します。ここにはgood example how it works in real TF programs with some explanationがあります。


    あなたは自動分化が(一つの場所に、彼らはコンピュータプログラム上の別では、数学の表現で動作する)シンボリック分化と同じであることを考えるかもしれません。そして、はい、時には非常に似ています。結果ができますが、制御フロー計算書のために(、ループしながら、場合 `)非常にdifferent

    シンボリック分化は(慎重 が行われていない限り)非効率的なコードにつながると にコンピュータプログラムを変換することの難しさに直面しています単一式

  • 関連する問題