神经网络基础-神经网络补充概念-20-激活函数

概念

激活函数是神经网络中的一个重要组成部分,它引入了非线性性质,使得神经网络可以学习和表示更复杂的函数关系。激活函数对于将输入信号转换为输出信号起到了关键作用,它在神经元的计算过程中引入了非线性变换。

几种常见的激活函数及其特点

Sigmoid函数:

Sigmoid 函数将输入映射到一个 0 到 1 的范围,它的公式是:f(x) = 1 / (1 + exp(-x))。

特点:Sigmoid 函数在输入很大或很小时,输出接近于0或1,适合用于输出层进行二分类问题的概率估计。但它在远离零点时梯度接近于零,可能导致梯度消失问题。

ReLU函数(Rectified Linear Unit):

ReLU 函数将负数输入变为零,非负数输入保持不变,它的公式是:f(x) = max(0, x)。

特点:ReLU 对于正数输入有很强的激活作用,能够缓解梯度消失问题。但存在一个问题,即在训练过程中可能出现"神经元死亡"现象,即某些神经元永远不会被激活。

Leaky ReLU函数:

Leaky ReLU 是对 ReLU 的改进,它在负数区域引入一个小的斜率,公式是:f(x) = x (x > 0),f(x) = ax (x <= 0),其中 a 是一个小于 1 的常数。

特点:Leaky ReLU 克服了 ReLU 的神经元死亡问题,但仍然能够引入一些非线性。

Tanh函数(双曲正切函数):

Tanh 函数将输入映射到 -1 到 1 的范围,公式是:f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。

特点:Tanh 函数可以将输入的负值映射到负区间,适合用于隐藏层中。但仍然存在梯度消失问题。

Softmax函数:

Softmax 函数将一组实数映射到概率分布,用于多分类问题。它的公式是:f(x_i) = exp(x_i) / sum(exp(x_j)),其中 i 表示第 i 个类别。

特点:Softmax 函数用于多分类输出,将神经网络的输出转换为概率分布。

代码实现

python 复制代码
import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))
python 复制代码
import numpy as np

def relu(x):
    return np.maximum(0, x)
python 复制代码
import numpy as np

def leaky_relu(x, alpha=0.01):
    return np.where(x > 0, x, alpha * x)
python 复制代码
import numpy as np

def tanh(x):
    return np.tanh(x)
python 复制代码
import numpy as np

def softmax(x):
    exp_x = np.exp(x - np.max(x, axis=-1, keepdims=True))
    return exp_x / np.sum(exp_x, axis=-1, keepdims=True)
相关推荐
Elastic 中国社区官方博客1 分钟前
使用 Elastic AI Assistant for Search 和 Azure OpenAI 实现从 0 到 60 的转变
大数据·人工智能·elasticsearch·microsoft·搜索引擎·ai·azure
江_小_白1 小时前
自动驾驶之激光雷达
人工智能·机器学习·自动驾驶
yusaisai大鱼2 小时前
TensorFlow如何调用GPU?
人工智能·tensorflow
珠海新立电子科技有限公司5 小时前
FPC柔性线路板与智能生活的融合
人工智能·生活·制造
IT古董5 小时前
【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)
人工智能·机器学习·图论
曼城周杰伦5 小时前
自然语言处理:第六十三章 阿里Qwen2 & 2.5系列
人工智能·阿里云·语言模型·自然语言处理·chatgpt·nlp·gpt-3
余炜yw6 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习
莫叫石榴姐6 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
96776 小时前
对抗样本存在的原因
深度学习
如若1237 小时前
利用 `OpenCV` 和 `Matplotlib` 库进行图像读取、颜色空间转换、掩膜创建、颜色替换
人工智能·opencv·matplotlib