深度学习中激活函数的用途

news2025/2/28 11:17:48

深度学习中激活函数的概念

激活函数,即Activation Function,有时候也称作激励函数。它是为了解决线性不可分的问题引出的。但是也不是说线性可分就不能用激活函数,也是可以的。它的目的是为了使数据更好的展现出我们想要的效果。激活函数是一种非线性的转换,转换的结果会作为下一层神经元的输入。

激活函数决定了某个神经元是否被激活,当这个神经元接受到的信息是有用或者无用的时候,激活函数决定了对这个神经元接收到的信息是留下还是抛弃。

激活函数应该具备的性质

  • 可微性: 这是因为优化方法基于梯度。

  • 单调性: 如果激活函数单调,单层网络能够保证是凸函数。

  • 输出值的范围: 当激活函数输出值范围有限时,基于梯度的优化方法会更加稳定,这是因为特征的表示受有限权值的影响更显著。当激活函数的输出无限时,模型的训练会更加高效,但是此时需要更小的学习率。

为什么要有激活函数

  • 如果不加激活函数,那么神经元就仅仅做线性变换,以AlexNet为例,这个神经网络就会成为一个线性回归模型。而一个线性回归模型对于复杂非线性任务的处理能力是十分有限的。因此,我们需要添加非线性的激活函数,在神经网络的输入输出之间形成非线性映射,让网络能力更为强大。
  • 有时候,我们希望对神经元的输出做一些规约,比如希望它的输出在[-1,1]或者[0,1]之间。
  • 起到类似于组合特征的作用。

激活函数在哪里使用

比如一个神经网络

在这里插入图片描述

为了清晰的表示,我用红色标出。比如像上面的网络z = W*x,这个线性运算就是上面节点白色的部分,另一部分当然就是F(z)了。则第一层隐层(除了输入和输出层,其他都为隐层,因为’看不见’)输出的就是F(z)。但是不是说所有层都要经过激活函数。根据自己的情况而定。

数学推导如下:

  1. 比如有两层隐层网络:z_1 = W_1*x, z_2 = W_2*z_1 (x为输入层,W_1, W_2为两个隐层,z_2为输出层)
  2. z_2 = W_2*z_1 = W_2*W_1*x = W*x
  3. 可以看出,无论经过多少次隐层,跟经过一层的是一样的。简单的应该看出来激活函数的作用了吧。

常用的几种激活函数

sigmoid

sigmoid函数,范围是(0,1)。如果你想要你的数据近可能的处在0或1上,或者你要进行二分类,就用这个函数吧。其他的情况尽量不要用。或者几乎从来不用。因为,下面的这个函数几乎在任何场合都比sigmoid更加优越。

在这里插入图片描述
在这里插入图片描述

tanh

tanh函数,范围是(-1,1)。如果想让数据尽可能在-1和1之间,就考虑这个吧。

在这里插入图片描述
在这里插入图片描述

但是,sogmoid和tanh有个很明显的缺点:在z很大或者很小的时候,导数几乎是零,也就是在梯度下降优化时几乎更新不了。然而在机器学习中最受欢迎的莫过于修正线性单元

reLU(rectified Linear Unit)

reLU = max(0, z) 当z小于零时,导数为0,当z大于0时,导数为1。这个激活函数几乎变成默认的激活函数,如果你不知道用什么激活函数的话,就用reLU函数。

在这里插入图片描述
在这里插入图片描述

虽然遇到向量z(0,0,0,0,0,0,0,0,…,0)的几率贼小,但是为了万无一失,有人就提出了下面的reLU版本:
在这里插入图片描述
leaky reLU = max(0.01z, z) 叫做 带泄漏reLU,0.01这个值是经验值,在z小于0的时候有个特别特别缓的直线。这个比reLU好用,但是实际用的真的不多。

在这里插入图片描述

reLU和leaky reLU的好处在于当z大于0时,导数和0差的很远。所以在实际实践中,用reLU和leaky reLU会使得神经网络学习速率快很多。虽然有z有小于0的可能,但是在实际中,有足够多的隐层单元是的z大于0

Exponential Linear Unit (ELU)

