激活函数的本质

激活函数(Activation Function)

是神经网络中的一种函数,它接受一个输入(通常是神经元的加权和)并产生一个输出作为神经元的最终输出。激活函数的作用是引入非线性性,使神经网络能够学习复杂的模式和关系。

在神经网络中,激活函数通常被用于每个神经元的输出,以便引入非线性变换。如果没有激活函数,整个神经网络将由线性变换组成,多个线性变换的组合仍然是线性的。通过引入非线性激活函数,神经网络可以学习和表示更复杂的函数关系,使其能够适应更广泛的问题。

常见的激活函数包括:

  1. Sigmoid 函数(Logistic 函数): 将输入映射到范围 (0, 1) 之间,常用于输出层的二分类问题。

    [ \text{sigmoid}(x) = \frac{1}{1 + e^{-x}} ]

  2. Tanh 函数: 类似于 Sigmoid 函数,但将输入映射到范围 (-1, 1) 之间,有时在隐藏层中使用。

    [ \text{tanh}(x) = \frac{e^{x} - e{-x}}{e{x} + e^{-x}} ]

  3. ReLU 函数(Rectified Linear Unit): 将负数映射为零,对正数保持不变。是目前最常用的激活函数之一。

    [ \text{ReLU}(x) = \max(0, x) ]

  4. Leaky ReLU 函数: 与 ReLU 类似,但对负数的输出有一个小的斜率,避免了 ReLU 的一些问题。

    [ \text{Leaky ReLU}(x) = \max(\alpha x, x) ],其中 (\alpha) 是一个小的正数。

  5. Softmax 函数: 用于多分类问题的输出层,将输入转化为概率分布。

    [ \text{Softmax}(x_i) = \frac{e{x_i}}{\sum_{j=1}{K}e^{x_j}} ],其中 (K) 是类别的数量。

不同的激活函数适用于不同类型的问题和网络结构,选择合适的激活函数对神经网络的性能和训练过程都有影响。

非线性变换

非线性变换是指输入与输出之间的关系不是线性的。在数学上,如果一个变换是线性的,它应该满足两个性质:可加性和齐次性。可加性意味着变换对两个输入的和等于两个输入分别经过变换后的和,而齐次性意味着变换对输入的缩放等于输入经过变换后的缩放。如果一个变换不满足这两个性质,那么它就是非线性的。

在神经网络中,非线性变换是通过激活函数引入的。神经元的输出经过激活函数后才成为网络的最终输出。如果没有激活函数,多层神经网络的组合将简化为单一的线性变换,因为线性函数的组合仍然是线性的。引入非线性激活函数后,神经网络能够学习和表示更加复杂的关系和模式,因为非线性函数能够捕捉数据中的非线性结构。

举例来说,假设有一个简单的神经网络层,每个神经元的输出 (y) 是输入 (x) 的线性组合和激活函数 (f) 的结果:

[ y = f(Wx + b) ]

其中,(W) 是权重矩阵,(b) 是偏置,(f) 是激活函数。如果 (f) 是一个线性函数,那么整个变换仍然是线性的。但如果 (f) 是一个非线性函数,比如 ReLU,tanh 或 sigmoid,那么整个变换就是非线性的。

引入非线性变换是为了增强神经网络的表达能力,使其能够学习和适应更为复杂的模式和关系,从而提高网络在处理各种任务上的性能。

让我们通过简单的例子来说明线性和非线性的概念。

  1. 线性关系:

    假设有一个简单的线性关系,例如 (y = 2x + 3)。这是一个线性函数,因为 (y) 和 (x) 之间的关系是直线,且满足线性方程。

(x)(y)
15
27
39

在这个例子中,当 (x) 增加1时,(y) 增加2,符合线性关系。

  1. 非线性关系:

    现在考虑一个非线性关系,例如 (y = x^2)。这是一个非线性函数,因为 (y) 和 (x) 之间的关系是二次曲线,不满足线性方程
    | (x) | (y) |
    | ----- | ----- |
    | 1 | 1 |
    | 2 | 4 |
    | 3 | 9 |

    在这个例子中,当 (x) 增加1时,(y) 不仅增加1,而是增加了原来的 (x) 的平方。

