深度学习DAY3:激活函数

激活函数映射——引入非线性性质

h =(Σ(W * X)+b)

y=σ(h)

将h的值通过激活函数σ映射到一个特定的输出范围内的一个值,通常是[0, 1]或[-1, 1]

在这里插入图片描述

1 Sigmoid激活函数

逻辑回归LR模型的激活函数
在这里插入图片描述

Sigmoid函数(Logistic函数)将输入值映射到0和1之间的范围,具有平滑的S形曲线。它在二元分类问题中常用,因为它可以将输出解释为概率,表示某个事件发生的概率。

在特征相差比较复杂或是相差不是特别大时效果比较好。

在深度学习中,由于sigmoid存在梯度消失现象,因此使用ReLU。

优点

平滑、易于求导。

缺点

  • 计算量大:反向传播求误差梯度时,求导涉及除法
  • 梯度消失:反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。
  • 输出恒为正:sigmoid函数的输出恒为正值,不是以零为中心的,这会导致权值更新时只能朝一个方向更新,从而影响收敛速度。

在这里插入图片描述

2 Tanh激活函数

tanh 激活函数是sigmoid 函数的改进版,是以零为中心的对称函数,收敛速度快,不容易出现 loss 值晃动,但是无法解决梯度消失的问题。
在这里插入图片描述

Tanh函数将输入值映射到-1和1之间的范围,也具有S形曲线。它在神经网络中广泛用于隐藏层,可以使输出具有零中心化的性质,有助于网络的训练。
在这里插入图片描述
在这里插入图片描述

2.1 运算

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

3 ReLU激活函数

ReLU(Rectified Linear Unit),又称修正线性单元。

通常指代以斜坡函数及其变种为代表的非线性函数。

将负数输入值置为零,对正数输入值保持不变。它在深度神经网络中常用,因为它具有线性部分和非线性部分,有助于解决梯度消失问题。

3.1 斜坡函数(ReLU)

在这里插入图片描述

3.2 带泄露线性整流(Leaky ReLU)

在输入值为负的时候,带泄露线性整流函数(Leaky ReLU)的梯度为一个常数,而不是0。在输入值为正的时候,带泄露线性整流函数和普通斜坡函数保持一致.
在这里插入图片描述

3.3 参数线性整流(Parametric ReLU)

在深度学习中,如果设定为一个可通过反向传播算法(Backpropagation)学习的变量,那么带泄露线性整流又被称为参数线性整流(Parametric ReLU)。

3.4 带泄露随机线性整流(Randomized Leaky ReLU,RReLU)

最早是在Kaggle全美数据科学大赛(NDSB)中被首先提出并使用的。相比于普通带泄露线性整流函数,带泄露随机线性整流在负输入值段的函数梯度是一个取自连续性均匀分布概率模型的随机变量
在这里插入图片描述
在这里插入图片描述

3.5 噪声线性整流(Noisy ReLU)

噪声线性整流(Noisy ReLU)是修正线性单元在考虑高斯噪声的基础上进行改进的变种激活函数。对于神经元的输入值{\displaystyle x},噪声线性整流加上了一定程度的正态分布的不确定性(使得预测值更加合理)
在这里插入图片描述
其中随机变量Y~N(0,σ(x)).
当前噪声线性整流函数在受限玻尔兹曼机(Restricted Boltzmann Machine)在计算机图形学的应用中取得了比较好的成果。

3.6 ReUL优势

  • 仿生物学原理

相关大脑方面的研究表明生物神经元的信息编码通常是比较分散及稀疏的。通常情况下,大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。

使用线性修正以及正则化(regularization)可以对机器神经网络中神经元的活跃度(即输出为正值)进行调试;

相比之下,逻辑函数在输入为0时达到,即已经是半饱和的稳定状态,不够符合实际生物学对模拟神经网络的期望。不过需要指出的是,一般情况下,在一个使用修正线性单元(即线性整流)的神经网络中大概有50%的神经元处于激活态。

  • 更加有效率的梯度下降以及反向传播:避免了梯度爆炸和梯度消失问题。
  • 简化计算过程:没有了其他复杂激活函数中诸如指数函数的影响;同时活跃度的分散性使得神经网络整体计算成本下降。

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

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

相关文章

深度学习_2_数据处理

import os是一个Python的内置模块,用于与操作系统进行交互。通过导入os模块,你可以使用其中提供的函数和方法来执行各种与操作系统相关的任务。 import osos.makedirs(os.path.join(.., date), exist_okTrue)##将创建一个名为date的文件夹,位…

LeetCode【279】完全平方数

题目: 思路: https://www.acwing.com/solution/leetcode/content/114877/ 1、给定数字,是由若干个完全平方数组合而成,求使用的最小的完全平方数的个数,如果这些完全平方数已知,则完全等同于百元百鸡问题…

VIM指令

