当前位置: 首页 > news >正文

什么是神经网络,它的原理是啥?(2)

参考:https://www.youtube.com/watch?v=mlk0rddP3L4&list=PLuhqtP7jdD8CftMk831qdE8BlIteSaNzD

视频3:什么是激活函数?为什么我们需要激活函数?它的类型有哪些?

为什么需要激活函数?如果没有激活函数,那么神经网络的向前传播就会变成线性的。一个隐藏层和多个隐藏层实际上没有区别,如下图

在这里插入图片描述

因此,我们需要 非线性 的激活函数。(除了上面的原因,还有一个原因,那就是现实世界,一个物品的特征之间的关系通常也是非线性的,所以要用非线性的激活函数才能更好的去模拟它们)

接下来介绍激活函数的类型,首先是 sigmoid 函数,如下图

在这里插入图片描述

sigmoid 函数的特点是,定义域是负无穷到正无穷,而值域是 (0, 1)

sigmoid 函数很适合用来作为 二元分类 模型的 output nero 的激活函数。

但 sigmoid 函数不适合用作 隐藏层 的激活函数

随后是 Tanh 函数,如下图

在这里插入图片描述

当我们在用梯度下降法做训练时,我们会计算激活函数的导数,下图是 sigmoid 和 tanh 的导数图像

在这里插入图片描述
可以看到 tanh 的斜率变化远强于 sigmoid,因此使用 tanh 作为隐藏层的激活函数,模型训练速度会比 sigmoid 快很多

tanh 还有其它好的特性,那就是它的输出值是 (-1, 1)。相当于一个自动的 ”正则化“。这样一来在训练时,隐藏层之间的数据传输会简单很多。

不过 tanh 也有缺点,从导数图像来看,当 x 的绝对值大时,斜率很低,这会导致训练速度极其缓慢,这也叫做 ”vanishing gradient problem“

为了解决 vanishing gradient problem,我们提出了下面这种激活函数 ReLU 函数

在这里插入图片描述

tanh 是 piece-wise linear,因此它包含了 Linear 和 non-linear 的性质和优势

TODO:感觉这里有问题,如果 x > 0 则 f(x) = x,那感觉后边会出现 “线性退化”

以下是 ReLU 的变种

在这里插入图片描述

在遇到多分类问题的时候,我们不能使用 sigmoid 函数,它不合适

在这里插入图片描述

适用于多分类问题的激活函数是 softmax 函数,如下图

在这里插入图片描述
在这里插入图片描述
如上图,使用 e^x 的原因是,指数函数会随着 x 的增加爆炸性增长,从而让我们的最大可能性的可能性变得更加突出

如下图是 softmax 函数的一个更加严格的定义

在这里插入图片描述

在面对回归问题的时候,通常我们不对 output neuron 使用任何激活函数

在这里插入图片描述

接下来做个总结

对于二元分类问题,我们通常使用 sigmoid 函数作为 output neuron 的激活函数,而使用 ReLU/tanh 作为隐藏层的激活函数,如下图

在这里插入图片描述

sigmoid 和 tanh 都有一个问题:vanishing gradient problem。这个问题可以由 ReLU 函数解决,ReLU 函数还有很多变种
在这里插入图片描述

在解决多分类问题的时候,我们通常使用 tanh/ReLU 作为隐藏层的激活函数,使用 Softmax 作为 output layer 的激活函数
而面对回归问题时,通常 output layer 没有激活函数

在这里插入图片描述

视频4:TODO

TODO: here

相关文章:

什么是神经网络,它的原理是啥?(2)

参考:https://www.youtube.com/watch?vmlk0rddP3L4&listPLuhqtP7jdD8CftMk831qdE8BlIteSaNzD 视频3:什么是激活函数?为什么我们需要激活函数?它的类型有哪些? 为什么需要激活函数?如果没有激活函数&…...

leetcode做题笔记206. 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输入&am…...

2023/10/31 JAVA学习

idea一般会自动帮我们导包 new string创建出的字符串是空的,可以对其进行新赋值 s[i]在Java字符串中是没有这个东西的,想要遍历字符串只能用下面这种方式 但是可以把字符串,转换为字符数组然后那样输出 java中是无法s1 s2这样比较字符串的,因为这样比较的是地址,如果是new创建…...

SurfaceFliger绘制流程

前景提要: 当HWComposer接收到Vsync信号时,唤醒DisSync线程,在其中唤醒EventThread线程,调用DisplayEventReceiver的sendObjects像BitTub发送消息,由于在SurfaceFlinger的init过程中创建了EventThread线程&#xff0c…...

