深度学习03-神经网络02-激活函数

可以使用这个进行跳转链接​​​​​​​icon-default.png?t=O83Ahttp://playground.tensorflow.org/#activation=relu&batchSize=11&dataset=spiral®Dataset=reg-gauss&learningRate=0.01®ularizationRate=0.1&noise=0&networkShape=7,5,4,3,2&seed=0.54477&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false到谷歌的神经网络可视化网站

A Neural Network Playground

激活函数的选择方法

对于隐藏层:

  1. 1.不管几层都是使用一个激活函数,一般优先选择ReLU激活函数

  2. 2.如果ReLu效果不好,那么尝试其他激活,如Leaky ReLu等。

  3. 3.如果你使用了ReLU, 需要注意一下Dead ReLU问题, 避免出现大的梯度从而导致过多的神经元死亡。

  4. 4. 少用使用sigmoid激活函数,可以尝试使用tanh激活函数

对于输出层:


1. 二分类问题选择sigmoid激活函数 ,输出层:一个神经元节点

2. 多分类问题选择softmax激活函数 ,输出层:有多少分类,就用多少神经元节点

3. 回归问题选择identity激活函数,输出层:一个神经元节点

从一个神经网络看,这里就是两部分是我们人关注的,第一部分是我们如何进行权重参数的初始化, 第二部分我们怎么选择激活函数。

架构决定了,同一层一般是使用同一个非线性激活函数

因为生活中很少有真实的线性关系,基本都是非线性关系。

目前大部分的使用这个relu 效果都还不错。负半轴为0可能会发生神经元死亡的问题,但是这样减少了网络的稀疏。缓解了过拟合。

​​​​​​​

回归的时候不加激活函数, identity (恒等激活 即 y = x  )  

激活函数是神经网络中的关键组成部分,其作用是引入非线性,使神经网络能够学习复杂的模式和解决非线性问题。在没有激活函数的情况下,神经网络的每一层都是线性组合,最终整个网络将会退化为一个简单的线性模型,失去解决复杂问题的能力。因此,激活函数是深度学习模型成功的关键。

激活函数的主要作用

  1. 引入非线性:如果神经网络仅仅是线性变换的堆叠,不管层数多少,最终的网络仍然是一个线性函数。激活函数提供了非线性,使得神经网络可以逼近任意复杂的函数。

  2. 控制神经元的输出范围:通过将输出值限定在某个范围内,激活函数可以稳定神经网络的训练过程,减少数值不稳定问题。

常见的激活函数及其详细分析

1. Sigmoid 函数

公式\sigma(x) = \frac{1}{1 + e^{-x}}   输出范围(0, 1)​​​​​​​  特点

  • 将输入压缩到 (0, 1)​​​​​​​ 的范围。

  • 适合输出为概率值的任务,例如二分类问题。

  • 缺点:容易出现梯度消失问题,尤其是在深层网络中。输入的绝对值较大时,Sigmoid 函数的导数接近 0,导致反向传播时梯度更新非常缓慢,训练效率低。

优点

  • 它能够使输出值保持在有限范围内,便于理解输出。

应用场景:二分类问题的输出层。

2. Tanh 函数

公式\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}   输出范围(-1, 1)​​​​​​​ 特点

  • 类似于 Sigmoid,但输出范围为 (-1, 1) 。

  • 相较于 Sigmoid,Tanh 的输出更居中,值域更广,梯度消失的问题较弱。

  • 在输入接近 0 时,Tanh 函数的导数最大,网络的梯度流动效果更好。

优点

  • 输出的零中心特性(输出在 (-1) 到 (1) 之间)使得训练过程更加平稳,避免了 Sigmoid 函数的非零均值问题。

应用场景:适用于需要平滑输出值的任务。

3. ReLU (Rectified Linear Unit)

公式f(x) = \max(0, x) 输出范围[0, \infty)  特点

  • 如果输入为负,则输出为 0;如果输入为正,则输出为输入本身。

  • ReLU 是目前最常用的激活函数之一,尤其适合深度神经网络,因为它计算简单且有效。

  • 优势:避免了 Sigmoid 和 Tanh 的梯度消失问题,并且计算速度快。

  • 缺点:会出现“死亡 ReLU”现象,即一旦某个神经元在反向传播中输出 0,那么该神经元在随后的训练中将永远不会激活,因为它的梯度为 0。

应用场景:适用于大部分隐藏层,尤其是卷积神经网络。

4. Leaky ReLU