vim的工作模式 vim一般有6种工作模式。 普通模式:使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作。 插入模式:也可以叫做编辑模式,在普通模式下敲击 i 、a 或 o 就进入插入模…

UE5.3.1 无法创建C++ 工程问题解决方法

UE5.3.1 创建C工程提示DONET问题,直接下载最新版本的NET8.0的SDK安装即可解决! 下载地址:下载 .NET 8.0 SDK (v8.0.100-rc.2) - Windows x64 Installer

Java基于SpringBoot的高校招生系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 简介系统设计思路1 数据库设计2 系统整体设计 系统详细设计1系统功能模块2. 管理员功能模块3学生…

camera bringup介绍

目录 camera bringup需要做什么 camera硬件包括 camera硬件连接关系 camera使用的通信接口 camera sensor cmos sensor 色彩滤镜 sensor输出的分辨率 曝光控制-快门 曝光控制-曝光时间 曝光时间如何控制 曝光控制-帧率 曝光控制-增益 手动曝光 手动设置曝光-长曝…

bootz启动 Linux内核过程总结

一. bootz启动Linux uboot 启动 Linux内核使用bootz命令。当然还有其它的启动命令,例如,bootm命令等等。 前面几篇文章分析 bootz命令启动 Linux内核的过程中涉及的几个重要函数。 bootz启动 Linux内核过程中涉及的全局变量images_凌肖战的博客-CSDN博…

springboot json在线转换为实体类

json字符串映射到一个实体类。 这里有一个在线转换工具 http://www.bejson.com/json2javapojo/new/ 截图如下:

html与css知识点

html 元素分类 块级元素 1.独占一行,宽度为父元素宽度的100% 2.可以设置宽高 常见块级元素 h1~h6 div ul ol li dl dt dd table form header footer section nav article aside 行内元素 1.一行显示多个 2.不能设置宽高,宽高由元素内容撑开 常见行内…

Yocto Project 编译imx-第1节(下载和编译)

Yocto Project 编译imx-第1节(下载和编译) 前言说明参考文章版本说明Ubuntu 系统说明和建议必备软件安装设置Git用户名和密码解决git报错使用FastGithub 获取repo获取Yocto项目设置Yocto源获取Yocto版本(https://source.codeaurora.org废弃&a…

记录用命令行将项目打包成war包

记录用命令行将项目打包成war包 找到项目的pom.xml 在当前路径下进入cmd 输入命令 mvn clean package 发现报错了 Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project MMS: Error assembling WAR: webxml attribute is req…

排序算法-快速排序法(QuickSort)

排序算法-快速排序法(QuickSort) 1、说明 快速排序法是由C.A.R.Hoare提出来的。快速排序法又称分割交换排序法,是目前公认的最佳排序法,也是使用分而治之(Divide and Conquer)的方式,会先在数…

统计子岛屿的数量

统计子岛屿 题目描述 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。任何矩阵以外…

【STM32单片机】防盗报警器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器,使用按键、动态数码管、蜂鸣器、指示灯、热释电人体红外传感器等。 主要功能: 系统运行后,默认处于布防状态,D1指示灯…

Excel 规范录入数据

文章目录 录入日期录入百分比 快捷键: tab:向右切换单元格 enter:向下切换行 shift tab:向左切换单元格 shiftenter:向上切换行 录入日期 输入今天的日期的快捷键:Ctrl ; 输入当时的时间的快捷键&a…

Java反射获取抽象类方法属性问题讲解

Java反射获取抽象类方法属性问题讲解 结论一、案例准备二、测试方法:使用反射获取抽象类私有方法和私有属性具体操作(获取私有方法)具体操作(获取私有属性) 结论 Java 通过反射可以获得抽象类的任何修饰符&#xff08…

Gin框架中的Cookie怎么搞(会话控制)

参考地址 设置和获取 Cookie | Gin Web Framework (gin-gonic.com)https://gin-gonic.com/zh-cn/docs/examples/cookie/ 什么是cookie cookie在互联网上随处可见,具体体现如下: 保持登录状态 保存浏览器的历史记录 大数据随心配,按喜好推送讯息 购物网站加入购物车 都会…

IntelliJ IDEA Maven 项目的依赖分析

在一个 maven 的项目中,我们需要知道我们的项目中使用的包可能有哪些冲突。 这个在 IntelliJ IDEA 中提供了贴心的查看。 选择 Maven 项目中的分析依赖。 随后,IntelliJ IDEA 将会打开一个依赖分析的标签页。 在这个标签页中,我们可以看到…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图,这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章,并配上自己的理解,因为这一章写的实在是太精彩了,希望能够分享给大家,共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

C++ (Chapter 1)

C (一) 1.C的命名空间 先来看一个C语言的例子: 下面这段代码是可以正常运行的. #include<stdio.h> int rand 0; int main() {printf("%d \n", rand);return 0; }但是,包含了一个头文件之后,甚至无法通过编译. #include<stdio.h> #include<stdli…