激活函数的3个基本作用是什么?并绘制几类常见激活函数图
时间: 2024-02-17 13:39:30 浏览: 13
激活函数的三个基本作用是:
1. 引入非线性因素:激活函数能够将输入数据转化成非线性的输出,增加了神经网络的表达能力和灵活性。
2. 压缩数据范围:激活函数将输入数据的范围限制在一个合理的区间内,避免了数据过大或过小对网络的影响。
3. 提高网络的鲁棒性:激活函数能够增强网络的鲁棒性,使得网络对输入数据的微小变化也能有较好的响应。
常见的激活函数包括:
1. Sigmoid函数:将输入数据压缩在0~1之间,常用于二分类问题。
2. ReLU函数:将负数的输出值设为0,使得神经元具有稀疏性,提高了网络的鲁棒性。
3. Leaky ReLU函数:在ReLU函数的基础上,将负数的输出值设为一个极小的斜率,可以避免ReLU函数出现“死神经元”的问题。
4. Tanh函数:将输入数据压缩在-1~1之间,常用于回归问题。
下图是常见激活函数的图像:
![activation functions](https://img-blog.csdn.net/20180509214244620?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3VwbG9hZC9hcHBfY3Nkbl9zdWNjZXNz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
相关问题
2、激活函数的3个基本作用是什么?并绘制几类常见激活函数图
激活函数的三个基本作用是:
1. 引入非线性因素:激活函数能够将输入信号映射到非线性空间,从而使神经网络能够处理非线性问题。
2. 压缩输出范围:激活函数能够将输出值限制在一定范围内,避免神经网络的输出值过大或过小,从而提高模型的稳定性和泛化能力。
3. 实现神经元之间的交互:激活函数能够实现神经元之间的相互作用,从而使神经网络能够表达复杂的函数关系。
常见的激活函数包括:
1. Sigmoid函数:将输入值压缩到[0,1]范围内,常用于二分类问题。
![sigmoid函数](https://cdn.luogu.com.cn/upload/image_hosting/ci8r0h1r.png)
2. ReLU函数:将负数部分截断为0,常用于减少梯度消失问题。
![ReLU函数](https://cdn.luogu.com.cn/upload/image_hosting/5f5e5pvm.png)
3. Leaky ReLU函数:在负数部分引入一个小的斜率,可以避免ReLU函数的死亡ReLU问题。
![Leaky ReLU函数](https://cdn.luogu.com.cn/upload/image_hosting/8k8fzvqa.png)
4. Tanh函数:将输入值压缩到[-1,1]范围内,常用于回归问题。
![Tanh函数](https://cdn.luogu.com.cn/upload/image_hosting/rz5y7o8e.png)
5. Softmax函数:将多个神经元的输出值映射到[0,1]范围内,且所有输出值之和为1,常用于多分类问题。
![Softmax函数](https://cdn.luogu.com.cn/upload/image_hosting/3vo3f2hm.png)
python sigmoid函数
Python中的sigmoid函数可以用以下代码定义:
```python
def sigmoid(x):
return 1.0 / (1 + np.exp(-x))
```
这个函数接受一个参数x,并返回一个0到1之间的值,代表了x的sigmoid激活值。
Sigmoid函数的数学表达式为:
```python
f(x) = 1 / (1 + exp(-x))
```
这个函数在伯努利分布上非常有用,特别适用于二分类问题。它的图像呈现平滑的曲线,当x趋近于正无穷或负无穷时,函数趋近于0或1。
Sigmoid函数有以下几个优点:
1. 值域在0到1之间,非常适合表示概率。
2. 函数具有良好的对称性。
3. 在二分类任务中,我们可以使用Sigmoid函数的输出作为事件概率,当输出满足某一概率条件时,我们将其划分为正类。
你可以使用matplotlib库将Sigmoid函数的图像绘制出来,如下所示:
```python
from matplotlib import pyplot as plt
import numpy as np
def sigmoid_function(z):
fz = []
for num in z:
fz.append(1 / (1 + np.exp(-num)))
return fz
if __name__ == '__main__':
z = np.arange(-10, 10, 0.01)
fz = sigmoid_function(z)
plt.title('Sigmoid Function')
plt.xlabel('z')
plt.ylabel('σ(z)')
plt.plot(z, fz)
plt.show()
```
另外,你还可以使用numpy库的arange函数生成一组数字,并传入sigmoid函数来绘制其函数图像,如下所示:
```python
nums = np.arange(-10, 10, step=1)
plt.plot(nums, sigmoid(nums), 'r')
plt.show()
```
这将生成一个以x轴为输入,y轴为sigmoid函数输出的函数图像。