MLP神经网络反向传播

一个多层感知器(MLP)神经网络实现与反向传播学习

17.2 k下载

更新2016年12月25日

查看许可协议

一个实现多层感知器神经网络前馈完全连接的乙状结肠激活函数。训练使用反向传播算法,选择有弹性的梯度下降法,动量反向传播,学习速率降低。训练结束时,均方误差(MSE)达到零或一个预定义的最大数量的时代。
更多细节和结果讨论,访问我的博客:http://heraqi.blogspot.com.eg/2015/11/mlp-neural-network-with-backpropagation.html
配置参数的代码如下:
1 -隐藏层个数和每个隐层神经元。这是由变量nbrOfNeuronsInEachHiddenLayer表示。有一个神经网络与3个隐藏层神经元数4、10日和5分别;这个变量设置为10 5 [4]。
2 -输出层的傻瓜。通常输出单元的数量等于类的数量,但它仍然可以少(≤log2 (nbrOfClasses))。这是由变量nbrOfOutUnits表示。输入层单元的数量从训练样本获取维度。
3 -选择如果乙状结肠激活函数是单极或极性的。这是由变量unipolarBipolarSelector表示。
4 -学习率η。
5 -时代的最大数量的训练停止除非MSE达到零。这是由变量nbrOfEpochs_max表示。
6 -选项来启用或禁用动量反向传播。这是由变量enable_learningRate_momentum表示。
7 -α动量反向传播率。这是由变量momentum_alpha表示。
8 -选项来启用或禁用弹性梯度下降法。这是由变量enable_resilient_gradient_descent表示。
9 -弹性梯度下降法参数:η+,η,Δmin,Δmax,所代表的变量learningRate_plus learningRate_negative deltas_min, deltas_max。
10 -选项来启用或禁用学习速率降低。这是由变量enable_decrease_learningRate表示。
11 -学习速率降低参数:和。它是由变量learningRate_decreaseValue和min_learningRate。
图的代码还包含一个参数决定边界分离的类和均方误差曲线。时代的数量之后,将绘制一个图,并保存在指定的机器。数据保存在一个文件夹命名结果除了m文件。这个参数是由变量draw_each_nbrOfEpochs表示。变量dataFileName鲨鲨输入点文件名称字符串。

引用作为

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

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

启发:中长期规划学习

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!
版本 发表 发布说明
1.0.0.0

更新描述。

- 7 z zip转换。
添加缩略图
描述更新。
——纠正项目名称:延时而不是遏制。
——现在的代码正确运行。
添加一个“如果”条件的“权重{我}(:1)= 0”来处理特殊情况的最后一层。