1

我正在解决一个有趣的机器学习问题,并且很想听听是否有人知道一个好的算法来处理以下问题:

  • 算法必须学会逼近N 个输入M 个输出的函数
  • N 相当大,例如1,000-10,000
  • M 非常小,例如5-10
  • 所有输入和输出都是浮点值,可以是正数或负数,绝对值可能相对较小,但不能绝对保证边界
  • 每个时间段我得到 N 个输入并需要预测 M 个输出,在时间段结束时提供 M 个输出的实际值(即,这是一种需要在线学习的监督学习情况)
  • 底层函数是非线性的,但不是太讨厌(例如,我希望它在大部分输入空间上都是平滑和连续的)
  • 函数中会有少量噪声,但信号/噪声可能很好 - 我预计 N 个输入将解释 95% 以上的输出值
  • 基础功能随着时间的推移而缓慢变化- 不太可能在单个时间段内发生剧烈变化,但可能会在 1000 多个时间段范围内发生轻微变化
  • 没有隐藏状态需要担心(除了改变函数),即所有需要的信息都在 N 个输入中

我目前正在考虑某种具有大量隐藏节点的反向传播神经网络可能会起作用 - 但这真的是这种情况的最佳方法吗?它会处理不断变化的功能吗?

4

3 回答 3

1

有了你的输入和输出的数量,我也会选择一个神经网络,它应该做一个很好的近似。微小的变化对反向传播技术是有益的,它不应该“去学习”东西。

于 2010-09-23T10:00:40.080 回答
1

我认为随机梯度下降(http://en.wikipedia.org/wiki/Stochastic_gradient_descent)将是直接的第一步,考虑到您拥有的操作条件,它可能会很好地工作。

于 2010-09-23T11:48:34.993 回答
1

我也会去ANN。单层可能会很好,因为您的输入空间很大。在添加大量隐藏层之前,您可能想试一试。

@mikera 它将用于什么?它是ML课程中的作业吗?

于 2010-09-23T17:38:08.827 回答