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

什么是激活函数?

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

它将结果值映射到所需的范围,例如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://www.mzph.cn/web/47030.shtml

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

相关文章

【功能】DOTween动画插件使用

一、下载安装DOTween插件&#xff0c;下载地址&#xff1a;DOTween - Asset Store (unity.com) 使用 Free免费版本即可&#xff0c;导入成功后&#xff0c;Project视图中会出现 DOTween 文件夹 二、使用案例 需求1&#xff1a;控制材质球中的某个属性值&#xff0c;实现美术需…

SQL执行流程、SQL执行计划、SQL优化

select查询语句 select查询语句中join连接是如何工作的&#xff1f; 1、INNER JOIN 返回两个表中的匹配行。 2、LEFT JOIN 返回左表中的所有记录以及右表中的匹配记录。 3、RIGHT JOIN 返回右表中的所有记录以及左表中的匹配记录。 4、FULL OUTER JOIN 返回左侧或右侧表中有匹…

二维码如何用来存储图片?扫码看图有哪些好处

现在通过二维码来分享图片是一种很常见的方法&#xff0c;二维码可以承载大量的图片内容&#xff0c;从而节省对图片空间容量的占用&#xff0c;并且将图片放入二维码中便于分享让图片传递变得更加方便快捷&#xff0c;那么图片生成二维码具体该怎么操作呢&#xff1f;通过下面…

MySQL----初始数据类型

前言 一、tinyint 范围&#xff1a;-128-----127 在MySQL中&#xff0c;整型可以指定是有符号的和无符号的&#xff0c;默认是有符号的。可以通过UNSIGNED来说明某个字段是无符号的。如果我们向mysqlt特定的类型中插入不合法的数据&#xff0c;Mysq一般会直接拦截&#xff0c…

云计算实训06——find、stat、touch、tree、scp、crontab指令相关应用

一、find命令 1.find的作用&#xff1a;对文件进行搜索 2. 基本语法&#xff1a; find [文件路径] [选项 选项的值 ] 3.常见的选项 -name 根据文件的名称搜索文件&#xff0c;支持通配符 * -type f 代表普通文件&#xff0c;-type d 代表目录 4.* 通配符 在 linux 系统…

多多OJ评测系统 前端页面通用布局开发与优化 调整布局

目录 我们重新布局样式 个人习惯写一个最外层的样式 Header Content Footer 布局出来了 加上标签和容器 绑定样式 我们设置一些样式 页面展示效果 我们加入导航栏 搜索组件 我们这边把导航菜单抽象成一个公共的组件 引入好 页面中成功进行了展示 我们可以把这边替…

MySQL添加索引时会锁表吗?

目录 简介Online DDL概念Online DDL用法总结 简介 在MySQL5.5以及之前的版本&#xff0c;通常更改数据表结构操作&#xff08;DDL&#xff09;会阻塞对表数据的增删改操作&#xff08;DML&#xff09;。 MySQL5.6提供Online DDL之后可支持DDL与DML操作同时执行&#xff0c;降低…

【Vue】深入了解 Axios 在 Vue 中的使用:从基本操作到高级用法的全面指南

文章目录 一、Axios 简介与安装1. 什么是 Axios&#xff1f;2. 安装 Axios 二、在 Vue 组件中使用 Axios1. 发送 GET 请求2. 发送 POST 请求 三、Axios 拦截器1. 请求拦截器2. 响应拦截器 四、错误处理五、与 Vuex 结合使用1. 在 Vuex 中定义 actions2. 在组件中调用 Vuex acti…

免费【2024】springboot OA公文发文管理系统

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

js 实现扫雷游戏,源码开放,支持npm引入使用

