admin 管理员组

文章数量: 887021

matlab工具箱自定义激活函数并调用

win 10 R2018b matlab工具箱神经网络newff
首先介绍matlab神经网络工具箱自定义激活函数的模板选择及其在newff函数中的调用方式,可参考文章: 如何自定义MATLAB神经网络激活函数
1、在 “C:\Program Files\MATLAB\R2018b\toolbox\nnet\nnet\nntransfer” 中随机选择一个函数文件夹和文件到你的工作目录,例如ReLU函数:“poslin.m” 和 “+poslin”。

2、修改文件名和文件夹名,例如“elu.m” 和 “+elu”。

3、编辑 “elu.m” 第一行和最后一行函数名为 “elu” ,文件夹和函数名都要改一下。


4、编辑应用apply函数。位于 “./+elu/apply.m”,例如:(注:if-else语句不起作用,统一用逻辑语句表达)

5、编辑输入输出范围函数activeInputRange.m和outputRange.m

ir属于变量取值范围,or是输出的范围。
6、反向传播函数要修改,bsxfun函数是让两个数或者向量进行数学运算,@times是相乘,下图表示da与(n>=0)的逻辑值相乘

7、前向传播函数与反向传播函数同理

8、误差变化函数(具体名字忘了,表示变化的幅度,即曲线导数)

9、非连续性间断点定义函数discontinuity.m


10、其他函数基本不需要修改,如有需要可自行思考修改。

上面两个图主要区别在于判断激活函数是否非连续的语句,any函数是判断向量n==0是否成立,若成立则any语句输出为1,激活函数为非连续的。false是设置为0的函数,这里是判断出激活函数为连续的。如果激活函数是连续的就直接用false语句,如果在某点存在间断点(该点导数可能不存在或左导数不等于右导数),可以用any语句。
最后调用函数时直接使用自定义函数名,可以通过编写小程序验证自定义函数神经网络的正确性。

本文标签: 自定义 工具箱 函数 如何在 MATLAB