公式f(x) = \max(\alpha x, x)  输出范围(-\infty, \infty)特点

  • 与 ReLU 类似,但允许负数通过一个较小的斜率 \alpha(通常 \alpha = 0.01)。

  • 优势:减少了 ReLU 的死亡现象,增加了对负值的敏感性。

应用场景:适用于避免死亡 ReLU 的场景,通常在深度网络中比 ReLU 更稳定。

5. Softmax 函数

公式: \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}}  输出范围(0, 1) ,且所有输出的总和为 1 特点

  • Softmax 将输出值转换为概率分布,所有输出值加起来为 1。

  • 常用于多分类问题的输出层,因为它提供了一种将神经网络输出解释为概率的方式。

应用场景:多分类问题的输出层,例如图像分类。

激活函数的比较与选择

  • Sigmoid 和 Tanh 常用于较浅的网络或输出层,但由于梯度消失问题,逐渐被 ReLU 和其变种取代。

  • ReLU 和 Leaky ReLU 在深度网络中表现更好,因为它们能够有效避免梯度消失问题,并且计算更简单。

  • Softmax 通常用于多分类问题的输出层,用于将输出转化为概率分布。

如何选择激活函数

  1. ReLU 及其变种(如 Leaky ReLU):大多数情况下,推荐在隐藏层使用 ReLU 或其改进版本。它计算简单且有效,尤其在深度神经网络中表现优异。

  2. Sigmoid 或 Tanh:适用于较浅的网络或用于输出层,尤其是需要输出概率的二分类任务中。

  3. Softmax:用于多分类任务的输出层。

梯度消失与梯度爆炸

梯度消失是指在反向传播中,随着网络层数的增加,梯度逐渐减小,最后趋于 0,导致权重无法更新。Sigmoid 和 Tanh 函数容易出现这种问题。而 ReLU 及其变种通过保持正梯度来缓解梯度消失问题。梯度爆炸则是当梯度在反向传播过程中变得过大,导致参数更新过快,使得模型无法收敛。

总结

激活函数是深度学习网络中的核心组件,负责将线性变换引入非线性,进而增强神经网络的学习能力。不同激活函数各有优缺点,选择合适的激活函数对于神经网络的训练效果至关重要。

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

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

相关文章

【Unity设计模式】Unity MVC/MVP架构介绍,及MVC/MVP框架的简单应用

文章目录 什么是MVC?MVC眼花缭乱设计图MVP和MVC最经典的MVC的业务流程Unity MVC 框架示例1. 创建项目结构2. 实现模型3. 实现视图4. 实现控制器5. 使用示例 总结参考完结 什么是MVC? MVC自1982年被设计出来,至今都有着很大比重的使用率&…

HCIA--实验十八:配置全局DCHP

一、实验内容 1.需求/要求: 使用一台5700交换机和一台PC,实现全局DHCP的配置,并且自定义配置网关,配置DNS。 二、实验过程 1.拓扑图: 2.步骤: 1.SW1激活DHCP服务,创建vlan10 2.SW1给vlan10添加ip地址 …

Transformer模型-7- Decoder

概述 Decoder也是N6层堆叠的结构,每层被分3层: 两个注意力层和前馈网络层,同Encoder一样在主层后都加有Add&Norm,负责残差连接和归一化操作。 Encoder与Decoder有三大主要的不同: 第一层 Masked Multi-Head Attention: 采用…

Linux 动静态库

目录 一.静态库 1.理解静态库 a.什么是静态库? b.创建静态库的理论? 2.打包静态库 3.静态库的使用方法 a.头文件找不着 b.链接报错——库函数文件找不着 4.将静态库文件写到系统目录下 a.直接拷贝 b.建立软链接 二.动态库 1.什么是动态库&am…

通过标签实现有序:优化你的 FastAPI 生成的 TypeScript 客户端

在软件开发的世界里,API 客户端代码的质量直接影响着应用程序的性能和可维护性。随着项目规模的扩大,自动化生成的代码往往变得臃肿且难以管理。但幸运的是,通过一系列的优化策略,我们可以显著提升这些代码的优雅与效能。在本文中…

C#如何把写好的类编译成dll文件

1 新建一个类库项目 2 直接改写这个Class1.cs文件 3 记得要添加Windows.Forms引用 4 我直接把在别的项目中做好的cs文件搞到这里来,连文件名也改了(FilesDirectory.cs),这里using System.Windows.Forms不会报错,因为前…

