tf.gradients 如何管理复杂的功能?
How does tf.gradients manages complex functions?
我正在使用复值神经网络。
对于复值神经网络,通常使用 Wirtinger 微积分。那么导数的定义是(考虑到由于刘维尔定理,函数是非全纯的):
如果拿Akira Hirose的书"Complex-Valued Neural Networks: Advances and Applications",第4章方程4.9定义:
其中偏导数当然也是用维廷格微积分计算的。
tensorflow也是这样吗?还是以其他方式定义?我找不到关于该主题的任何好的参考资料。
好的,所以我在 github/tensorflow 的现有线程中讨论了这个问题,@charmasaur 找到了响应,Tensorflow 用于梯度的方程是:
当使用关于 z 和 z* 的偏导数的定义时,它使用 Wirtinger 微积分。
对于一个或多个复变量的实值标量函数的情况,此定义变为:
这确实是复值神经网络 (CVNN) 应用程序中使用的定义(在此应用程序中,函数是 loss/error 函数,它确实是真实的)。
我正在使用复值神经网络。
对于复值神经网络,通常使用 Wirtinger 微积分。那么导数的定义是(考虑到由于刘维尔定理,函数是非全纯的):
如果拿Akira Hirose的书"Complex-Valued Neural Networks: Advances and Applications",第4章方程4.9定义:
其中偏导数当然也是用维廷格微积分计算的。
tensorflow也是这样吗?还是以其他方式定义?我找不到关于该主题的任何好的参考资料。
好的,所以我在 github/tensorflow 的现有线程中讨论了这个问题,@charmasaur 找到了响应,Tensorflow 用于梯度的方程是:
当使用关于 z 和 z* 的偏导数的定义时,它使用 Wirtinger 微积分。
对于一个或多个复变量的实值标量函数的情况,此定义变为:
这确实是复值神经网络 (CVNN) 应用程序中使用的定义(在此应用程序中,函数是 loss/error 函数,它确实是真实的)。