AI基础知识

news2024/11/23 10:02:09

目录

  • 1.激活函数
    • :one: 激活函数的作用
    • :two: sigmoid函数
    • :three: tanh函数
    • :four: ReLu
    • :five: Leaky ReLU
  • 2.Softmax函数
  • 3.优化器
    • :one: 优化器的作用
    • :two: BGD(批梯度下降)
    • :three: SGD(随机梯度下降)
    • :four: MBGD(Mini Batch梯度下降)
    • :five: AdaGrad(自适应学习率优化器)
    • :six: RMSProp(Root Mean Square Propagation)
    • :seven: Adam(Adaptive Momen Estimation,自适应动量估计)
  • 4.梯度消失和爆炸
    • :one: 梯度消失
    • :two: 梯度爆炸
  • 5.输入数据的归一化
    • :one: 标准化
    • :two:最小-最大归一化
  • 6.神经网络层内部的归一化
    • :one: 批量归一化
    • :two: 层归一化
  • 7.如何处理过拟合?
    • :one: Dropout
    • :two: 增大数据量
    • :three:Early Stop。
    • :four:Batch Normalization
    • :five: L1正则化
    • :six: L2正则化
  • 8.全连接层的作用
  • 9.池化
    • :one: 平均池化
    • :two: 最大池化
  • 10.卷积的感受野
    • :one:
    • :two:
    • :three:
    • :four:
    • :five:
    • :six:
    • :seven:


1.激活函数

1️⃣ 激活函数的作用

激活函数为神经网络引入非线性,如果没有激活函数,即使网络层数再多,也只能处理线性可分问题。

2️⃣ sigmoid函数

sigmoid函数将输入变换为(0,1)上的输出。它将范围(-inf,inf)中的任意输入压缩到区间(0,1)中,函数表示为:
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac1{1+e^{-x}} sigmoid(x)=1+ex1
在这里插入图片描述
其梯度可以表示为:
d d x s i g m o i d ( x ) = e − x ( 1 + e − x ) 2 = s i g m o i d ( x ) [ 1 − s i g m o i d ( x ) ] \frac d{dx}sigmoid(x)=\frac{e^{-x}}{(1+e^{-x})^2}=sigmoid(x)[1-sigmoid(x)] dxdsigmoid(x)=(1+ex)2ex=sigmoid(x)[1sigmoid(x)]
在这里插入图片描述
可以发现,sigmoid函数的梯度在0到0.25之间。输入很大或很小时会趋于0,当网络变得越来越深时,会出现梯度消失问题。

优点:

  • 能够将自变量的值全部压缩到(0,1)之间
  • 连续可导

缺点:

  • 输入趋于无穷大或无穷小时会出现梯度消失问题
  • 存在幂运算,计算复杂度大

3️⃣ tanh函数

tanh函数将其输入压缩转换到区间(-1,1)上,公式如下:
t a n h ( x ) = 1 − e − 2 x 1 + e − 2 x tanh(x)=\frac{1-e^{-2x}}{1+e^{-2x}} tanh(x)=1+e2x1e2x
在这里插入图片描述
tanh函数的梯度是:
d d x t a n h ( x ) = 1 − t a n h 2 ( x ) \frac d{dx}tanh(x)=1-tanh^2(x) dxdtanh(x)=1tanh2(x)
在这里插入图片描述

可以发现当输入接近0时,tanh函数的梯度接近最大值1。与sigmoid函数的梯度类似,输入在任一方向上远离0点,梯度越接近0,因此也存在梯度消失问题。

优点

  • 相比于Sigmoid,tanh在输入靠近0的区域,梯度为1,有助于收敛。但输入趋于无穷大或无穷小时会出现梯度消失问题

缺点

  • 和sigmoid函数一样,输入趋于无穷大或无穷小时会出现梯度消失问题
  • 同样存在幂运算,计算复杂度大

4️⃣ ReLu

