如何在matlab工具箱中自定义激活函数及其使用

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语句。
最后调用函数时直接使用自定义函数名,可以通过编写小程序验证自定义函数神经网络的正确性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值