总的来说,线性关系是指两个变量之间的关系是一条直线,而非线性关系则是指关系不是直线的。在神经网络中,引入非线性变换是为了使网络能够学习和表示更为复杂的模式和关系,因为许多现实世界的问题和数据都包含非线性结构。希望这个例子能帮助你更好地理解线性和非线性的概念。

非线性的好处

就是让线/面更容易拟合点

引入非线性变换的好处在于增强神经网络的表达能力,使其能够学习和适应更为复杂的模式和关系。以下是一些非线性变换的好处:

  1. 学习非线性关系: 现实世界中的许多问题和数据包含复杂的非线性结构。通过使用非线性激活函数,神经网络能够更灵活地拟合和学习这些非线性关系,从而提高模型的性能。

  2. 表示层次特征: 非线性激活函数允许神经网络在不同层次上学习抽象和高级的特征。多层非线性变换可以逐渐构建复杂的特征表示,从而更好地捕捉数据的结构和模式。

  3. 解决分类问题: 对于分类问题,非线性变换可以使神经网络学习非线性决策边界,从而更好地区分不同类别。这对于处理复杂的分类任务非常重要。

  4. 防止信息损失: 在深度神经网络中,经过多次线性变换后,输出仍然是输入的线性组合。这样可能导致信息的丢失,因为多次线性变换等效于一次线性变换。通过引入非线性激活函数,可以防止信息在网络中的线性传递,从而保留更多的信息。

  5. 梯度下降的非线性优化: 非线性激活函数引入了非线性性质,这对优化算法(如梯度下降)的收敛至关重要。线性函数的组合仍然是线性的,容易导致梯度消失或爆炸的问题,而非线性激活函数有助于缓解这些问题。

总的来说,非线性变换使神经网络更具灵活性,能够处理更为复杂的任务和数据。这是深度学习成功的一个关键因素,因为它使神经网络能够适应各种不同的模式和结构,提高了模型的泛化能力。

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

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

相关文章

Actipro Software WPF Controls 23.1.3

Actipro Software WPF Controls v23.1.3 Actipro Software 为 Microsoft 提供软件组件和 .NET 平台。它位于克利夫兰,重点主要是提供高质量的用户界面软件组件以及客户的过程,以便他们有能力信任,以便为用户应用程序添加强大的功能。自 .NET…

EasyHttp 更新功能 form类型post + 限制次数

场景 easyHttp gitte 很高兴帮到您 点一个star 支持一下作者吧 之前的easyHttp只支持json类型post请求,而且有些接口有限制次数的,在循环调用过程中,容易出现突破限制的情况,现在我们引入了限制次数,例如一分钟6次&…

RT1170的ITM SWO配置,实现printf输出及PC指针的采样分析

最近公司准备启动一个新的项目,使用NXP的MIMXRT1170芯片作为主控,在熟悉芯片的过程中发现RT1176具备ITM和SWO功能模块,于是针对之前项目中因工程庞大导致调试困难的问题,决定使用SWO输出调试信息,这样既可以节省硬件的…

04 jenkins中使用各种变量(Powershell、cmd)

批处理中使用jenkins内部和变量插件定义的环境变量:%WORKSPACE%Powershell插件中使用jenkins内部环境变量:${ENV:WORKSPRACE}Powershell函数内部使用函数入参:$($dllname)Powershell中定义变量:$DllNamePowershell中使用powershel…

掌握这11点外贸知识,能够给你外贸工作带来很大提升!

01.产品展示 关于产品展示,非常重要也一再提及,一个好的产品必须包括以下几部分: ● 产品标题准确概括产品; ● 产品图片清晰且包括细节图; ● 提供详尽的产品描述,比如型号、尺寸、材质、配件等等。最好…

Collectors.groupingBy方法的使用

Collectors.groupingBy方法的使用 简单使用 业务场景:现在有5个人,这些人都年龄分部在18-30岁之间。现要求把他们按照年龄进行分组 key:年龄 value:数据列表 package com.liudashuai;import java.util.Arrays; import java.uti…

Linux上C++通过LDAP协议使用kerberos认证AES加密连接到AD服务器

一.前言 记录自己在实现这个流程遇到的各种问题,因为我也是看了许多优质的文章以及组内大佬的帮助下才弄成的,这里推荐一个大佬的文章,写的非常优秀,比我这篇文章写得好得很多,最后我也是看这个大佬的代码最终才实现的…

