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

深度学习--激活函数

激活函数通过计算加权加上偏置来确定神经元是否应该激活它们输入信号转换为输出可微运算大多数激活函数都是非线性由于激活函数深度学习基础下面简要介绍一些常见激活函数

1 RelU函数

最受欢迎激活函数修正线性单元ReLU因为实现起来简单同时各种高预测任务表现良好ReLU提供了一种非常简单非线性变化给定元素x RelU函数定义元素0最大值

RelU(x) = max(x, 0);

通俗地说RelU函数通过相应激活设为0仅仅保留元素丢弃所有元素为了直观感受一下我们可以绘制函数的曲线正如图中所看到激活函数分段线性

x = torch.arange(-8.0, 8.0, 0.1); requires_grad = true

y = torch.relu(x);

d2l.plot(x.detach(), y.detach(), 'x', 'relu(x)', figsize = (5, 2.5));

2 sigmoid激活函数

对于一个定义域R输入sigmoid函数输入变换为区间(0,1) 输出因此sigmoid 通常称为挤压函数将范围(-inf,inf)任意输入压缩区间0,1)某个值

sigmoid(x) = 1/(1 + exp(-x))

sigmoid函数的导数

d/dx sigmoid(x) = exp(-x) / (1 + exp(-x))^2 = sigmoid(x)(1 - sigmoid(x))

3 tanh函数

sigmoid 函数类似tanh(双曲正切)函数也能将其输入压缩转换区间(-1,1)tanh函数如下

tanh(x) = 1 - exp(-2x) / 1 + exp(-2x)

下面我们绘制tanh函数的图像注意输入0附近tanh函数接近线性变换函数形状类似于sigmoid函数不同的是tanh函数关于坐标系原点中心对称

y = torch.tanh(x);

d2l.plot(x.detach(), t.detach(), 'x', 'tanh(x)', figsize = (5, 2.5));

tanh函数的导数

d/dx tanh(x) = 1 - tanh^2(x)

tanh函数导数图像如下所示输入接近0tanh函数导数接近最大值1我们sigmoid函数的图像看到的类似输入任一方向远离0导数接近0.

相关文章:

  • 【Bluedroid】A2DP Sink播放流程源码分析(二)
  • 关于在Spring Boot + SpringSecurity工程中Sercurity上下文对象无法传递至新线程的问题解决
  • 高级语言调用C接口(二)回调函数(3)C#
  • 智慧生态评估体系构建与三维可视化实践——基于多源数据融合的内蒙古风电场生态效应研究
  • 杰理10k3950温度测量
  • 3.数组(随想录)
  • C语言学习之sizeof函数和strlen函数
  • 【Code】《代码整洁之道》笔记-Chapter17-味道与启发
  • 云服务器和物理服务器有什么区别
  • 2025年3月,再上中科院1区TOP,“等级熵+状态识别、故障诊断”
  • 制作一款打飞机游戏教程6:射击优化
  • 【嵌入式八股5】C++:多线程相关
  • Python基础语法——注释和输入输出
  • Go 语言的 map 在解决哈希冲突时,主要使用了链地址法同时参考了开放地址法的思想即每个桶的 8个 key val对是连续的
  • 如何利用游戏盾提升在线游戏的安全性?
  • 2025 年蓝桥杯 Java B 组真题解析分享
  • 大模型平台Dify工作流高效调用Ragflow知识库,解决其原生知识库解析和检索能力不足的问题
  • 基于ssm的航空售票系统
  • by组态适用领域
  • Shell编程之函数与数组
  • “代课老师被男友杀害案”一审开庭,将择期宣判
  • 文化中国行|1500年水镇枫泾有座丁聪美术馆
  • 嘉兴乌镇一化工公司仓库火灾后,当地召开火灾警示现场会
  • 9部门发文促进家政服务消费扩容升级
  • 市监总局:清理整治各种忽悠人的广告乱象,确保群众放心消费
  • 下一站,启东:启东城市形象亮相上海街头