图片缩略图

带反向传播的MLP神经网络

version 1.0.0.0 (79.8 KB) by Hesham Eraqi
基于反向传播学习的多层感知器(MLP)神经网络实现

16.2 k下载

更新2016年12月25日

查看许可协议

具有Sigmoid激活函数的多层感知器前馈全连接神经网络的实现。训练是使用带有弹性梯度下降、动量反向传播和学习率下降选项的反向传播算法完成的。当均方误差(Mean Square Error, MSE)达到零或达到预定义的最大纪元数时,训练停止。
更多细节和结果讨论,请访问我的博客帖子:http://heraqi.blogspot.com.eg/2015/11/mlp-neural-network-with-backpropagation.html
代码配置参数如下:
1-隐藏层的数目和每个隐藏层的神经元。它由变量nbrOfNeuronsInEachHiddenLayer表示。具有3个隐含层的神经网络,神经元数分别为4、10和5;该变量设置为[4 10 5]。
2-输出层虱子数。通常输出单元的数量等于类的数量,但也可以更少(≤log2(nbrOfClasses))。它由变量nbrOfOutUnits表示。输入层单元数由训练样本维数得到。
3- s形激活函数是单极的还是极的选择。它由变量单极双极选择器表示。
4-学习率η。
5-训练停止的最大纪元数,除非MSE达到零。它由变量nbrOfEpochs_max表示。
选项启用或禁用动量反向传播。它由变量enable_learningrateful _momentum表示。
7-动量反向传播速率α。它由变动量表示。
8-选择启用或禁用弹性梯度下降。它由变量enable_resilient_gradient_descent表示。
9-弹性梯度下降参数:η+, η-, Δmin, Δmax,由变量learningrateful +, learningrateful negative, deltas_min, deltas_max表示。
10-选择启用或禁用学习率降低。它由变量enable_controlle_learningrate表示。
11-学习率降低参数:和。它由变量learningrateful和min_learningRate表示。
代码还包含一个参数,用于绘制分离类和MSE曲线的决策边界。指定在其后绘制图形并保存在机器上的纪元数。数据保存在m文件之外的Results文件夹中。该参数由变量draw_each_nbrOfEpochs表示。变量dataFileName将Sharky输入点的文件名作为字符串。

引用作为

Hesham Eraqi(2021)。带反向传播的MLP神经网络(//www.tatmou.com/matlabcentral/fileexchange/54076-mlp-neural-network-with-backpropagation), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2008b
与任何版本兼容
平台的兼容性
窗户 macOS Linux
确认

启发:中长期规划学习

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!