深度学习之激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。

1. 为什么需要激活函数

因为神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论你构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。

2. 常见激活函数

(1)Sigmoid函数

取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。
在这里插入图片描述
在这里插入图片描述
使用范围:
①Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到1,因此它对每个神经元的输出进行了归一化;

②用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
不足之处:

在趋近0/1附近易梯度消失;

不以零为中心:Sigmoid 输出不以零为中心的,,输出恒大于0,非零中心化的输出会使得其下一层的神经元的输入发生偏置偏移(Bias Shift),并进一步使得梯度下降的收敛速度变慢。
计算成本高昂:exp() 函数与其他非线性激活函数相比,计算成本高昂,计算机运行起来速度较慢。

(2)Tanh函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优点
输出是0均值;
缺点:
依旧在两端存在“梯度消失”;
注意:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。

(3)ReLU函数

在这里插入图片描述
在这里插入图片描述
优点:
①当输入为正时,导数为1,一定程度上改善了梯度消失问题,加速梯度下降的收敛速度;
②计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。
③被认为具有生物学合理性(Biological Plausibility),比如单侧抑制、宽兴奋边界(即兴奋程度可以非常高)
缺点:
①Dead ReLU问题,当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零;

②不以零为中心:和 Sigmoid 激活函数类似,ReLU 函数的输出不以零为中心,ReLU 函数的输出为 0 或正数,给后一层的神经网络引入偏置偏移,会影响梯度下降的效率。

(4)LeakyReLU

在这里插入图片描述
在这里插入图片描述
为什么使用Leaky ReLU会比ReLU效果要好呢?
① Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题,当 x < 0 时,它得到 0.1 的正梯度。该函数一定程度上缓解了 dead ReLU 问题,

② leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;

③ Leaky ReLU 的函数范围是(负无穷到正无穷)

尽管Leaky ReLU具备 ReLU 激活函数的所有特征(如计算高效、快速收敛、在正区域内不会饱和),但并不能完全证明在实际操作中Leaky ReLU 总是比 ReLU 更好。

本节完!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【odoo | SQL】odoo使用sql语句操作数据库

概要 Odoo的SQL指的是在Odoo框架内使用SQL语句直接操作数据库。这些操作通常是通过Odoo提供的数据库游标&#xff08;self.env.cr&#xff09;来执行的。虽然Odoo主要鼓励使用其ORM&#xff08;对象关系映射&#xff09;来进行数据库操作&#xff0c;因为ORM更安全、易维护且与…

深入解析:数据库连接池的必要性与优化策略

引言 在现代的应用程序架构中&#xff0c;数据库连接池已成为提升性能和资源管理的关键组件。想象一下&#xff0c;如果没有连接池&#xff0c;每次用户请求都需建立新的数据库连接&#xff0c;这将是多么低效且资源浪费的场景。本文将深入探讨数据库连接池的必要性&#xff0…

configs

configs 部分 python import os # 导入os模块&#xff0c;用于系统级操作 emotion ["Valence"] # 定义情绪列表&#xff0c;只包含情绪维度"Valence" # 配置参数字典 config { "extract_class_label": 1, # 是否提取类别标签 &q…

鸿蒙开发:【线程模型】

线程模型 线程类型 Stage模型下的线程主要有如下三类&#xff1a; 主线程 执行UI绘制。管理主线程的ArkTS引擎实例&#xff0c;使多个UIAbility组件能够运行在其之上。管理其他线程的ArkTS引擎实例&#xff0c;例如使用TaskPool&#xff08;任务池&#xff09;创建任务或取消…

数据持久层与 SQL 注入

使用 ORM&#xff08;Object/Relation Mapping&#xff09;框架对 SQL 注入是有积极意义的。我们知道对抗 SQL 注入的最佳方式就是使用“预编译绑定变量”。在实际解决 SQL 注入时&#xff0c;还有一个难点就 是应用复杂后&#xff0c;代码数量庞大&#xff0c;难以把可能存在 …

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

数字化转型对企业有什么价值?

数字化转型对企业有什么价值&#xff1f; 1. 信息共享 很多业务设计和管理规划&#xff0c;通常需要综合多个业务部门和业务专题的数据。 如果企业的数据和信息在位置分布上非常分散&#xff0c;就很难充分利用企业积累的数据资源&#xff0c;并将其用于有效的管理决策和业务…

《java 编程基础》试题

2023-2024 学年第二学期《java 编程基础》试题 系 班 姓名 学号 &#xff08;说明&#xff1a;本试卷共五大题&#xff0c;共 2 页&#xff0c;满分100分&#xff0c;答题时间90分钟。&#xff09; 开卷考试&#xff1a;要求书写答案在纸上。 一、单…

