Как tf.gradients управляет сложными функциями?

Я работаю с комплексными нейронными сетями.

Для комплекснозначных нейронных сетей обычно используется исчисление Виртингера. Тогда определение производной (примите во внимание, что функции не голоморфны из-за теоремы Лиувилля):

wirtinger

Если вы возьмете книгу Акиры Хиросе «Комплекснозначные нейронные сети: достижения и приложения», глава 4, уравнение 4.9 определяет:

Скриншот от 38.10.2020

Где частная производная также рассчитывается с использованием исчисления Виртингера, конечно.

Это относится к тензорному потоку? или это определяется как-то иначе? Не могу найти хорошую ссылку по теме.


person Agustin Barrachina    schedule 19.07.2019    source источник
comment
Я мало знаю (или ничего) о сложном анализе, но, может быть, если вы можете привести несколько примеров неголоморфных функций, мы сможем посмотреть, что TensorFlow делает с градиентом. Хотя TF поддерживает сложные тензоры, я не уверен, в какой степени для них реализованы градиенты (для простой арифметики, кажется, это работает, но я не знаю о более сложных операциях). Даже если функция рассматривается TensorFlow как недифференцируемая, вы можете реализовать градиент самостоятельно с помощью tf.gradient (но это, вероятно, не то, что вас сейчас интересует).   -  person jdehesa    schedule 19.07.2019


Ответы (1)


Итак, я обсуждал это в существующей ветке в github/tensorflow, и @charmasaur нашел ответ, уравнение, используемое Tensorflow для градиента:

tf-grad-def

При использовании определения частных производных по z и z* используется исчисление Виртингера.


Для случаев скалярной функции с действительным знаком одной или нескольких комплексных переменных это определение становится:

Это действительно определение, используемое в приложениях комплексных нейронных сетей (CVNN) (в этих приложениях функция представляет собой функцию потерь/ошибок, которая действительно реальна).

person Agustin Barrachina    schedule 25.09.2019
comment
Я не пометил это как решение, потому что мне все еще нужен проверенный источник / ссылка, которую я могу процитировать. Мне нужна ссылка, которая утверждает, что это уравнение для Tensorflow, или кто-то в Tensorflow, который работает с этим, и говорит мне, что это действительно правильно. - person Agustin Barrachina; 02.03.2020
comment
Также запросил это здесь - person Agustin Barrachina; 02.03.2020