0%

noone的黑奴项目:互联网+深度学习预测投药量

以下学习内容是基于论文 基于PSO-BP神经网络的隧道绿色建造污水处理预测模型 ,这是我能找到离项目内容最近的了

  • 深度学习概念速成

    • bp (反向传播)神经网络

      一种监督学习的神经网络,核心思想是通过梯度下降法优化权重使输出尽可能接近目标值

      其通常由三部分:输入层-接收数据;隐藏层-执行非线性计算并提取特征;输出层-给出最终预测结果

      其训练过程分为两个阶段:

      • 正向传播:输入层数据经过权重计算逐层传递到输出层,得到预测值 $y$

        这里每一层的计算都遵循神经元计算公式:

        $X$ 为输入,如污水的ph值等;$W$ 为权重,决定输入对输出的影响;$b$ 为偏置,帮助网络更灵活的学习;$f$ 为激活函数,引入非线性使神经网络能学习复杂关系;$h_i$ 即为当层神经元的输出

      • 反向传播:训练目标是使预测值 $Y$ 和真实值 $Y’$ 之间的误差尽可能小,而常用的误差度量则是均方误差:

        通过梯度下降算法调整神经网络权重和偏置来减小误差

        而梯度下降更新公式为:

        梯度是损失函数对参数(权重 $W$ 和偏置 $b$)的导数,表示损失函数变化的方向。梯度下降的目标就是沿着梯度方向调整参数使损失函数下降

        其中 $\alpha$ 是学习率,决定步长大小;$\frac{\delta Loss}{\delta W}$ 是·损失函数对权重的导数,表示误差如何变化

        通俗来说,假设站在一个山坡上,目标是走到最低点(即最小化损失),那么梯度下降则先计算坡度(梯度),看哪边更陡;并向坡度下降的地方走一步(调整参数);重复以上两步直至找到最低点

    • PSO 粒子群优化

      基于上面的梯度下降原则,不难发现其容易导致局部最优解,而 PSO 则可以优化 BP 神经网络的权重和阈值来避免其陷入局部最优

      • 基本思想:

        其模拟鸟群觅食(模拟退火啊嗯),每个鸟(粒子)是一个神经网络参数集(权重+偏置);这些鸟在空间中飞行,寻找最优解(最低损失);每只鸟会记住自己飞过的最好位置(个体最优解),并向全局最佳位置靠拢

      • 步骤:

        初始化粒子中随机生成多个权重集,并用 BP 神经网络计算损失值,随后更新每个粒子的速度和位置:

        其中 $x_i$ 为当前粒子的位置(即参数集$[W_1,b_1]$),$w$ 为惯性因子,控制粒子的移动惯性;$c_1 , c_2$ 为个体/社会学习因子,控制粒子对个体最优和全局最优的依赖程度;$r_1 , r_2$ 为 $(0,1)$ 之间随机数以增加随机性 $p_i$ 为当前粒子的个体最优解,$g$ 为全局最优解,即所有粒子历史上最好的位置

    • GNN 图神经网络

      • 结构

        以污水处理为例:

        • 节点:污水处理中的不同变量:PH值、浊度、搅拌时间等
        • 边:变量间相互作用,如PH影响絮凝剂效果
        • 邻接矩阵:描述变量间的链接关系

          即结构为:

          污水参数 $X$

          邻接矩阵 $A$

      • 基本计算方式

        消息传递:

        其中 $h_i^{(k)}$ 表示第 $k$ 层 GNN 中变量 $i$ 的特征表示

        $N(i)$ 是与节点 $i$ 相连的节点集合,即影响他的变量

        $W$ 是可训练的权重矩阵

        最终输出:

        $H$ 是 GNN 最终学到的污水变量关系表示,其将输出一个投药量预测结果,该结果将作为 RL 的初始策略

    • RL 强化学习

      基于 GNN 预测的投药量是基于历史数据的静态预测,但污水处理是动态优化问题:即污水条件随时间变化,投药策略需要实时调整,RL 通过试错学习最佳投药策略

      • 基本概念

        投药优化可被建模为一个 MDP ,即马尔可夫决策过程

        • 状态 $S$ :当前污水参数

        • 动作 $A$ :选择一个投药量

        • 奖励 $R$ :如果投药量最优且处理效果达标则奖励最高,如果过少或过多导致水质不达标则惩罚

        • 策略 $\pi$ :RL 通过学习一个策略来知道投药量决策

          其循环如下:

          1
          当前污水参数(S) --> 选择投药量(A) --> 计算处理效果(S') --> 获得奖励(R) --> 更新策略(π)
      • DQN 深度 $Q$ 网络

        其通过学习价值函数来优化决策

        • $Q(s,a)$ 表示在状态 $s$ 下选择动作 $a$ 的收益
        • $\gamma$ 是折扣因子,控制未来奖励的重要性
        • RL 通过不断调整投药策略使长期奖励最大化
    • Transformer 时序建模

      其用于处理序列数据(如文本,时间序列数据)而由于其强大的并行计算能力,已经用于NLP(自然语言处理)、时间序列预测、计算机视觉等领域

      其核心特点是彻底摒弃了 RNN/LSTM 的循环结构,而通过自注意力机制并行处理序列数据。

      即当前投药量决策应考虑历史数据,Transformer 的自注意力机制可学习长时间跨度的数据依赖来提高预测准确度

      • 结构

        • 编码器:将输入的序列转换为高维表示
        • 解码器:根据编码器的输出生成目标序列

          在投药量预测中,只需要编码器部分来提取时间序列数据的特征

      • 位置编码

        由于 transformer 并没有顺序处理能力,需要人为加入位置信息:

        其中 $pos$ 为序列中的位置索引,$d$ 为嵌入向量的维度,正弦和余弦函数让模型学习到时间间隔的信息

      • 自注意力机制

        其让每个时间步的数据都能关注整个序列来学习全局特征

        查询 $Q=XW_Q$ ;键 $K=XW_K$ ;值 $V=XW_V$

        其中 $X$ 是输入数据,$W_Q,W_K,W_V$ 是可学习的权重矩阵

        注意力权重:

        • $QK^T$ 计算查询与键的相似度以决定哪些信息更重要
        • $\sqrt{d_k}$ 是缩放因子,防止梯度爆炸
        • $\text{softmax}$ 归一化权重,决定注意力分布

        最终得出输出

      • 多头注意力机制

        单头注意力只能关注序列中的一个维度,可能遗漏信息。而多头注意力允许 transformer 在多个不同关注点上学习不同的特征来提高模型表达能力

        每个头执行独立的自注意力计算并拼接在一起

      • FFN 前馈神经网络

        transformer 的每一层除了自注意力模块,还有 FFN ,其用于进一步转换数据来提高模型非线性能力

  • 基于论文的问题

    • 隐藏层仅设置1层

      • BP网络隐藏层越多计算复杂度越高,PSO-BP需要优化整个网络的权重和偏置,隐藏层过多会导致参数量急剧增加
      • 根据通用近似定理,只要隐藏层神经元足够多,1层隐藏层的神经网络可以逼近任意连续函数
      • 任务复杂度决定隐藏层数量,而预测污水处理后浊度是一个相对简单的回归任务而非图像识别或自然语言处理需要深度网络,1层隐藏层足以学到输入参数和输出之间的关系
      • 论文中数据集不多,隐藏层过多会导致过拟合
    • PSO参数中惯性因子与学习因子设置

      • 惯性因子线性递减

        其控制粒子的移动惯性,影响探索和开发的平衡

        • 线性递减的惯性因子可以提高收敛效果,初始 $w=0.9$ 表示粒子初期移动范围大,探索能力强,有助于找到全局最优;后期逐渐递减,表示移动变慢以精准收敛到最优解
      • 学习因子均为 $2$

        标准PSO推荐参数即是 $c_1=c_2=2$ ,其保证PSO收敛性,此时个体和群体影响是均衡的,粒子既会向自己的最佳经验靠近,也会向全局最优靠近。

  • 试图创新环节

    • PSO-BP+物理驱动

      通过数据学习结合物理规律来做,即

      但我手头没公式不太清楚这样子容不容易实现

    • 生成式PSO-BP网络

      这种情况下,让BP主动探索不同的投药策略并用PSO选择最优方案

      其结构类似:

      之所以有更多的投药方案而非仅局限于BP1预测到的,是因为:

      • BP1仅由历史数据训练,其最优基于过去的经验,而可能有其他变化,如PH突然波动剧烈,或者设备升级导致的混凝效率提高
      • BP1仅能提供单一解,而实际上往往有低投药低效果,高投药高成本,以及平衡的方案
      • 防止PSO-BP也陷入局部最优

        在BP2中加入随机扰动:

        其中 $\gamma$ 控制扰动强度(也可以用PSO调),$N(0,\sigma)$ 为标准正态分布噪声,以此生成多个投药策略

        在BP3中,由适应度函数:

        其中 $C(Y)$ 为投药量成本以避免过量投药

        接着叠的话,BP2那里可以加个扩散模型来生成更好的候选方案

        BP1那里换成图神经网络来考虑更多重变量

    • 双路径PSO-BP网络

      多输入bp的一种特例,这个在工程实践领域已经广泛运用。因为过于基础所以没有论文提这个啊嗯

      在这种结构下,两个并行的BP网络分别学习污水本身特性与投药量的关系,以及目标浊度与投药量的关系,并将两者结合得到最优投药量预测

      对于融合层,因为两个BP的训练目标不同,所以需要将其结果融合:

      • 简单的加权求和:

        其中可训练参数 $\alpha ,\beta$ 由PSO优化:

      • 或者复杂一点

        用额外的BP层让神经网络自动学习融合输出

        但这样感觉很麻烦

    • 往上套别的东西,遗传算法或者强化学习什么的

  • 跳出PSO-BP