Skip to main content
QUICK REVIEW

[論文レビュー] Denotational Correctness of Forward-Mode Automatic Differentiation for Iteration and Recursion

Matthijs Vákár|arXiv (Cornell University)|Jul 10, 2020
Numerical Methods and Algorithms参考文献 18被引用数 8
ひとこと要約

本稿では、再帰、反復、部分性(未定義の演算、遅延条件分岐、再帰的型を含む)を備えた関数型言語における前向きモードの自動微分(AD)の意味的正しさの証明を提示する。微分可能空間と、層に類似た関係を備えた意味的論理関係枠組みを用いて、複雑な制御フローと再帰的データ構造が存在する状況でもAD変換が正しく導関数を計算することを確立する。

ABSTRACT

We present semantic correctness proofs of forward-mode Automatic Differentiation (AD) for languages with sources of partiality such as partial operations, lazy conditionals on real parameters, iteration, and term and type recursion. We first define an AD macro on a standard call-by-value language with some primitive operations for smooth partial functions and constructs for real conditionals and iteration, as a unique structure preserving macro determined by its action on the primitive operations. We define a semantics for the language in terms of diffeological spaces, where the key idea is to make use of a suitable partiality monad. A semantic logical relations argument, constructed through a subsconing construction over diffeological spaces, yields a correctness proof of the defined AD macro. A key insight is that, to reason about differentiation at sum types, we work with relations which form sheaves. Next, we extend our language with term and type recursion. To model this in our semantics, we introduce a new notion of space, suitable for modeling both recursion and differentiation, by equipping a diffeological space with a compatible $ω$cpo-structure. We demonstrate that our whole development extends to this setting. By making use of a semantic, rather than syntactic, logical relations argument, we circumvent the usual technicalities of logical relations techniques for type recursion.

研究の動機と目的

  • 再帰、反復、部分的演算(例:kinkのある関数、例:ReLU)を拡張した関数型言語における前向きモードADの形式的正しさの証明を目的とする。
  • 部分性(例:log(0) や ReLU(0) における未定義関数、発散計算)を伴うプログラムの微分を意味的意味論フレームワーク内で扱う課題に取り組む。
  • 現実の関数型プログラミング言語において不可欠な項再帰と型再帰を含む、ADの既存の意味的正しさ結果を拡張する。
  • 型再帰に起因する技術的複雑さを避けるために、構文的ではなく意味的論理関係による議論を展開し、正しさを保つ。
  • PyTorch や Stan、TensorFlow Eager といった、再帰と部分的機能を備えたADに依存するシステムにおけるADの数学的に厳密な基礎を提供する。

提案手法

  • 呼び出し値評価の関数型言語に、原始的滑らかで部分的な関数、実数の条件分岐、反復を備えた前向きモードADマクロを構造保存変換として定義する。
  • 未定義値と部分関数を処理するため、部分性モナドを備えた微分可能空間を用いて言語の意味論をモデル化する。
  • 微分可能空間上のサブコンニング構成を用いて意味的論理関係を構築し、関係が層を形成することで和型における微分の正当性を議論する。
  • 項再帰と型再帰をモデル化するため、微分可能空間に ω-cpo 構造を追加することで、ω-微分可能空間と呼ばれる新しい空間クラスを導入する。
  • ω-微分可能空間の圏における2重極限がAD正しさに必要な構造を保存することを示し、再帰を含む完全言語への正しさの拡張を達成する。
  • コドストリビュティブ法則と反映的部分圏技術を用いて、意味的モデルにおける再帰的型の解釈がAD変換を尊重することを保証する。

実験結果

リサーチクエスチョン

  • RQ1log(0) や ReLU(0) のような未定義関数を伴う部分関数が存在する状況で、どのように前向きモードADを形式的に正しく証明できるか?
  • RQ2部分性と微分を同時に扱える意味的枠組みにおいて、再帰的データ型と再帰的関数をどのようにモデル化できるか?
  • RQ3型再帰が存在する状況で、構文的ではなく意味的論理関係による議論を用いてADの正しさを証明できるか?
  • RQ4微分と再帰を統合的にモデル化するための数学的構造として、どのようなものが必要か?
  • RQ5一階で非再帰的な言語から、高階関数、再帰、和型を備えた完全な関数型言語へのADの正しさをどのように拡張できるか?

主な発見

  • 本稿では、部分的演算や再帰的構造を含むすべてのプログラムについて、前向きモードADマクロが正しく導関数を計算することを確立した。
  • 部分性モナドを備えた微分可能空間の使用は、未定義値やkinkのある関数(例:ReLU)を扱う強固な意味的基盤を提供する。
  • 論理関係を層として構築することで、和型における微分の正当な議論が可能となり、導関数における条件分岐のモデル化に不可欠である。
  • ω-微分可能空間の導入により、再帰と微分の両方を意味論的にモデル化でき、再帰的型への正しさの拡張が可能になった。
  • 項再帰と型再帰を含む完全言語への正しさの拡張が達成され、AD変換がリストや実数の木などの代数的データ型に対しても健全であることが示された。
  • 意味的アプローチにより、再帰の存在下で生じる構文的論理関係の技術的複雑さを回避し、より洗練され一般性の高い証明技法を提供した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。