零基础直接上手java跨平台桌面程序,使用javafx(七)用户操作界面探讨,这个系列结束

GUI&#xff0c;我们还是喜欢web。如果javafx有像wpf的WebView2差不多的功能&#xff0c;我们就开心了scene builder中拖出一个webview&#xff0c;然后再回到代码中。发现<?import javafx.scene.web.*?>是红色的&#xff0c;我们缺少配置。于是在pom.xml中添加JavaFX依…

Spring (63)CORS,如何在Spring中配置它

CORS简介 CORS&#xff08;Cross-Origin Resource Sharing&#xff0c;跨源资源共享&#xff09;是一种机制&#xff0c;它使用额外的HTTP头来告诉浏览器让运行在一个origin&#xff08;源&#xff09;上的Web应用被准许访问来自不同源服务器上的指定资源。当一个资源从与该资…

Google ghOSt 调度器分析(2)

调度器分析 *ghOSt* 调度干预过程1. 内核相关介绍2. 干预过程ghOSt 调度干预过程 1. 内核相关介绍 下面先来介绍以下 ghost 调度类相关的内容。 ghost 调度类 ghost 调度器在内核中新建了两个调度类: ghost_agent 调度类 ghost 调度类 ghost 调度类与其他调度类的优先级关系…

Nodejs 第七十七章(MQ高级)

MQ介绍和基本使用在75章介绍过了&#xff0c;不再重复 MQ高级用法-延时消息 什么是延时消息? Producer 将消息发送到 MQ 服务端&#xff0c;但并不期望这条消息立马投递&#xff0c;而是延迟一定时间后才投递到 Consumer 进行消费&#xff0c;该消息即延时消息 插件安装 R…

【康复学习--LeetCode每日一题】521. 最长特殊序列 Ⅰ

题目&#xff1a; 给你两个字符串 a 和 b&#xff0c;请返回 这两个字符串中 最长的特殊序列 的长度。如果不存在&#xff0c;则返回 -1 。 「最长特殊序列」 定义如下&#xff1a;该序列为 某字符串独有的最长 子序列 &#xff08;即不能是其他字符串的子序列&#xff09; 。…

[C++] 从零实现一个ping服务

&#x1f4bb;文章目录 前言ICMP概念报文格式 Ping服务实现系统调用函数具体实现运行测试 总结 前言 ping命令&#xff0c;因为其简单、易用等特点&#xff0c;几乎所有的操作系统都内置了一个ping命令。如果你是一名C初学者&#xff0c;对网络编程、系统编程有所了解&#xff…

徐州BGP服务器租用的好处有哪些?

BGP是一种路径矢量协议&#xff0c;能够维护不同主机、网络和网关的路由器的路径&#xff0c;并且可以根据BGP做出路由决定&#xff0c;将电信和联通等线路通过BGP互连技术&#xff0c;把不同的线路融合在一起。其中BGP服务器则是一种用于不同主机和互联网之间传输数据和信息的…

ijkplayer编译 android版本

ijkplayer源码下载地址如下&#xff1a;https://github.com/bilibili/ijkplayer 下载代码&#xff0c;直接执行如下命令即可&#xff1a; $cd /data/project/ijkplayer/ $git clone https://github.com/bilibili/ijkplayer.git $git checkout -B latest k0.8.8 1 环境安装 …

学会python——读取大文本文件(python实例六)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3、读取大文本文件 3.1 代码构思 3.2 代码示例 3.3 运行结果 4、总结 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强…

了解JS递归

在JavaScript中&#xff0c;递归是一个非常重要的概念&#xff0c;它允许函数在其定义内部调用自身。递归在处理许多类型的问题时非常有用&#xff0c;尤其是那些可以通过分解成更小、更简单的子问题来解决的问题。然而&#xff0c;递归也需要谨慎使用&#xff0c;因为它可能导…

电脑内存怎么看?5个秘诀,轻松查看内存!

“新买了一台电脑&#xff0c;想查看一下我电脑的内存&#xff0c;大家可以分享一下查看方法吗&#xff1f;” 当我们谈论电脑的性能时&#xff0c;内存无疑是一个不容忽视的关键组件。然而&#xff0c;对于许多普通用户来说&#xff0c;如何查看电脑内存的大小、类型以及使用情…

跳舞电动机器人单片机方案

这款机器人形状智能电子玩具是一款集娱乐、教育和互动于一身的高科技产品。它的主要功能包括&#xff1a; 1、智能对话&#xff1a;机器人可以进行简单的对话&#xff0c;回答用户的问题&#xff0c;提供有趣的互动体验。 2、前进、后退、左转、右转、滑行&#xff1a;机器人…