BP神经网络&遗传算法GA
先学算法 bv11K4y1h7MD
再下载代码和数据,弄懂程序
BP神经网络简介
- BP神经网络的结构
- 感知器——BP神经网络的单个节点
- BP神经网络的核心步骤
- BP神经网络的正向传播与反向传播
- 通过迭代的方法寻找函数的最小值
- BP神经网络反向传播——选择算法:梯度下降法(下降最快)
- 图解法讲解正向传播与反向传播
- 局部梯度
- 特殊运算结构
- 总结:
- 梯度下降+损失函数+求导链法则=最后的权重迭代更新
- 损失函数就是目标函数
BP神经网络 代码部分
- 定义training_set_inputs 输入数据 training_set_inputs 输出数据
制定一组规范,比如输入(1 0 0)(2 0 0)输出(1)(2) - 训练好模型以后,输入(3 0 0)应该输出(3)机器输出2.99999,训练成功
遗传算法 BV14a411C7s8 (启发式算法 迭代寻找解)
- 基本原理:交叉 变异
- 编码:常见就是把值转换成二进制,二进制有1,0,方便交叉变异,为每一个数值分配一个独一无二的解
- 解码:当前串是第几个串,可以使用二进制转十进制得到
- 复制:找一个好的,去代替掉那个差的
- 交叉:可以按顺序,也可以随机
- 变异:可以都变异,也可以按适应度变异
- 算法实现
启发式算法的算法策略
保底机制+更新策略=寻得优解
代码的思想非常简单,随机生成一个初始解,每次循环再随机生成一个解,如果新的解比旧解好,就
更新 (择优进化),否则不更新。
针对课题算法的总结
- BP神经网络是神经网络的经典算法,具有很强的自我学习能力,它可以在不清楚具体函数关系的情况下,通过学习输入数据即可获得输入与输出之间的映射关系,非常适合腐蚀速率预测问题的求解。
- BP神经网络在实际应用过程中具有收敛速度缓慢和易陷入局部最优的缺陷,该缺陷对BP神经网络的应用效果影响很大。因此,针对BP神经网络收敛缓慢的问题,对腐蚀因素进行PCA主成分分析 处理,并将处理结果作为网络输入,目的是减少输入层神经元个数、优化网络结构、降低计算量、加快网络的收敛速度。
- 针对BP神经网络在网络训练时易陷入局部最优的问题,通过GA算法超强的搜索能力来优化其网络权值降低其陷入局部最优的概率。
- 综上,PCA算法具有很强的特征提取能力,且可以最大程度的保留数据的原始信息。GA算法的整体搜索策略不受连续、可微的要求,适用条件非常宽泛,同时具有并行性,使其善于解决繁琐的非线性优化问题。BP神经网络拥有很强的学习和泛化能力,将PCA算法、GA算法和BP神经网络的优势相结合,构PCA-GA-BP神经网络模型来进行腐蚀速率预测,该网络不但能够克服BP神经网络的缺陷,还能进一步提高腐蚀速率预测的精度。