神经网络激活函数

激活函数分为两大类:饱和函数和非饱和函数。
在这里插入图片描述
非饱和函数的优点:
(1)"非饱和激活函数”能解决所谓的“梯度消失”问题;
(2)它能加快收敛速度。
常见的饱和函数:sigmoid、tanh;
常见的非饱和函数:ReLU等。

1.sigmoid

sigmoid函数将一个实值输入压缩至[0,1]的范围。
在这里插入图片描述
函数图像如下:
在这里插入图片描述
sigmoid的不足:
1.容易出现梯度消失;
2.函数输出不是零中心;
3.指数函数的计算是比较消耗计算资源的。

tanh

tanh与si

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络中,常见激活函数有sigmoid函数、ReLU函数、Leaky ReLU函数和softmax函数等。以下是在MATLAB中实现这些激活函数的示例代码: 1. Sigmoid函数: ```matlab function y = sigmoid(x) y = 1 ./ (1 + exp(-x)); end ``` 2. ReLU函数: ```matlab function y = relu(x) y = max(0, x); end ``` 3. Leaky ReLU函数: ```matlab function y = leakyrelu(x, alpha) y = max(alpha*x, x); end ``` 其中,alpha是一个小于1的参数,用于控制负数部分的斜率。 4. Softmax函数: ```matlab function y = softmax(x) ex = exp(x); sum_ex = sum(ex); y = ex ./ sum_ex; end ``` 以上代码中,softmax函数接收一个向量作为输入,并返回一个与输入向量维度相同的概率分布向量。 在神经网络中,通常会在每个神经元的输出上应用激活函数。例如,在MATLAB中定义一个具有两个隐藏层和一个输出层的神经网络,其中使用ReLU激活函数: ```matlab net = feedforwardnet([10, 5]); % 创建一个具有10个神经元的第一个隐藏层和5个神经元的第二个隐藏层的前馈神经网络 net.layers{1}.transferFcn = 'relu'; % 设置第一个隐藏层的激活函数为ReLU net.layers{2}.transferFcn = 'relu'; % 设置第二个隐藏层的激活函数为ReLU net.layers{3}.transferFcn = 'purelin'; % 设置输出层的激活函数为线性函数 ``` 在这个例子中,我们使用`feedforwardnet`函数创建了一个前馈神经网络,然后通过修改`net.layers`中每个隐藏层和输出层的`transferFcn`属性,指定了相应的激活函数。 希望这些示例能帮助到你在MATLAB中实现神经网络常见激活函数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值