本人开发的js版本扫雷游戏 体验地址 | Github Minesweeper game Sponsors Install and use npm i minesweeper-gameimport {Map} from minesweeper-game;const map new Map();Reset Map map.reset();TS Statement interface IMapOptions {width?: number; // Map sizeh…

数据实时获取方案之Flink CDC

目录 一、方案描述二、Flink CDC1.1 什么是CDC1.2 什么是Flink CDC1.3 其它CDC1.4 FlinkCDC所支持的数据库情况 二、使用Pipeline连接器实时获取数据2.1 环境介绍2.2 相关版本信息2.3 详细步骤2.3.1 实时获取MySQL数据并发送到Kafka2.3.2 实时获取MySQL数据并同步到Doris数据库…

初识C++|模板初阶

&#x1f36c; mooridy-CSDN博客 &#x1f9c1;C专栏&#xff08;更新中&#xff01;&#xff09; 目录 &#x1f349;1. 泛型编程 &#x1f349;2. 函数模板 &#x1f95d;2.1 函数模板概念 &#x1f95d;2.2 函数模板格式 &#x1f95d;2.3 函数模板的原理 &#x1f95…

万界星空科技QMS系统:全面赋能企业质量管理的创新引擎

万界星空科技质量管理QMS系统&#xff08;Quality Management System&#xff09;是一套全面、高效的质量管理工具&#xff0c;旨在帮助企业提升产品质量、优化生产流程、降低质量成本。该系统集成了多个功能模块&#xff0c;以满足企业在质量管理方面的各种需求。以下是万界星…

【网络安全科普】勒索病毒 防护指南

勒索病毒简介 勒索病毒是一种恶意软件&#xff0c;也称为勒索软件&#xff08;Ransomware&#xff09;&#xff0c;其主要目的是在感染计算机后加密用户文件&#xff0c;并要求用户支付赎金以获取解密密钥。这种类型的恶意软件通常通过电子邮件附件、恶意链接、下载的软件或漏洞…

JavaWeb JavaScript ① JS简介

目录 一、HTML&CSS&JavaScript的作用 二、前后端关联标签——表单标签 1.form标签 2.input标签 3.get/post提交的差异 4.表单项标签 5.布局相关标签 块元素——div 行内元素——span 三、CSS 1.CSS引入方式 方式1 行内式 方式2 内嵌式 方式3 外部样式表 2.CSS选择器 元…

Zabbix监控介绍与部署

目 录 一、zabbix介绍和架构 1.1 zabbix介绍 1.2 为什么需要监控 1.3 需要监控什么 二、zabbix使用场景与系统概述 2.1 zabbix的功能 2.2 zabbix架构 2.3 Zabbix术语 三、编译安装zabbix 3.1 安装依赖环境 3.2 建立管理用户 3.3 准备源码包&#xff0c;解压包 3.…

封装网络请求 鸿蒙APP HarmonyOS ArkTS

一、效果展示 通过在页面直接调用 userLogin(params) 方法&#xff0c;获取登录令牌 二、申请网络权限 访问网络时候首先需要申请网络权限&#xff0c;需要修改 src/main 目录下的 module.json5 文件&#xff0c;加入 requestPermissions 属性&#xff0c;详见官方文档 【声明权…

鸿蒙 next 5.0 版本页面跳转传参 接受参数 ,,接受的时候 要先定义接受参数的类型, 代码可以直接CV使用 [教程]

1, 先看效果 2, 先准备好两个页面 index 页面 传递参数 import router from ohos.routerEntry Component struct Index {Statelist: string[] [星期一, 星期二,星期三, 星期四,星期五]StateactiveIndex: number 0build() {Row() {Column({ space: 10 }) {ForEach(this.list,…

【Git远程操作】向远程仓库推送 | 拉取远程仓库

目录 1.向远程仓库推送 ​1.1本地仓库的配置 1.2remote-gitcode本地仓库 1.3推送至远程仓库 2.拉取远程仓库 现阶段以下操作仅在master主分支上。 1.向远程仓库推送 工作区☞add☞暂存区☞commit☞本地仓库☞推送push☞远程仓库注意&#xff1a;本地仓库的某个分支 ☞推…

《Techporters架构搭建》-Day01 第一个RESTful API接口

微服务架构搭建 搭建微服务架构分析一下项目的build.gradle添加Demo接口 搭建微服务架构 首先搭建系统管理模块&#xff0c;模块结构如下 tps-cloud └── tps-system -- 系统管理模块└── tps-system-api -- 系统管理模块公共api模块└── tps-system-biz -- 系统管理模…