用Qt 对接‌百度AI平台

很多同学想利用几大模型AI弄点东西,但又不知道如何去介入??最近帮同学弄点东西,刚好要接入到AI平台,就顺便研究了一下,并记录下来。 首先我们选择的 AI模型是百度的,然后注册,申请密…

8. 尝试微调LLM大型语言模型,让它会写唐诗

这篇文章与03. 进阶指南:自定义 Prompt 提升大模型解题能力一样,本质上是专注于“用”而非“写”,你可以像之前一样,对整体的流程有了一个了解,尝试调整超参数部分来查看对微调的影响。 这里同样是生成式人工智能导论&…

13年计算机考研408-数据结构

解析: 这个降序链表不影响时间复杂度,因为是链表,所以你想要升序就使用头插法,你想要降序就使用尾插法。 然后我们来分析一下最坏的情况是什么样的。 因为m和n都是两个有序的升序序列。 如果刚好m的最大值小于n的最小值&#xff0…

消息中间件---Kafka

一、什么是Kafka? Kafka是一个分布式流处理平台,类似于消息队列或企业消息传递系统; 流处理事什么呢? 流处理就是数据处理工作流,本质上是一种计算机编程范例。流处理是对接收到的新数据事件的连续处理。‌它涉及对从生产者到消…

10年408考研真题-数据结构

23.[2010统考真题]若元素 a,b,c,d,e,f 依次进栈,允许进栈、退栈操作交替进行,但不允许连续3次进行退栈操作,不可能得到的出栈序列是(D)。 A.dcebfa B.cbdaef C.bcaefd D.afedcb 解析: 直接看D选项&#xff0…

Python | Leetcode Python题解之第420题强密码检验器

题目: 题解: class Solution:def strongPasswordChecker(self, password: str) -> int:n len(password)has_lower has_upper has_digit Falsefor ch in password:if ch.islower():has_lower Trueelif ch.isupper():has_upper Trueelif ch.isdi…

微服务保护之熔断降级

在微服务架构中,服务之间的调用是通过网络进行的,网络的不确定性和依赖服务的不可控性,可能导致某个服务出现异常或性能问题,进而引发整个系统的故障,这被称为 微服务雪崩。为了防止这种情况发生,常用的一些…

pytorch实现RNN网络

目录 1.导包 2. 加载本地文本数据 3.构建循环神经网络层 4.初始化隐藏状态state 5.创建随机的数据,检测一下代码是否能正常运行 6. 构建一个完整的循环神经网络 7.模型训练 8.个人知识点理解 1.导包 import torch from torch import nn from torch.nn imp…

Python画笔案例-057 绘制蜘蛛网

1、绘制蜘蛛网 通过 python 的turtle 库绘制 蜘蛛网,如下图: 2、实现代码 绘制蜘蛛网,以下为实现代码: """蜘蛛网.py """ import turtledef draw_circle(pos,r):"""p

实时数据的处理一致性

实时数据一致性的定义以及面临的挑战‍‍‍‍‍ 数据一致性通常指的是数据在整个系统或多个系统中保持准确、可靠和同步的状态。在实时数据处理中,一致性包括但不限于数据的准确性、完整性、时效性和顺序性。 下图是典型的实时/流式数据处理的流程: 1、…

Infineon——TC397 Multicore简介

文章目录 前言一、TC397简介二、命名规则三、多核开发建议 前言 AURIX™ TC3xx微控制器架构具有多达6个独立的处理器内核CPU0…CPU5, 可在一个统一平台上无缝托管多个应用程序和操作系统. 由于实现了具有独立读取接口的多个程序Flash模块, 该架构支持进一步的实时处理. AURIX™…

毕业设计选题:基于ssm+vue+uniapp的驾校预约管理系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

iPhone16,超先进摄像头系统?丝滑的相机控制

iPhone 16将于9月20号正式开售,这篇文章我们来看下iPhone 16 在影像方面,有哪些升级和新feature。 芯片:采用第二代 3纳米芯片,A18。 摄像头配置: iPhone 16 前置:索尼 IMX714 ,1200 万像素&am…

Red Hat 和 Debian Linux 对比

原图的作者(https://bbs.deepin.org/post/209759) Red Hat Enterprise Linux https://www.redhat.com/ CentOS Linux https://www.centos.org/ Fedora Linux https://fedoraproject.org/ Debian https://www.debian.org/ Ubuntu https://cn.ubuntu.com/ https://ubuntu.c…