最近在构建nn的时候,发现使用内积导致了输出全0,所以研究下tf的自动求导机制。题目来自于知乎的一个问题《(34 封私信 / 77 条消息) TensorFlow的自动求导具体是在哪部分代码里实现的? - 知乎》,这个答案讲的很好,但是对其中log函数求导先求复共轭的逻辑有点疑惑,所以研究下复数求导相关机制。先从实数域的多元函数导数讲起,再讲复数域的多元函数导数机制。

tf梯度->方向导数存在的前提->多元可微

实数多源求导

1 实数域下多元函数的可微性

微分和导数是两个不同的概念。

  • 对于一元函数,可微和可导完全等价。
  • 对于多元函数,可微指的是可全微分。如果在偏导数存在且连续,那么可微

1.1 一元函数的可微性,可导,连续性

如果$y=f(x)$在点x可导,那么函数在该点必连续。反之,一个函数在某点连续但不一定在该点可导,例如函数$f(x)=\sqrt[3]{x}$在实数域内连续,但是在点x=0处不可导。对于一元函数,可微和可导完全等价。

1.2 多元函数的可微性,可导,连续性

雅可比矩阵:

1 复数与复平面

复数,为实数的延伸,它使任一多项式方程都有根。复数当中有个虚数单位,它是-1的一个平方根,即$i^2=-1$。任一复数都可表达为$x + yi$,其中x及y皆为实数,分别称为复数之“实部”和“虚部”。复数的发现源于三次方程的根的表达式。数学上,“复”字表明所讨论的数域为复数,如复矩阵,复变函数等。

复平面(英语:Complex plane)是用水平的实轴与垂直的虚轴建立起来的复数的几何表示。

2 全纯函数

全纯函数(英语:Holomorphic function)是复分析研究的中心对象;它们是定义在复平面上的,在复平面$C$中取值的,在每点上皆复可微的函数。全纯函数有时称为正则函数。在整个复平面上都全纯的函数称为整函数。在一点a全纯,不仅意味着a可微,而且表示在某个中心为a的复平面上的开邻域上可微。

2.1 定义

若$U$为$C$的开子集,且$f: U->C$为一个函数。

  • 我们称$f$是在$U$中一点$z_0$是复可微的(complex differentiable)或全纯的,当且仅当该极限存在:

$$
f^{‘}(z_0)=\lim_{z \to z_0} \frac{f(z)-f(z_0)}{z-z_0} \quad
$$

  • 若$f$在$U$上任取一点均全纯,则称f在$u$上全纯
  • 特别地,若函数在整个复平面全纯,我们称这个函数为整函数

关于全纯函数还有一个等价的定义:一个复函数全纯当且仅当它满足柯西-黎曼方程

3 复变函数可微性

4 Wirtinger导数

参考