系统架构设计师-第14章-云原生架构设计理论与实践-

云原生架构产生背景 云原生与商业场景的深度融合 ( 1 )从为企业带来的价值来看,云原生架构有着以下优势通过对多元算力的支持,满足不同应用场景的个性化算力需求,井基于软硬协同架构,为应用提供极致性能的云原生算力 (2) 通过最…...

conda 实践

1. 环境部署 1.1. 下载 anaconda 安装包 下面这个网址查找自己需要的版本 https://repo.anaconda.com/archive/ 或者手动下载。 wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh 1.2. 执行安装程序 #安装依赖: sudo yum install bzip2…...

行业追踪,2023-10-31

自动复盘 2023-10-31 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...

springboot 配置多个Redis数据源详解

实现原理 需要配置好两个数据源,创建两个RedisTemplate在配置类中注入两个RedisConnectionFactory,分别创建对应的RedisTemplate进行操作 详解 配置数据源 我这里是在之前已有一个配置下面另外加了一个 spring:redis:# 地址host: localh…...

【数据结构】排序算法总结

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈数据结构 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 总结 1. 归并排序2. 计数排序3. 排序…...

作为20年老程序员,我如何使用GPT4来帮我写代码

如果你还在用google寻找解决代码bug的方案,那你真的out了,试试gpt4, save my life. 不是小编危言耸听,最近用gpt4来写代码极大地提高了代码生产力和运行效率,今天特地跟大家分享一下。 https://www.promptspower.comhttps://www.…...

【机器学习合集】模型设计之残差网络 ->(个人学习记录笔记)

文章目录 模型设计之残差网络1. 什么是残差结构1.1 网络加深遇到的优化问题1.2 short connect技术 2. 残差网络及有效性理解2.1 残差网络 3. 残差网络的发展3.1 密集残差网络3.2 更宽的残差网络(wide resnet)3.3 分组残差网络3.4 Dual Path Network3.5 加权残差网络3.6 预激活残…...

GoLong的学习之路(十六)基础工具之Gin框架

Gin框架介绍及使用,这张不用看内容就知道非常重要,重要到什么地步呢?重要到开发java不会Spring全家桶这种概念。 上几篇文章写的是如何构建骨架,经脉。这一章是将血肉注入。 文章目录 Gin框架RESTful API Gin渲染HTML渲染静态文件…...

VMware打开centos黑屏解决方法汇总

VMware打开centos黑屏解决方法汇总 前言:一. VMware打开centos黑屏解决方法汇总一 .情况情况一:情况二情况三 二. 解决方法最简单的方法:一. 以管理员权限在命令行执行1. 管理员身份运行cmd2. 输入“netsh winsock reset”,回车3. 重启电脑即…...

5G物联网关相较有线网关有哪些独特优势

5G为产业物联网应用带来了质的飞跃,5G技术实现更高速率、更低延迟和更大带宽,使得物联网能够接入更多数量的设备,实现更稳定、高效的连接和数据传输,在提高生产效率的同时,也进一步促进了物联网的应用发展和升级。 针对…...

【数据结构】顺序表的学习

前言:在之前我们学习了C语言的各种各样的语法,因此我们今天开始学习数据结构这一个模块,因此我们就从第一个部分来开始学习"顺序表"。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:C程序设计谭浩强版本…...

在NISQ小型计算机上执行大型并行量子计算的可能性

简介 Steve White提出了密度矩阵重整化群(DMRG)的基本思想,即纠缠是一种有价值的资源,可以用来精确或近似地描述大量子系统。后来,这一思想被理解为优化矩阵积状态(MPS)的算法,支持…...

考虑时空相关性的风电功率预测误差MATLAB代码

微❤关注“电气仔推送”获得资料(专享优惠) 风电功率预测置信区间误差分析拟合 1.风电功率预测误差--时空相关性 展示第一一个时间段的风电功率预测与实际风电功率值的比较。填充区域表示预测的不确定性,显示了95%置信区间内预测可能的范围…...

ASP.NET WebApi 极简依赖注入

文章目录 环境服务类启动项注入使用依赖注入的优点 环境 .NET Core 7.0ASP.NET CoreVisual Studio 2022 服务类 public class T_TempService {public T_TempService(){}public void Test(){}}启动项注入 #region 依赖注入 builder.Services.AddTransient<T_TempService&g…...

解决proteus仿真stm32,IIC通讯,IIC DEBUG无法显示从机应答信号的问题(问题情况为在8位数据后应答位显示?)

