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工具箱中自定义激活函数及其使用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1716164785h669088.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论