在这里插入图片描述

SELU

在这里插入图片描述

Swish

在这里插入图片描述

Maxout

在这里插入图片描述

softmax

在这里插入图片描述

常用激活函数的求导

sigmoid    F'(z) = 1 - F(z)

tanh          F'(z) = 1 - F^2 (z)

reLU F’(z) =

                                    1        if z >= 0

                                    0        if z < 0

                                    1        if z >= 0

leaky reLU F’(z) =

                                    0.01  if z < 0

如何选择正确的激活函数

  • 分类器的最后一层用sigmoid或者softmax。
  • 隐藏层首先尝试ReLU,在大多数情况下这么做。
  • 如果ReLU效果欠佳,尝试使用PReLU、LeakyReLU、Maxout等变种。
  • sigmoid和tanh会在RNN中有所应用。

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

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

相关文章

SAP UI5 SmartTable 控件本地运行时进行 Excel 导出的单步调试

点击 SmartTable 控件生成的表格控件的 Export to Excel 时&#xff0c;遇到如下错误消息&#xff1a; The following error has occurred during export: Unexpected server response: SmartTable 基于的是 OData V4 的模型了&#xff1a; Excel export 操作&#xff0c;触发的…

接口(上)

&#x1f437;1.接口的概念 &#x1f431;‍&#x1f680;2.接口的语法规则 &#x1f49a;3.接口的使用 &#x1f680;4.接口的特性 &#x1f386;5.实现多个接口 &#x1f436;6.接口间的继承 &#x1f38a;7.接口使用的实例 1.什么是接口呢&#xff1f;&#xff1f;&a…

【https】lighttpd增加https支持及openssl生成CA(Certificate Authority)和使用CA来制作签名证书操作说明

环境说明 ubuntu18.04.1、openssl指令需要支持 openssl生成CA&#xff08;Certificate Authority&#xff09; 生成RSA Private Key openssl genrsa -out ca.key 输出信息 $ openssl genrsa -out ca.key Generating RSA private key, 2048 bit long modulus (2 primes) ...…

Scala008--Scala中的数据结构【集合】

目录 一&#xff0c;概述 二&#xff0c;set的声明 1,不可变set集合 1)向不可变集合中添加元素 【需要新的set集合接收】 2&#xff09;对两个set集合进行合并 【需要新的set集合接收】 2&#xff0c;不可变的HashSet集合 2&#xff0c;可变HashSet集合 1&…

http-only原理与防御XSS实践

目录预备知识XSS攻击实验目的实验环境实验步骤一触发XSS漏洞实验步骤二引入Http-only实验步骤三验证http–only在防御XSS攻击时的作用预备知识 XSS攻击 http-only的设计主要是用来防御XSS攻击&#xff0c;所以学习本实验的读者应首先了解XSS攻击的相关原理内容。 跨站点脚本攻…

Vue 2 如何添加 register-service-worker 以实现缓存请求的目的

Vue 2 如何添加 register-service-worker 以实现缓存请求的目的 一、问题描述 现在 vue 3 的模板中是自带 register-service-worker 的。 用这个的好处是&#xff0c;它会自动将项目中的所有文件请求缓存到 service-worker 中&#xff0c;以实现再次打开网站的时候会非常非常…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园二手物品交易系统051x4

做毕业设计一定要选好题目。毕设想简单&#xff0c;其实很简单。这里给几点建议&#xff1a; 1&#xff1a;首先&#xff0c;学会收集整理&#xff0c;年年专业都一样&#xff0c;岁岁毕业人不同。很多人在做毕业设计的时候&#xff0c;都犯了一个错误&#xff0c;那就是不借鉴…

HTB-Tier1

HTB-Tier1 Appointment Task 1 What does the acronym SQL stand for? ********** ***** *******e Structured Query Language Hide Answer Task 2 What is one of the most common type of SQL vulnerabilities? *** ********n sql injection Hide Answer Task …

汉字风格迁移篇----EasyFont:一个基于风格学习的系统,可以轻松构建大规模手写字体