线性整流单元(ReLU)提供了一种非常简单的非线性变换,被定义为:
R e L u ( x ) = m a x ( x , 0 ) ReLu(x)=max(x,0) ReLu(x)=max(x,0)
在这里插入图片描述
其梯度可以表示为:
f ′ ( x ) = { 1 , x > 0 0 , x < 0 f^{^{\prime}}(x)=\begin{cases}1,\quad\text{x}>0\\0,\quad\text{x}<0&\end{cases} f(x)={1,x>00,x<0
在这里插入图片描述

当输入为正时,ReLU函数的梯度为1;当输入值等于0时,梯度可以当成1也可以当成0,实际应用中并不影响;输入小于0时,梯度直接为0,但在神经网络训练过程中,输入小于0的神经元占比很少。因此ReLu函数可以有效缓解梯度消失问题。

优点

  • 相较于sigmoid和tanh,relu在输入大于0时,梯度恒为1,不会出现梯度消失问题
  • 线性函数,收敛快

缺点:

  • dead relu问题:当输入小于0时,梯度为0,导致参数无法更新

5️⃣ Leaky ReLU

在小于0的部分引入一个斜率,使得小于0的取值不再是0(通常a的值为0.01左右):
f ( x ) = { a ⋅ x  x <=0 x  x>0 f(x)=\begin{cases}a\cdot x&\text{ x <=0}\\x&\text{ x>0}&\end{cases} f(x)={axx x <=0 x>0
其梯度可以表示为:
f ′ ( x ) = { a  x <=0 1  x>0 f^{\prime}(x)=\begin{cases}a&\text{ x <=0}\\1&\text{ x>0}&\end{cases} f(x)={a1 x <=0 x>0
优点:

  • 解决了dead relu问题

缺点:

  • 负斜率需要预先设定,但不同任务的斜率可能不同

2.Softmax函数

softmax函数常用于多分类任务,将输入映射成一个0到1范围的概率,且所有的输出和为1

假设输入为 z = [ z 1 , z 2 , … , z n ] z=[z_1,z_2,\ldots,z_n] z=[z1,z2,,zn] ,Softmax 函数的输出为:
s o f t m a x ( z i ) = e z i ∑ j = 1 n e z j \mathrm{softmax}(z_i)=\frac{e^{z_i}}{\sum_{j=1}^ne^{z_j}} softmax(zi)=j=1nezjezi


3.优化器

1️⃣ 优化器的作用

优化器的作用是调整模型参数,以最小化损失函数

2️⃣ BGD(批梯度下降)

在更新参数时使用所有样本进行更新,假设样本总数为N:
θ ′ = θ − η ⋅ 1 N ∑ i = 1 N ∇ θ J ( θ ) \theta'=\theta-\eta\cdot\frac1N\sum_{i=1}^N\nabla_\theta J(\theta) θ=θηN1i=1NθJ(θ)
其中, η \eta η为学习率, ∇ θ J ( θ ) \nabla_\theta J(\theta) θJ(θ)是损失函数对网络参数 θ \theta θ的梯度。

优点:

  • BGD得到的是一个全局最优解,

缺点:

  • 每迭代一步,都要用到训练集的所有数据,如果样本数巨大,模型训练速度会很慢。

3️⃣ SGD(随机梯度下降)

SGD 是最基本的优化方法。每次更新权重时,使用一个样本或batch size个样本(多个样本则计算平均梯度)计算梯度:

参数更新公式:

θ ′ = θ − η ⋅ ∇ θ J ( θ ) \theta'=\theta-\eta\cdot\nabla_\theta J(\theta) θ=θηθJ(θ)
其中, θ \theta θ是参数, η \eta η是学习率, ∇ θ J ( θ ) \nabla_\theta J(\theta) θJ(θ)是损失函数对网络参数 θ \theta θ的梯度。

优点:

  • 实现简单、效率高

缺点:

  • 收敛速度慢,容易陷入局部最优解

4️⃣ MBGD(Mini Batch梯度下降)

介于批梯度下降和随机梯度下降之间,每次更新参数时使用b个样本。
θ ′ = θ − η ⋅ 1 b ∑ i = 1 b ∇ θ J ( θ ) \theta'=\theta-\eta\cdot\frac1b\sum_{i=1}^b\nabla_\theta J(\theta) θ=θηb1i=1bθJ(θ)

特点:

  • 训练过程比较稳定;BGD可以找到局部最优解,不一定是全局最优解;若损失函数为凸函数,则BGD所求解一定为全局最优解。

5️⃣ AdaGrad(自适应学习率优化器)

AdaGrad优点是可以自适应学习率。该优化器在较为平缓处有比较高的学习效率,在陡峭处学习率小,在一定程度上可以避免越过极小值。

6️⃣ RMSProp(Root Mean Square Propagation)

AdaGrad算法虽然解决了学习率无法根据当前梯度自动调整的问题,但是过于依赖之前的梯度,在梯度突然变化时无法快速响应。RMSProp为了解决这一问题,在AdaGrad的基础上增加了衰减速率参数。也就是说在当前梯度与之前梯度之间添加了权重,如果当前梯度的权重较大,那么响应速度也就更快

7️⃣ Adam(Adaptive Momen Estimation,自适应动量估计)

Adam优化算法是在RMSProp的基础上增加了动量。有时候通过RMSProp优化算法得到的值不是最优解,有可能是局部最优解,引入动量的概念后,求最小值就像是一个球从高处落下,落到局部最低点时会继续向前探索,有可能得到更小的值


4.梯度消失和爆炸

1️⃣ 梯度消失

  • 激活函数的特性:sigmoid和tanh在输入趋于无穷大或无穷小时会出现梯度消失问题
  • 深度网络层数累计:随着层数增多,反向传播时梯度会逐层相乘,导致梯度逐渐减小
  • 权重初始化不当:如果初始化权重过小,反向传播时梯度会减小,导致梯度消失

如何解决?

  • 使用relu激活函数
  • 使用 Batch Normalization:通过对每一层的输出进行归一化,保持输出在一个稳定的分布范围内,防止梯度逐层缩小

2️⃣ 梯度爆炸

  • 深度网络层数累计:若每层的梯度稍大,梯度逐层相乘会导致梯度爆炸
  • 权重初始化不当:如果初始化权重过大,反向传播时梯度会变大,导致梯度爆炸

如何解决?

  • 合适的权重初始化

5.输入数据的归一化

输入数据的归一化可以使数据分布一致,加快收敛速度。

1️⃣ 标准化

将数据调整为均值为 0、标准差为1的分布:

x ′ = x − μ σ x^{\prime}=\frac{x-\mu}\sigma x=σxμ

其中 x x x是原始数据, μ \mu μ是数据的均值, σ \sigma σ是数据的标准差。

2️⃣最小-最大归一化

x ′ = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x^{\prime}=\frac{x-\min(x)}{\max(x)-\min(x)} x=max(x)min(x)xmin(x)


6.神经网络层内部的归一化

1️⃣ 批量归一化

没写

2️⃣ 层归一化

没写


7.如何处理过拟合?

1️⃣ Dropout

训练时随机丢弃部分神经元,减少神经元之间的相互依赖,迫使网络学习更加鲁邦的表示,防止过拟合。

2️⃣ 增大数据量

增大的数据量可以使模型学习到更多的特征,防止过拟合

3️⃣Early Stop。

将数据集分为训练集、验证集、测试集,每个epoch后都用验证集验证一下,如果随着训练的进行训练集Loss持续下降,而验证集Loss先下降后上升,说明出现过拟合,应该立即停止训练

4️⃣Batch Normalization

没写

5️⃣ L1正则化

没写

6️⃣ L2正则化

没写


8.全连接层的作用

  • 特征融合:将前一层的所有特征融合成更高层次的特征
  • 决策输出:全连接层放在网络的末端,将提取的特征映射到类别,实现分类任务

9.池化

1️⃣ 平均池化

2️⃣ 最大池化


10.卷积的感受野

1️⃣

2️⃣

3️⃣

4️⃣

5️⃣

6️⃣

7️⃣

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

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

相关文章

【论文阅读】Learning dynamic alignment via meta-filter for few-shot learning

通过元滤波器学习动态对齐以实现小样本学习 引用&#xff1a;Xu C, Fu Y, Liu C, et al. Learning dynamic alignment via meta-filter for few-shot learning[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021: 5182-5191. 论文…

ArcGIS Pro SDK Addin-DAML

ArcGIS Pro SDK Addin-DAML 文章目录 ArcGIS Pro SDK Addin-DAML1 Panes: 重置窗格2 Button: 从功能区中移除核心按钮3 Button: 将新按钮插入功能区上的现有组4 Menu: 在图层上下文菜单中插入一个新按钮5 Menu: 在 Map Container 上下文菜单中插入新菜单6 Menu: 在2D Map上下文…

FPGA学习笔记#7 Vitis HLS 数组优化和函数优化

本笔记使用的Vitis HLS版本为2022.2&#xff0c;在windows11下运行&#xff0c;仿真part为xcku15p_CIV-ffva1156-2LV-e&#xff0c;主要根据教程&#xff1a;跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 学习笔记&#xff1a;《FPGA学习笔记》索引 FPGA学习笔记#1 HLS简介及…

熊猫追剧 1.0.2 | 免费影视播放,独家蓝光线路

熊猫追剧是一款免费的视频播放软件&#xff0c;集合了网络上的电影、电视剧、综艺、动漫以及短剧等多种类型的视频资源。经过测试&#xff0c;该软件内没有广告干扰&#xff0c;采用独家蓝光线路&#xff0c;提供高清流畅的观影体验。用户还可以享受视频投屏、下载和倍速播放等…

[CKS] K8S AppArmor Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …

Tomcat漏洞利用工具-TomcatScanPro(二)

项目地址 https://github.com/lizhianyuguangming/TomcatScanPro 简介 本项目是一个针对 Tomcat 服务的弱口令检测、漏洞检测以及本地文件包含&#xff08;LFI&#xff09;攻击工具。除了支持 CVE-2017-12615 漏洞的多种利用方式外&#xff0c;新版本还集成了 CNVD-2020-104…

【XML协议】轻松掌握使用C++ XML解析库——pugixml

文章介绍了xml协议的组成以及C xml解析库pugixml的常用操作。源于开发中每次遇到xml操作时&#xff0c;都要回过头查看pugixml库常用操作时什么样的&#xff0c;能不能有个更深刻和清晰的认识呢&#xff1f;其实搞清楚xml结构和pugixml组织结构的对照关系&#xff0c;以及pugix…

《无线重构世界》射频模组演进

射频前端四大金刚 射频前端由PA、LNA、滤波器、开关“四大金刚” 不同的模块有自己的工艺和性能特点 分层设计 射频前端虽然只由PA、LNA、开关、混频器4个模块构成&#xff0c;但不同模块之间相互连接且相互影响。如果将射频系统当成一个整体来理解&#xff0c;其中的细节和…

《Python编程实训快速上手》第五天--模式匹配与正则表达式

一、不用正则表达式查找文本模式 文本模式是一种人为规定的结构&#xff0c;现在有一个模式&#xff1a;3个数字-3个数字-4个数字 使用isPhoneNumber()函数来判断字符串是否匹配该模式 def isPhoneNumber(number):if len(number) ! 12:return Falsefor i in range(0,3):if n…

文件读写函数(1)

大家好&#xff0c;今天我们来介绍一下文件读写函数&#xff0c;昨天我们已经简单提及了一下文件的概念&#xff0c;那么我们今天就不多说&#xff0c;下面我们来看函数。 1.fopen函数 这个函数是用来打开文件的&#xff0c;它的两个参数分别是文件名和文件的打开模式&#x…

华为数通HCIA系列第5次考试-【2024-46周-周一】

文章目录 1、子网掩码有什么作用&#xff0c;和IP地址是什么关系&#xff0c;利用子网掩码可以获取哪些信息&#xff1f;2、已知一个IP地址是192.168.1.1&#xff0c;子网掩码是255.255.255.0&#xff0c;求其网络地址3、已知某主机的IP地址是192.168.100.200&#xff0c;子网掩…

Linux(CentOS)运行 jar 包

1、在本地终端运行&#xff0c;关闭终端&#xff0c;程序就会终止 java -jar tlias-0.0.1-SNAPSHOT.jar 发送请求&#xff0c;成功 关闭终端&#xff08;程序也会终止&#xff09; 发送请求&#xff0c;失败 2、在远程终端运行&#xff0c;关闭终端&#xff0c;程序就会终止 …

GIT:如何查找已删除的文件的历史记录

首先你得知道文件的名称和路径 然后打开 gitlab&#xff0c;到项目中&#xff0c;仓库-> 文件 查找文件 复制文件名到可能存在过这个文件的分支当中&#xff0c;就能看到了

C++builder中的人工智能(21):Barabási–Albert model(BA)模型

在此之前&#xff0c;大多数网络被想当然的认为是随机的&#xff0c;因此连接度分布可以近似用泊松分布来表示&#xff0c;而巴拉巴西与其学生阿尔伯特、郑浩雄通过对万维网度分布测量的结果却显示万维网度分布服从幂律分布&#xff0c;存在枢纽节点&#xff08;拥有大量链接的…

新手 Vue 项目运行

前言&#xff1a;前面讲了我们已经将spingboot项目运行起来了&#xff0c;现在我们只需将后台管理的Vue项目运行起来即可完成整个项目。 在运行vue项目之前&#xff0c;请先运行springboot项目&#xff0c;运行步骤请看&#xff1a;运行Springboot Vue 项目_springbootvue项目…

AUTOSAR_EXP_ARAComAPI的7章笔记(2)

☞返回总目录 相关总结&#xff1a;服务发现实现策略总结 7.2 服务发现的实现策略 如前面章节所述&#xff0c;ara::com 期望产品供应商实现服务发现的功能。服务发现功能基本上是在 API 级别通过 FindService、OfferService 和 StopOfferService 方法定义的&#xff0c;协议…

计算机网络分析题

网络的布置 根据具体需求布置网络 第二小题、网络的划分 根据路由表作出路由器拓扑图 ARP跨网络寻址 TCP报文段格式概念 网桥的转发表与动作 网络嗅探报文 十六进制化作十进制 嗅探以太网帧首部 除MAC帧以外&#xff0c;其他各层协议数据单元都是源地址在前&#xff0c;目…

【初阶数据结构与算法】线性表之链表的分类以及双链表的定义与实现

文章目录 一、链表的分类二、双链表的实现1.双链表结构的定义2.双链表的初始化和销毁初始化函数1初始化函数2销毁函数 3.双链表的打印以及节点的申请打印函数节点的申请 4.双链表的头插和尾插头插函数尾插函数 5.双链表的查找和判空查找函数判空函数 6.双链表的头删和尾删头删函…

【AI写作宝-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

【HarmonyNext】显示提示文字的方法

【HarmonyNext】显示提示文字的方法 本文介绍在 HarmonyNext 中显示提示文字的两种常见方法&#xff1a;使用自定义弹窗 CustomDialog 和使用 promptAction 的 showToast 方法。 一、使用自定义弹窗 CustomDialog 在 HarmonyNext 中&#xff0c;自定义弹窗是实现复杂提示信…