首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BPNN进行水质管理是否过分?

使用BPNN进行水质管理是否过分?
EN

Stack Overflow用户
提问于 2015-12-21 13:01:44
回答 3查看 229关注 0票数 4

我正在开发一种淡水水质管理装置,它可以用于淡水水体,如湖泊和河流。该项目分为三部分:

  1. 第一部分介绍了pH、浊度等参数的获取。
  2. 第二部分论述了根据参数采取的纠正措施。例如,如果pH太低,设备将注入基本解决方案以维护7-7.5的pH。
  3. 第三部分根据所获得的参数(pH/浊度等)对湖泊的健康状况进行预测。预测算法应考虑到参数,并建立它们之间的相关性,以解释湖的持续时间。为了实现这一点,我目前倾向于使用反向传播神经网络(BPNN),因为我发现许多其他人/研究所更喜欢NN进行水质管理。

现在我担心的是,使用BPNN是否会对这个项目造成过度的影响?如果是,我应该选择哪种方法/工具?

*123.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-21 13:57:57

用“曾经是”的方式做一些事情,并不总是最好的主意。一般来说,如果你没有强,分析性的理由选择神经网络不应该从它开始。神经网络训练困难,具有大量的超参数,具有不确定性和计算量大的特点.总是从最简单的模型开始,并且只有当它产生糟糕的结果时--转到更复杂的模型。从理论上看,它是Vapnik定理的有力证明,从实践上看,它类似于编程中的敏捷方法。

那么从哪里开始呢?

  1. 线性回归(岭回归,Lasso)
  2. 多项式回归
  3. KNN回归
  4. RBF网络
  5. 随机森林师

如果他们都失败了--想想“经典”神经网络。但机会很大..。小的。

票数 8
EN

Stack Overflow用户

发布于 2015-12-30 14:06:47

神经网络是一种函数逼近器。如果你拥有的是一个输入的实值向量,并与每一个向量相关联,那么你有一个目标实数或分类,比如“好”、“坏”、“红色”等等,那么神经网络就可以用来解决你的问题。神经网络最简单的形式是n(x) := g(Wh(Ax + b)+ c)形式的函数,其中A和W是矩阵,b和c是向量,h是按分量方向的非线性函数,一般是sigmoid函数,g是一个与目标空间值相同的函数。在您的情况下,您的输入向量(表示在上面的x)将包含pH、浊度等,您的目标将是该湖泊将持续多长时间。如果你的网络经过适当的“训练”,它将能够在一个看不见的输入u( pH和浊度等的新测量值等)下,计算出湖的持续时间。“训练”神经网络包括选择A,W,b,c的参数。这些参数中有多少取决于你为A和W选择了多少列(因此也包括b和c)。选择这些参数的一种方法是,函数n(x)在所有的历史(培训)示例中都接近实际的、可测量的目标。更具体地说,选择A,W,b,c来最小化E(A,W,b,c) := (n(x) - t( x) )^2,其中t(x)是你历史测量的目标(当pH和浊度用x测量时,湖泊持续了多久)。试图在A,W,b,c上最小化E的一种方法是计算E相对于每个参数的梯度,然后通过一种称为反向传播的算法向负梯度迈出一步。

我想指出的是,当参数固定时,神经网络的计算是确定性的,但是有一些计算E梯度的算法不是确定性的。其他一些算法是确定性的。

那么,以所有这些为背景,神经网络是否对您的项目造成了过度的影响?这取决于你试图从你的观察到你想要预测的输出的函数。神经网络能否给你很好的预测精度取决于许多因素,其中最重要的可能是你需要训练多少个例子。如果你没有很多关于预测器数量的训练例子,一个神经网络可能不是你想要的,但在大多数情况下,这是一个经验问题,而不是一个理论问题。

好的一点是,如果您愿意使用python,那么就有好的库可以使所有这些测试对您来说都非常容易。如果你尝试一个神经网络,但它不能给你很好的预测,有许多其他的回归方法,你可以尝试。例如,您可以尝试线性回归(这是神经网络的特例)或随机林。所有这些都很容易在python中编写,如果您在线性回归和随机林中使用sklearn的话。有几个神经网络库,使他们玩起来非常容易,以及。我推荐tensorflow用于神经网络。

我的建议是花点时间尝试几种方法。对于这样一个相对简单的预测问题,训练网络的时间应该相当短。您可能听说过的较长的几天或几周的时间是用于具有数百万或数十亿个训练示例和数百万参数的大规模数据集的。

这里,http://pastebin.com/KrUAX9je是我创建的一个玩具神经网络,用于“学习”来逼近函数f(a,b,c) = a_b_c。

票数 4
EN

Stack Overflow用户

发布于 2015-12-26 03:16:39

反向传播(BP)是一种利用梯度下降学习神经网络模型参数的方法。它以一种高效的方式计算梯度。也有其他方法来训练这类模型,但由于许多原因,BP更常用。我不知道项目的规模和收集的数据量,但如果例子数量大,神经网络就会更有效。如果你有10个属性(pH,浊度.)也许超过2-3个例子,那么神经网络是有帮助的。

然而,你不应该认为神经网络是最好的模型。你需要尝试不同的模式,并选择一个给你最好的表现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34396347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档