文章目录abstract1 INTRODUCTION2 RELATED WORK3 METHOD DESCRIPTION3.1 Selecting Input Character Set3.2 Learning Font Skeleton Manifold3.2.1 Character Matching.3.2.2 Training the GP-LVM3.3 Text Segmentation3.4 Stroke Extraction3.5 Overall Style Learning3.5.1 …

UNet - 数据加载 Dataset

目录 1. 介绍 2. 数据处理 dataset 2.1 预处理 2.2 加载数据 2.2.1 初始化 2.2.2 返回数据 2.2.3 样本数量 3. 测试一下 4. 完整代码 1. 介绍 之前介绍完了Unet网络的搭建&#xff0c;接下来说一下要解决的任务。 本章介绍的是&#xff1a;数据的加载处理 下面是整…

hadoop 3.3大数据集群搭建系列1-安装hadoop

文章目录一. 软硬件配置1.1 主机配置及规划1.2 软件配置1.3 安装常用的工具二. 安装前准备2.1 设置主机名2.2 设置hosts2.3 关闭防火墙2.4 ssh免密登陆2.5 ntpdate时间同步三. 安装3.1 安装hadoop3.1.1 下载hadoop并解压3.1.2 配置hadoop_home环境变量3.1.3 编辑etc/hadoop/had…

【毕业设计】图像识别垃圾分类系统 - python 深度学习

文章目录0 前言1 简介2 识别效果3 实现3.1 数据集3.2 实现原理和方法3.3 网络结构4 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c;各个学校对…

信息熵,交叉熵,KL散度,互信息一网打尽

talk 一直以来都是自己有时候 想去搞明白就搜搜博客看&#xff0c;模棱两可&#xff0c;记忆也比较模糊&#xff0c;这次直接较为系统的记录一下&#xff0c;之后忘了也能看看~ 1. 信息熵 这个概念是从信息论出现的&#xff0c;是香农定义的&#xff0c;根据事件发生的概率进…

excel怎么设置密码?加密文件这么做!

我们都知道&#xff0c;很多时候需要我们在电脑上保存很多excel文件。为了避免在工作中出现意外&#xff0c;我们需要在文件中设置一个安全密码。那么&#xff0c;电子表格excel怎么设置密码呢&#xff1f;如果我们设置了密码&#xff0c;想要取消原本的密码或者重新设置一个密…

Windows无法启动这个硬件设备(代码19)怎么办?

在我们使用电脑的过程中&#xff0c;遇到“由于其配置信息(注册表中的)不完整或已损坏&#xff0c;Windows无法启动这个硬件设备&#xff08;代码19&#xff09;”的提示时该如何解决呢&#xff1f; Windows无法启动这个硬件设备&#xff08;代码19&#xff09;&#xff0c;如何…

干货整理| 深度学习入门知识

一、深度学习的定义 深度学习&#xff08;Deep Learning&#xff09;&#xff0c;简称&#xff1a;DL&#xff0c;是一种实现机器学习的技术。 人工智能&#xff08;AI&#xff09;的概念是在1955 年提出的&#xff1b;机器学习&#xff08;ML&#xff09;概念是在1990 年提出…

springboot 整合clickhouse

最近需要做一个项目 需要整合clickhouse 本来有现成的项目&#xff0c;复制一下就好了。但是想自己从头开始一个个文件搭建 但是还是遇到了很多坑&#xff0c; 这就是传说中的约定优于配置吗 1 首先第一步application启动的时候 启动完了&#xff0c;就会退出&#xff0c…

[附源码]计算机毕业设计JAVA房屋租赁管理系统

[附源码]计算机毕业设计JAVA房屋租赁管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

C++QT实现压缩文件、文件夹和解压缩操作

一、前言 QZipWriter是用来压缩文件的类&#xff0c;需要在安装Qt是选择Sources源码安装。否则&#xff0c;无法使用QZipWriter。 1. QZipWriter函数说明 1.1 构造方法&#xff1a; QZipWriter(const QString &fileName, QIODevice::OpenMode mode (QIODevice::WriteOnl…

控制游戏人物移动的细节到底有多少?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 unity实战入门 在游戏中我们在做控制游戏物体移动时会碰到以下常见的几种情况&#xff1a; 文章目录在游戏中…