1、错误现象 错误现象如下&#xff0c;在IIC数据传输8位数据后&#xff0c;IIC DEBUG的应答位无法显示应答位 2、错误原因 我们打开信号传输的示波器&#xff0c;直接去查看IIC从机校验位的数据波形&#xff0c;可以看到从机示波器显示的的波形为半高ACK&#xff0c;那错误原…...

PHP判断闰年

闰年的规则 1.能被4整除且不能被100整除 &#xff08;普通闰年&#xff09; 2.能被400整除&#xff0c;公历年份是整百数的&#xff0c;必须是400的倍数才是闰年&#xff08;世纪闰年&#xff09; 代码 function isLeapYear($year) {if($year%40 && $year%100!0){r…...

终极指南:如何用NSC_BUILDER一键搞定Switch游戏文件管理

终极指南&#xff1a;如何用NSC_BUILDER一键搞定Switch游戏文件管理 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights encryp…...

Java工业协议解析必须掌握的3种字节序处理范式,附ISO/IEC 61131-3兼容性验证报告

第一章&#xff1a;Java工业协议解析必须掌握的3种字节序处理范式&#xff0c;附ISO/IEC 61131-3兼容性验证报告大端序&#xff08;Big-Endian&#xff09;的标准化解析实践 在Modbus TCP与IEC 61850 ACSI通信中&#xff0c;设备寄存器默认采用网络字节序&#xff08;即大端序&…...

智能农业大棚设计详解

基于单片机的智能农业大棚设计温湿度二氧化碳光照&#xff08;详细设计说明 10119-基于单片机的智能农业大棚设计温湿度二氧化碳光照&#xff08;详细设计说明书proteus源代码原理图元件清单&#xff09; 功能需求&#xff1a; 智慧农业大棚的底层理念是实现智能化控制与生产&a…...

CMake + VTK 编译

CMake VTK 编译 1下载 1 CMake下载 https://cmake.org/download/#older2 VTK 下载 https://gitlab.kitware.com/vtk/vtk/-/tags2 安装和解压缩 3 配置CMake 这一部分忘了截图 &#xff0c;可以查看这里的步骤&#xff0c;基本一致 https://blog.csdn.net/weixin_42964413/arti…...

QwQ-32B多模态应用实践:文本与图像联合处理

QwQ-32B多模态应用实践&#xff1a;文本与图像联合处理 最近在折腾AI模型的时候&#xff0c;发现很多朋友对多模态应用特别感兴趣。所谓多模态&#xff0c;简单说就是让AI能同时理解文字和图片&#xff0c;甚至还能把两者结合起来处理。这听起来挺酷的&#xff0c;但实际操作起…...

Lingbot-Depth-Pretrain-ViTL-14 在AIGC领域的应用:为AI生成图像添加深度信息

Lingbot-Depth-Pretrain-ViTL-14 在AIGC领域的应用&#xff1a;为AI生成图像添加深度信息 最近在玩AI生成图片&#xff0c;大家是不是也遇到过这样的困惑&#xff1a;用Stable Diffusion、Midjourney这些工具生成了特别棒的二维画面&#xff0c;但总觉得少了点什么&#xff1f…...

终极指南:3分钟掌握ControlNet-v1-1_fp16_safetensors高效AI图像控制

终极指南&#xff1a;3分钟掌握ControlNet-v1-1_fp16_safetensors高效AI图像控制 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensor…...

PyCharm 2025.2 离线安装与配置全攻略:绕过登录,直接使用完整汉化版

PyCharm 2025.2 离线安装与配置全攻略&#xff1a;企业级免登录解决方案 在企业开发环境中&#xff0c;Python开发者常常面临网络限制、账号管理繁琐等问题。PyCharm作为最受欢迎的Python IDE之一&#xff0c;其官方版本需要联网激活和登录JetBrains账户&#xff0c;这对内网开…...

为什么conda装不上opencv-python?深入解析conda与pip的包管理差异

为什么conda装不上opencv-python&#xff1f;深入解析conda与pip的包管理差异 在Python生态系统中&#xff0c;conda和pip是最常用的两种包管理工具。许多开发者习惯使用conda创建和管理虚拟环境&#xff0c;但在安装某些特定包如opencv-python时&#xff0c;却常常遇到"P…...

【SLAM实战解析】卡方检验在ORB-SLAM2外点剔除中的关键作用

1. 卡方检验在SLAM中的核心价值 第一次在ORB-SLAM2的代码里看到卡方检验时&#xff0c;我盯着那行chi2测试代码愣了半天。这个在统计学课本里见过的概念&#xff0c;怎么突然出现在视觉SLAM系统中&#xff1f;后来才发现&#xff0c;这简直是SLAM开发者处理异常值的"瑞士军…...