【问题标题】:How to estimate the sine function with "parameters" using DNN in python?如何在python中使用DNN估计带有“参数”的正弦函数?
【发布时间】:2019-02-04 04:17:13
【问题描述】:

我想做的是用频率 w、时间 t、相位 phi 等参数估计正弦函数。

我尝试了两种情况。(我附上了描述图片和源代码的链接)

案例 1 是关于单输入 x 的正弦函数估计 案例2是关于多输入正弦函数的估计(x除以3:频率w,时间t,相位phi)

案例 1 运行良好。我的损失值非常低。(大约为 0) 案例 2 效果不佳。损失值相当高。收敛到 25

我想提高它的性能,并知道它性能不佳的原因。

我附上了源代码的nbviewer链接和描述图片的evernote链接。

案例一)https://nbviewer.jupyter.org/gist/nuriahn/1dd28ef1164a8a358bb7875f48dc1174

案例 2) https://nbviewer.jupyter.org/gist/nuriahn/f4b25917243c4b043caf640362dcd0ea

描述图片) http://www.evernote.com/l/AYuq8O7ErDtKK4346xKk7RzmVx9fX0zTdT8/

我希望这个模型可以学习这个公式:y=sin(w*t+phi)。 例如,当我将 w=2、t=4 和 phi=0.5 作为输入时,我会得到输出 y 作为 sin(2*4+0.5) 的结果。

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    在这种情况下,只有案例 1 会起作用,因为它将 w 和 phi 作为要学习的参数。

    在第二种情况下,当您将参数(应该由网络学习)作为输入传递并让网络通过完全连接的层(通过添加更多权重)确定它们之间的关系时,您不能期望网络学习.

    【讨论】:

    • 你能解释一下为什么第二种情况很难,以便我可以修改第二种源代码吗?
    • 在我看来,不是很难,而是不可能。该网络不仅学习了变量之间的关系,还在现有的 w、t 和 phi 中添加了多个权重参数。除此之外,从概念上讲,它也不会敲响警钟。正弦波应该只是时间的函数。但是你试图让它成为时间、频率和相位的函数。可能你对这种实现方式有一些解释。
    猜你喜欢
    • 2014-12-21
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多