机器学习 | 深入理解激活函数

什么是激活函数?

在人工神经网络中,节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后,将此输出用作下一个节点的输入,依此类推,直到找到原始问题的所需解决方案。

它将结果值映射到所需的范围,例如0到1或-1到1等。这取决于激活函数的选择。例如,使用逻辑激活函数将把真实的数域中的所有输入映射到0到1的范围内。

二分类问题的例子

在二分类问题中,我们有一个输入x,比如一张图像,我们必须将其分类为是否正确的对象。如果它是一个正确的对象,我们将给它赋值1,否则赋值0。因此,在这里,我们只有两个输出-图像包含有效对象或不包含。这是一个二分类问题的例子。

在这里插入图片描述

当我们将每个特征乘以权重(w1,w2,…,wm)并将它们全部相加时,
节点的输出=激活(输入的加权和)。

在这里插入图片描述

一些重要的术语和数学概念

  • 传播是一个过程,反复调整权重,以最大限度地减少实际输出和期望输出之间的差异。

  • 隐藏层是堆叠在输入和输出之间的神经元节点,允许神经网络学习更复杂的特征(如XOR逻辑)。

  • 反向传播是一个过程,反复调整权重,以最大限度地减少实际输出和期望输出之间的差异。
    它允许信息通过网络从成本向后返回,以计算梯度。因此,从最后一个节点开始按反向拓扑顺序循环节点,以计算最终节点输出的导数。这样做将帮助我们知道谁对最大的错误负责,并在该方向上适当地改变参数。

  • 梯度下降在训练机器学习模型时使用。它是一种基于凸函数的优化算法,可以迭代地调整其参数,以最小化给定函数的局部最小值。梯度测量了如果你稍微改变输入,函数的输出会改变多少。
    注意:如果梯度下降正常工作,则成本函数在每次迭代后都应该减少。

激活函数的类型

激活函数基本上有两种类型:

1.线性激活函数

Equation : f(x) = x

Range : (-infinity to infinity)

在这里插入图片描述

2.非线性激活函数
这使得模型很容易对各种数据进行泛化,并区分输出。通过仿真,发现对于较大的网络,ReLU要快得多。事实证明,ReLU可以更快地训练大型网络。非线性意味着输出不能从输入的线性组合中再现。
需要理解的非线性函数的主要术语是:
1.导数:y轴相对于x轴的变化(t时间内)。它也被称为斜坡。
2.单调函数:一个完全递增或递减的函数。

在这里插入图片描述
非线性激活函数主要根据其范围或曲线划分如下:

在这里插入图片描述
让我们更深入地了解每个激活函数

1. Sigmoid:

它也被称为二分类器或Logistic激活函数,因为函数总是选择值0(假)或1(真)。
sigmoid函数产生与step函数类似的结果,输出在0和1之间。曲线在z=0处穿过0.5,我们可以为激活函数设置规则,例如:如果sigmoid神经元的输出大于或等于0.5,则输出1; 如果输出小于0.5,则输出0。
sigmoid函数在其曲线上没有加加速度。它是光滑的,它有一个非常好的和简单的导数,它在曲线上的任何地方都是可微的。

Sigmoid的推导:

在这里插入图片描述
sigmoid的一个非常常见的性质是,当神经元的激活在0或1处饱和时,这些区域的梯度几乎为零。回想一下,在反向传播过程中,这个局部梯度将乘以整个目标的这个门的输出梯度。因此,如果局部梯度非常小,它将有效地“杀死”梯度,几乎没有信号将通过神经元流向其权重并递归地流向其数据。此外,额外的惩罚将被添加到初始化S形神经元的权重以防止饱和。例如,如果初始权重太大,那么大多数神经元将变得饱和,网络将几乎无法学习。

2. ReLU(Rectified Linear Unit):

它是使用最广泛的激活函数。因为它被用于几乎所有的卷积神经网络。函数及其导数都是单调的。

f(x) = max(0, x)

接近线性的模型易于优化。由于ReLU共享了线性函数的许多属性,因此它在大多数问题上都能很好地工作。唯一的问题是导数在z = 0时没有定义,我们可以通过在z = 0时将导数赋值为0来克服这个问题。然而,这意味着对于z <= 0,梯度为零,并且再次无法学习。

3. Leaky ReLU:

Leaky ReLU是ReLU函数的改进版本。ReLU函数,对于x<0,梯度为0,这使得该区域的神经元因激活而死亡。Leaky ReLU的定义就是为了解决这个问题。我们将Relu函数定义为x的一个小的线性分量,而不是将x小于0的Relu函数定义为0。
Leaky ReLU是解决垂死ReLU问题的一种尝试。当x < 0时,函数不是零,而是一个泄漏的ReLU将具有一个小的负斜率(0.01左右)。也就是说,该函数计算:

在这里插入图片描述

4. Tanh或双曲正切:

它将一个实数压缩到范围[-1,1]与Sigmoid一样,它的激活饱和,但与Sigmoid神经元不同,它的输出是以零为中心的。因此,双曲正切非线性总是优于S形非线性。tanh神经元只是一个缩放的sigmoid神经元。
Tanh也像logistic sigmoid,但更好。其优点是负输入将被映射到强负,零输入将被映射到双曲正切图中的近零。
函数是单调可微的,但它的导数不是单调的。tanh和logistic Sigmoid激活函数都用于前馈网络。
它实际上只是sigmoid函数的缩放版本。

 tanh(x)=2 sigmoid(2x)-1 

在这里插入图片描述

5. SoftMax:

sigmoid函数可以很容易地应用,并且ReLU不会在训练过程中消除效果。但是,当你想处理分类问题时,它们就帮不上什么忙了。sigmoid函数只能处理两个类,这不是我们所期望的,但我们想要更多。softmax函数将每个单元的输出压缩到0和1之间,就像sigmoid函数一样。并且它还划分每个输出,使得输出的总和等于1。
softmax函数的输出相当于一个分类概率分布,它告诉你任何类为真的概率。

在这里插入图片描述

其中0是输出层的输入向量(如果你有10个输出单元,那么z中有10个元素)。同样,j索引输出单元,所以j = 1,2,…,K。

Softmax函数的性质

1.计算的概率将在0到1的范围内。
2.所有概率之和等于1。

Softmax函数用法
1.用于多分类logistic回归模型。
2.在构建神经网络时,softmax函数用于不同层次和多层感知器。

例如:
在这里插入图片描述

Softmax函数将logits [1.2,0.9,0.4]转换为概率[0.46,0.34,0.20],概率之和为1。

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

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

相关文章

【后端开发实习】用MongoDB和Redis实现消息队列搭建分布式邮件消息系统

用Redis实现消息队列并搭建分布式邮件消息系统 系统介绍Redis实现消息队列思路分析代码实现 MongoDB监听数据变化思路分析代码实现Mongoose测试连接监听mongodb数据变化 注意点 系统介绍 本次要实现的是一个能够实现实时监控Mongodb中数据变化的系统&#xff0c;要能够在数据发…

VGMShield:揭秘视频生成模型滥用的检测与追踪技术

人工智能咨询培训老师叶梓 转载标明出处 视频生成模型&#xff0c;如 Stable Video Diffusion 和 Videocrafter&#xff0c;已经能够生成合理且高分辨率的视频。但这些技术进步也带来了被恶意利用的风险&#xff0c;比如用于制造假新闻或进行政治宣传。因此&#xff0c;来自弗…

彩电上自带的推箱子游戏是什么编程语言开发的?

2000年左右的厦新彩电上&#xff0c;自带了推箱子、华容道游戏。界面如下&#xff1a; 在线版推箱子游戏&#xff0c;网址&#xff1a;https://www.tuixiangzi.cn/ BASIC&#xff0c;全称是Beginners All-purpose Symbolic Instruction Code&#xff0c;含义是初学者通用符号…

【杰理蓝牙开发】AC695x 按键扫描接口分析

【杰理蓝牙开发】AC695x 按键ADC接口分析 0. 个人简介 && 授权须知1. 按键扫描配置和按键消息处理1.1 参数说明1.2 按键事件说明2. 应用层处理3. 特殊按键需求3.1 特殊需求 1:组合键3.2 特殊需求 2:按键多击事件3.3 特殊需求 3:某些按键只响应单击事件0. 个人简介 &…

AI算法20-分位数回归算法Quantile Regression | QR

分位数回归算法的概念 分位数回归算法简介 分位数回归&#xff08;Quantile Regression&#xff09;是一种统计方法&#xff0c;最早由Roger Koenker和Gilbert Bassett于1978年提出。它通过估计条件分位数函数来分析自变量与因变量之间的关系&#xff0c;与传统的最小二乘回归…

怎么压缩视频文件?简单的压缩视频方法分享

视频已成为我们日常生活中不可或缺的一部分。但随着视频质量的提高&#xff0c;文件大小也逐渐成为我们分享的阻碍。如何有效压缩视频文件&#xff0c;使其既能保持清晰&#xff0c;又能轻松分享&#xff1f;今天&#xff0c;给大家分享五种实用的视频压缩方法&#xff0c;快来…

昇思25天学习打卡营第02天|张量 Tensor

