训练具有复值权重的神经网络(初始化复值权重实值输入)

时间:2016-01-24 06:11:31

标签: machine-learning scipy neural-network mathematical-optimization

正如问题所述。我的目标是训练一个重量是复数的神经网络。使用默认的scikit学习网络并在此基础上编辑(编辑源代码)我遇到的主要问题是scipit中使用的优化函数从scipy中获取仅支持输入为实数的函数的数值优化。

如果您希望分叉和编辑结构相当不灵活,那么Scikit学习对于神经网络来说是相当差的。

正如我已经注意到并在这里阅读了一篇论文,我需要改变诸如错误函数之类的东西,以确保在顶层错误仍然存​​在于实数域中或者问题变得不明确。

我的问题是,是否有任何标准库可以执行此操作?或任何简单的调整,我可以做烤宽面条或张力流来拯救我的生命?

P.S。 : 很抱歉没有发布任何有效的代码。格式化stackoverflow标准是一个困难的问题,我承认它可能超出了主题,在这种情况下,我道歉,如果有的话。

2 个答案:

答案 0 :(得分:4)

最简单的方法是将您的功能划分为实部和虚部。我已经使用跳跃运动的矢量输入完成了类似的工作,如果将矢量划分为它们的分量轴,它可以显着简化事物。

答案 1 :(得分:2)

Tensorflow具有基本的复数支持。

如果你必须自己构建神经网络节点,你可以看一眼blog

对于全纯函数,复杂BP非常简单。

对于非全纯函数,它们需要小心处理。