神经网络激活函数

1.Sigmoid

Sigmoid散活函数是将个实数输入转化至 0 ~ 1 之间的输出, 体来说也就是将越大的负数转化到越靠近 0 ,越大的正数转化到越靠近1。多用于二分类。

 

缺点:

   1).Sigmoid 函数会造成梯度消失。一个非常不好的特点就是 Sigmoid 函数在靠近1和0 的两端时,梯度会几乎变成 0,会导致无法更新参数,梯度消失

   2). Sigmoid 输出不是以 O 为均值,这就会导致经过 Sigmoid 激活函数之后的输出,作为后面一层网络的输入的时候是非 0 均值的,这个时候如果输入进入下一层神经元的时候全是正的,这就会导致梯度全是正的,那么在更新参数的时候永远都是正梯度。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值