一、什么是张量 Tensor 张量是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似。张量&#xff08;Tensor&#xff09;是MindSpore网络运算中的基本数据结构。 张量可以被看作是一个多维数组&#xff0c;但它比普通的数组更加灵活和强大&#xff0c;因为它支持在GPU等加速…

项目JetCache的常见配置与使用

Hello, 大家好&#xff0c;今天本汪给大家带来的是JetCache在项目中的常见配置与用法讲解&#xff0c;接下来&#xff0c;随本汪一起来看看吧 一、介绍 官网地址&#xff1a;https://github.com/alibaba/jetcache JetCache 是一种 Java 缓存抽象&#xff0c;它为不同的缓存…

腾讯PAG动效工具解析

什么是PAG&#xff1f; 1、背景 在终端 APP 中&#xff0c;动画非常常见&#xff0c;它可以辅助视觉制造焦点&#xff0c;同时也可以让用户交互更加顺滑&#xff0c;但动画的实现却是设计师和研发群体的一个痛点。如何辅助设计师设计高性能炫酷的动画、如何将设计师设计的动画…

自托管端口管理系统Portall

老苏一直在折腾各种开源软件&#xff0c;但总是记不清哪些应用占用了哪些端口&#xff0c;每次都是先随机想一个端口&#xff0c;然后在笔记中搜索&#xff0c;看有没有被占用过。Portall 就是用来解决老苏遇到的这种情况的&#xff0c;当然&#xff0c;excel 也是可以的 &…

十分钟“手撕”七大排序

前言&#xff1a;可以通过目录来找你需要的排序的源代码。先是解释底层原理&#xff0c;后附带代码。 目录 稳定的概念 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、排序总结 额外&#xff1a;计数排序 稳定的…

Qt MV架构-委托类

一、基本概念 与MVC模式不同&#xff0c;MV视图架构中没有包含一个完全分离的组件来处理与用户的交互。 一般地&#xff0c;视图用来将模型中的数据显示给用户&#xff0c;也用来处理用户的输入。为了获得更高的灵活性&#xff0c;交互可以由委托来执行。 这些组件提供了输入…

gradle学习及问题

一、下载安装 参考&#xff1a;https://blog.csdn.net/chentian114/article/details/123344839 1、下载Gradle并解压 安装包&#xff1a;gradle-6.7-bin.zip 可以在idea的安装目录查看自己适配的版本 路径&#xff1a;D:\IDEA2021.3\plugins\gradle\lib 下载地址&#xff1a…

16_网络IPC2-寻址

进程标识 字节序 采用大小模式对数据进行存放的主要区别在于在存放的字节顺序&#xff0c;大端方式将高位存放在低地址&#xff0c;小端方式将高位存放在高地址。 采用大端方式进行数据存放符合人类的正常思维&#xff0c;而采用小端方式进行数据存放利于计算机处理。到目前…

python用selenium网页模拟时xpath无法定位元素解决方法2

有时我们在使用python selenium xpath时&#xff0c;无法定位元素&#xff0c;红字显示no such element。上一篇文章写了1种情况&#xff0c;是包含iframe的&#xff0c;详见https://blog.csdn.net/Sixth5/article/details/140342929。 本篇写第2种情况&#xff0c;就是xpath定…

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列。在linux中&#xff0c;由于线程和进程都具有id,都需要调度等等相似性&#xff0c;因此都可以用PCB来描述和控制,线程含有PCB&am…

人类或是低等生物?

自工业革命以来&#xff0c;人类对自然资源的消耗日益加剧&#xff0c;引发了对未来可持续性的深刻担忧。然而&#xff0c;一项振奋人心的发现为人类提供了新的希望——一颗名为LHS 1140 b的超级地球&#xff0c;它位于距离地球约48光年的鲸鱼座&#xff0c;由詹姆斯韦布空间望…

uniapp字符串转base64,无需导入依赖(多端支持)

使用示例 import { Base64Encode, Base64Decode } from "@/utils/base64.js" base64.js const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";export const Base64Encode = (text)

Qt Creator的好用的功能

&#xff08;1&#xff09;ctrlf&#xff1a; 在当前文档进行查询操作 &#xff08;2&#xff09;f3: 找到后&#xff0c;按f3&#xff0c;查找下一个 &#xff08;3&#xff09;shiftf3: 查找上一个 右键菜单&#xff1a; (4)f4&#xff1a;在…

使用vcXsrv可视化pcl文件

1、下载vcXsrc程序 2、按下面步骤配置 3、按上面操作后&#xff0c;在运行菜单就能看到它在运行了 4、去wsl中配置&#xff0c;即设置环境变量 vim ~/.bashrc # 设置连接windows的VcXsrv export DISPLAY192.168.1.100:0.0 #&#xff08;192.168.1.100是我windows的ip&#x…