经典文献阅读之--Fast and Robust Ground Surface Estimation...(均匀B样条采样快速估计地平面)

0. 简介 对于激光雷达的地面估计分割,目前其实有很多方法做了快速并鲁棒的分割,比如说我们之前写的一篇《经典文献阅读之–FEC》一文中就给出了快速分割的方案,当中第一步就是需要对地面进行分割。而我们这次看的是一篇使用均匀B样条的方法来…

H5三网魔幻手游【众神传奇】win服务端+GM授权后台+架设教程

搭建资源下载地址:H5三网魔幻手游【众神传奇】win服务端GM授权后台架设教程-海盗空间

C++ 类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast用法以及区别

在C++中,有四种主要的类型转换操作符:static_cast、dynamic_cast、const_cast、reinterpret_cast。它们各自用于不同的转换场景,并有不同的行为和限制。 static_cast: 用于进行静态类型转换,主要用于相关类型之间的转换,例如数值类型之间的转换、基类到派生类的转换(在安…

(八)Spring源码解析:Spring MVC

一、Servlet及上下文的初始化 1.1> DispatcherServlet的初始化 对于Spring MVC来说,最核心的一个类就是DispatcherServlet,它负责请求的行为流转。那么在Servlet的初始化阶段,会调用init()方法进行初始化操作,在DispatcherSe…

【Python3】【力扣题】268. 丢失的数字

【力扣题】题目描述: 【Python3】代码: 1、解题思路:哈希。元素去重,依次判断是否在0-n内,没有则返回。 知识点:set(...):转为集合,集合中的元素不重复。 class Solution:def mis…

Angular 使用教程——基本语法和双向数据绑定

Angular 是一个应用设计框架与开发平台,旨在创建高效而精致的单页面应用 Angular 是一个基于 TypeScript 构建的开发平台。它包括:一个基于组件的框架,用于构建可伸缩的 Web 应用,一组完美集成的库,涵盖各种功能&…

OpenCV图像坐标系

绘制代码: X轴 # 选取两个点 point1 = (20, 0) point2 = (200, 0)# 在图像上绘制连接线 cv2.line(img, point1, point2, (

2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)

2023.11.12使用flask对图片进行黑白处理(base64编码方式传输) 由前端输入图片并预览,在后端处理图片后返回前端显示,可以作为图片处理的模板。 关键点在于对图片进行base64编码的转化。 使用Base64编码可以更方便地将图片数据嵌入…

java8 : Collectors.groupingBy(分组)

Collectors.groupingBy配合Stream流使用,可以对集合中一个或多个属性进行分组,分组后还可以做聚合运算。 首先把数据放入集合: Product prod1 new Product(1L, 1, new BigDecimal("15.5"), "面包", "零食");…

低代码与传统开发:综合比较

近年来,低代码开发作为软件开发的趋势获得了显着的发展势头。根据 MarketsandMarkets 的数据,低代码开发市场预计将实现 28.1% 的大幅增长率,到 2025 年价值将达到 455 亿美元。这一显着增长表明了各行业和企业对低代码平台的需求和采用不断增…

2023前端流行的新技术

作为2023年之前的技术水平有限,以下是一些目前为止较为热门的前端开发技术和趋势,这些技术可能在2023年之前进一步发展和普及。 前端程序员可以考虑学习和掌握以下技术: 1.Vue 3和React Hooks:Vue.js和React是目前最受欢迎的JavaS…

人工智能基础_机器学习027_L2正则化_岭回归_非稀疏性_原理解读_公式推导---人工智能工作笔记0067

然后我们再来看一下岭回归,也就是第二范数对吧, 他的公式,平方以后,加和然后开平方.L2的公式是 可以看到L2公式,也是有个阿尔法,惩罚项对吧. 可以看到因为L2带有平方,所以他的图形是个圆形 我们可以把L2范数,进行画出来看看 这里我们先看L2的公式,这里我们让 这个公式写成1 …

2023-11-14 mysql-主从复制-重置主从连接-记录

摘要: mysql的主从复制, 当从库执行binlog出错后, 会中止主从复制. 此时需要重置主从连接, 以重建主从关系. 主库操作: 一. 清理同步的数据库 drop database test;二. 重置主库状态 reset master;reset slave all;三. 检测主库状态 show master status;mysql> show master…