[logic-ml] Talk by Gordon Plotkin on 1st April 2019 at Kyoto

Masahito Hasegawa masahito.hasegawa at gmail.com
Tue Mar 26 22:06:07 JST 2019


皆様、

来週の月曜(4月1日)、京都大学数理解析研究所で、プログラム意味論などの研究で著名なGordon
Plotkinさん(Edinburgh大学)の講演があります。詳細は下記のとおりです。関心をお持ちの方のご来聴を歓迎します。どうぞよろしくお願いいたします。

京都大学数理解析研究所
長谷川真人

==========
Time:  14:00-15:00, 1st April 2019 (Mon.)
Place: Room 110, Research Institute for Mathematical Sciences, Kyoto University
  京都大学数理解析研究所(本館)1階110号室
  http://www.kurims.kyoto-u.ac.jp/en/access-01.html

Speaker: Gordon Plotkin (LFCS, University of Edinburgh)

Title:  One-and-a-half simple differentiable programming languages

Abstract:

Languages for learning pose interesting foundational challenges. We
look at one case: the foundations of differentiable programming
languages with a first-class differentiation operator. Graphical and
linguistic facilities for differentiation have proved their worth over
recent years for deep learning (deep learning makes use of gradient
descent optimisation methods to choose weights in neural nets).
Automatic differentiation, also known as algorithmic differentiation,
goes much further back, at least to the early 1960s, and provides
efficient techniques for differentiation, e.g., via source code
transformation. It seems fair to say, however, that differentiable
programming languages have begun to appear only recently. It seems
further fair to say that, while there has certainly been some
foundational study of differentiable programming languages, there is
ample opportunity to do more.

We investigate the semantics of a simple first-order functional
programming language with reals, product types, and a first-class
reverse-mode differentiation operator (reverse-mode differentiation
generalises gradients). The semantics employs a standard concept of
real analysis: smooth multivariate functions with open domain. It
turns out that such partial functions fit well with programming
constructs such as conditionals and recursion; indeed they form a
complete partial order, and so standard fixed-point methods can be
applied.  We  give an operational semantics which, roughly, can be
seen as a formalisation of a version of the trace (or tape) method
used to implement automatic differentiation. The semantics consists of
three parts: ordinary evaluation, symbolic evaluation to eliminate
control constructs, and a source-code transformation to symbolically
differentiate terms with no control constructs,

>From a programming language point of view, however, many types are
lacking, particularly sum types and recursive types, such as lists. We
conclude with a brief presentation of notions of shapely datatypes and
smooth functions. These can be used to give the semantics of such
types and the usual functions between them while retaining first-class
differentiation.

This work constitutes only an initial exploration, and we look forward
to a rich field connecting two worlds: programming languages and their
foundations, and real analysis and allied areas of mathematics.
==========



More information about the Logic-ml mailing list