AI基础知识

目录

  • 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.xdnf.cn/news/12079.html

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

相关文章

01背包问题(DP)

2. 01背包问题 - AcWing题库 DP做题思路分析 实现代码&#xff1a; #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n , m; int v[N],w[N],dp[N][N];int main() {cin >> n >> m;for (int i 1;i < n;i) {ci…

如何提升自媒体发稿效果,必须掌握的几个技巧

在自媒体时代&#xff0c;发稿效果直接关系到内容的传播力与影响力。为了提升自媒体发稿效果&#xff0c;有几个关键技巧是每位自媒体人必须掌握的。以下是对这些技巧的详细阐述&#xff1a; 一、明确受众定位 首先&#xff0c;自媒体人需要明确自己的受众群体。这包括受众的…

充电桩基础设施的时空大数据分析:以深圳市为例

随着全球对可持续交通解决方案的需求不断增长&#xff0c;电动汽车&#xff08;EV&#xff09;作为减少交通领域碳排放的重要手段&#xff0c;受到了广泛的关注。然而&#xff0c;电动汽车的普及和发展面临着诸多挑战&#xff0c;其中充电基础设施的建设和管理尤为关键。为了更…

将数组中的数据反向输出(数组,函数)

将数组中的数据反向输出&#xff0c;用数组名作函数参数 swap函数是用来实现数组中元素前后的调换&#xff0c;用这种方式来实现数组中元素的逆序输出 #include <stdio.h> #include <stdlib.h> void swap(int m[],int n); int main() {int a[]{1,2,3,4,5,6,7,8,9,…

【Matlab算法】MATLAB实现基于小波变换的信号去噪(附MATLAB完整代码)

MATLAB实现基于小波变换的信号去噪 结果图前言正文1. 小波变换理论基础1.1 小波变换的数学模型1.2 离散小波变换原理2. 信号去噪方法2.1 去噪算法流程2.2 阈值处理方法3. 核心函数解析3.1 wavedec函数3.2 wthresh函数代码实现4.1 信号生成4.2 小波变换去噪完整代码总结参考文献…

01-JavaSE课程总体介绍

适合人群 课程体系 学完本阶段&#xff0c;至少得到以下收货 学习内容&#xff08;视频课件源码&#xff09; 资料领取 JavaSE课程 更多资料获取&#xff0c;请联系星主

Linux( 权限+特殊权限 图片+大白话)

后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都会及时修改的&#xff01; 在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频 王晓春老师的个人空间…

【Python】python商品营销策略数据分析可视化(源码+数据+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Python 爬虫运行状态监控:进度、错误与完成情况

Python 爬虫运行状态监控&#xff1a;进度、错误与完成情况 在进行大规模数据爬取时&#xff0c;监控爬虫的运行状态至关重要。通过实时监控&#xff0c;可以了解爬虫的工作进度、出现的错误以及任务完成情况。这样可以及时发现并解决问题&#xff0c;确保数据抓取任务顺利进行…

内核tracepoint的注册回调及添加的方法

一、背景 内核开发时往往需要做一些内核态函数的监测或者内核状态的监测&#xff0c;就需要用一些调试手段来观测。常用的内核态的观测如kprobe和tracepoint&#xff0c;但是kprobe往往受制于一些系统的限制&#xff0c;很多系统并没有打开kprobe选项&#xff0c;这样我们不能…

全网最详细的自动化测试(Jenkins 篇)

学习 Jenkins 自动化测试的系列文章 Robot Framework 概念Robot Framework 安装Pycharm Robot Framework 环境搭建Robot Framework 介绍Jenkins 自动化测试 1. Robot Framework 概念 Robot Framework是一个基于Python的&#xff0c;可扩展的关键字驱动的自动化测试框架。 …

区块链技术在知识产权保护中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 区块链技术在知识产权保护中的应用 区块链技术在知识产权保护中的应用 区块链技术在知识产权保护中的应用 引言 区块链技术概述 …

项目管理中不可或缺的能力

在现代企业中&#xff0c;项目管理是一项至关重要的能力。项目管理需要具备的能力包括&#xff1a;有效的沟通能力、团队协作能力、时间管理能力、风险管理能力、以及问题解决能力。 其中&#xff0c;有效的沟通能力尤为重要&#xff0c;它不仅涉及到信息的传递&#xff0c;还包…

HCIP快速生成树 RSTP

STP&#xff08;Spanning Tree Protocol&#xff0c;生成树协议&#xff09;和RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成树协议&#xff09;都是用于在局域网中消除环路的网络协议。 STP&#xff08;生成树协议&#xff09; 基本概念&#xff1a; ST…

YOLOv11实战PCB电路板缺陷识别

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对PCB电路板缺陷数据集进行训练和优化&#xff0c;该数据集包含丰富的PCB电路板…

把握鸿蒙生态崛起的机遇:开发者视角的探讨

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; 近年来&#xff0c;鸿蒙系统&#xff08;HarmonyOS&#xff09;的发展备受瞩目。随着其在智能手机、智能穿戴、车载系统和智能家居等领域的广泛应用&#xff0c;鸿蒙系统正逐渐形成与安卓、iOS并列的三足鼎立…

丹摩征文活动|FLUX.1+ComfyUI高效部署策略与实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 丹摩征文 1. FLUX.1简介2. 部署流程创建资源登录实例部署ComfyUI部署FLUX.1 3. 使用流程运行FLUX.1 4. 导入工作流5. 实践感想 前言&#xf…

ChanCMS:牛气的开源cms,帮助我们打造个性化内容管理系统的利器,一款功能强大的开源CMS系统

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 ChanCMS是一个基于Java的开源内容管理系统&#xff0c;它采用Spring Boot框架进行开发&#xff0c;具有良好的模块化和扩展性。通过ChanCMS&#xff0…

《怪物猎人:世界》风灵月影修改器功能说明以及使用说明

《怪物猎人&#xff1a;世界》风灵月影修改器能调整游戏数据&#xff0c;如按1键获无限生命&#xff0c;2键开启无敌/无视伤害&#xff0c;3键享无限体力&#xff0c;Ctrl1组合键编辑金钱等&#xff0c;助力玩家轻松通关。为提升您的游戏体验! 修改器安装&#xff1a; https:/…

Python从0到100(七十一):Python OpenCV-OpenCV进行红绿灯识别

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…