2017-04-17 64 views
5

我似乎無法理解差異。對我來說,它看起來像只是通過一個表達式,並應用鏈規則。我錯過了什麼?符號分化和自動分化之間的區別?

+0

您是否正在尋找具有一個變量或多變量的基本方程?我也會給出答案,但我的自動分化知識不如符號數學。如果我有時間,我可能會更多地考慮這一點併發布答案。 –

回答

4

有3種流行的方法來計算衍生物:

  1. 數值分化
  2. 符號微分
  3. 自動微分

Numerical differentiation依賴於衍生物的定義:enter image description here,其中你把一個非常小的h和評估功能在兩個地方。這是最基本的公式,實踐中人們使用其他公式給出較小的估計誤差。這種計算衍生物的方法大多適用於如果您不瞭解您的功能並且只能對其進行採樣的情況。此外,它需要大量的計算來實現高調光功能。

Symbolic differentiation操縱數學表達式。如果你曾經使用MATLAB或數學,那麼你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

象徵性的分化導致低效的代碼(除非仔細 完成),面向計算機程序轉換成 的難度單表達式

相關問題