当前位置: 首页 > news >正文

神经网络基础-神经网络补充概念-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 函数用于多分类输出,将神经网络的输出转换为概率分布。

代码实现

import numpy as npdef sigmoid(x):return 1 / (1 + np.exp(-x))
import numpy as npdef relu(x):return np.maximum(0, x)
import numpy as npdef leaky_relu(x, alpha=0.01):return np.where(x > 0, x, alpha * x)
import numpy as npdef tanh(x):return np.tanh(x)
import numpy as npdef 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)
http://www.lryc.cn/news/125253.html

相关文章:

  • 欧拉函数和最大公约数
  • 出牌游戏(game)
  • 踩坑---uni-app中@input 事件不生效
  • Linux命令(66)之tar
  • 零拷贝详解
  • 新能源汽车电控系统
  • Azure概念介绍
  • Zabbix监控MySQL数据库实战
  • 代理模式(Java实现)
  • 炬芯科技发布全新第二代智能手表芯片,引领腕上新趋势!
  • Linux学习之iptables规则基本演示
  • 探索Python编程的技巧:多线程魔法、网络舞台、正则魔法阵与递归迷宫
  • uniapp-微信小程序篇
  • 使用pymupdf实现PDF内容搜索并显示功能
  • Dalsa线阵相机说明(Linea Color GigESeries 2k and 4K)
  • 图神经网络 day2 图的分类
  • CentOS防火墙操作:开启端口、开启、关闭、配置
  • Chromium 如何在c++里面控制扩展加载
  • 分类预测 | MATLAB实现MTBO-CNN多输入分类预测
  • 操作符和表达式求值
  • Unity Spine帧事件
  • AE使用(一)
  • YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer
  • 06-4_Qt 5.9 C++开发指南_MDI应用程序设计
  • 【SCI征稿】3区SCI,正刊,智能传感、机器学习、智能检测与测量等均可
  • 神经网络ANN(MLP),CNN以及RNN区别和应用
  • CUDA、cuDNN以及Pytorch介绍
  • 使用shift关键字,写一个带二级命令的脚本(如:docker run -a -b -c中的run)
  • MySQL学习笔记 - 进阶部分
  • 微信小程序实现左滑删除