【AI】深度学习——人工智能、深度学习与神经网络

news2024/11/16 23:34:55

文章目录

    • 0.1 如何开发一个AI系统
    • 0.2 表示学习(特征处理)
      • 0.2.1 传统特征学习
        • 特征选择
        • 特征抽取
          • 监督的特征学习
          • 无监督的特征学习
        • 特征工程作用
      • 0.2.2 语义鸿沟
      • 0.2.3 表示方式
        • 关联
      • 0.2.4 表示学习
        • 对比
    • 0.3 深度学习
      • 0.3.1 表示学习与深度学习
      • 0.3.2 深度学习概念
        • 端到端
      • 0.3.3 深度学习数学表示
    • 0.4 神经网络
      • 0.4.1 人脑神经网络
        • 神经元机制
          • 感觉神经元
          • 表征处理
        • 神经网络
        • 人认知的其他影响因素
      • 0.4.2 神经网络与智能
        • 智能的物质基础
      • 0.4.3 人工神经网络
        • 人工神经网络介绍
        • 人工神经元
        • 神经网络学习机制
          • 知识存储
        • 人工神经网络
          • 网络结构
          • 贡献度分配问题
      • 0.4.5 神经网络发展史
      • 0.4.6 激活函数
        • 激活函数性质
        • sigmod型函数(S型)
          • Logistic函数
          • Tanh函数
          • Hard-Logistic函数和Hard-Tanh函数
        • ReLU函数(斜坡型)
          • 带泄露的ReLU
          • 带参数的ReLU
          • ELU
          • Softplus函数
        • Swish函数(复合型)
        • GELU函数
        • Maxout单元

0.1 如何开发一个AI系统

专家知识(人工规则)

  • 规则:通过机器学习,让计算机自动总结规则

机器学习 ≈ \approx 构建一个映射函数(规则)

在这里插入图片描述

有明确的反馈机制
知识
知道怎么做
专家系统
不知道怎么做
容易做
机器学习
图像识别
自然语言处理
语音识别
不容易做
强化学习

0.2 表示学习(特征处理)

样本特征    ⟺    \iff 表示

机器学习流程:

在这里插入图片描述

  • 特征工程(feature engineering)——人工处理

    数据预处理:对于数据缺失多的特征,弃用

    特征提取:提取有效特征,隐含特征也需提取

    特征转换:某些冗余特征及有相关性特征,弃用或组合,形成更有效特征

  • 浅层学习:不涉及特征学习,其特征主要靠人工经验或特征转换的方法抽取

0.2.1 传统特征学习

特征选择

特征选择 是选取原始特征集合的一个有效子集,使得基于这个特征子集训练出来的模型准确率最高

  • 保留有用特征,移除冗余或无关的特征

子集搜索:假设原始特征数为 D D D ,则共有 2 D 2^D 2D 个候选子集。特征选择的目标就是选择一个最优的候选子集

常用贪心搜索策略:由空集合开始,每一轮添加该轮最优的特征,称为前向搜索(Forward Search);或者从原始特征集合
开始,每次删除最无用的特征,称为反向搜索(Backward Search).

过滤式

不依赖具体机器学习模型的特征选择方法

每次增加最有信息量的特征,或删除最没有信息量的特征

特征的信息量可以通过信息增益(Information Gain)来衡量,即引入特征后条件分布 p θ ( y ∣ x ) p_\theta(y\vert x) pθ(yx) 的不确定性(熵)的减少程度

包裹式

使用后续机器学习模型的准确率作为评价来选择一个特征子集的方法

每次增加对后续机器学习模型最有用的特征,或删除对后续机器学习任务最无用的特征.

L 1 L_1 L1 正则化

L 1 L_1 L1 正则化会导致稀疏特征,间接实现了特征选择

特征抽取

构造一个新的特征空间,并将原始特征投影在新的空间中得到新的表示

监督的特征学习

抽取对一个特定的预测任务最有用的特征

  • 线性判别分析
无监督的特征学习

和具体任务无关,其目标通常是减少冗余信息和噪声

  • 主成分分析PCA
  • 自编码器

在这里插入图片描述

特征工程作用

用较少的特征表示原始特征中的大部分信息,去掉噪声信息,并进而提高计算效率和减小维度灾难

  • 尤其是对于没有正则化的模型

0.2.2 语义鸿沟

底层特征高层语义

人们对文本、图像的理解(高层语义)无法从字符串或者图像的底层特征(底层特征)直接获得

好的表示

  • 应该具有很强的表示能力——同样的一个空间应该可表示更多的语义
  • 应该使后续的学习任务变得简单
  • 应该具有一般性,是任务或领域独立的

0.2.3 表示方式

数据表示是机器学习的核心问题

局部表示

一个语义由一个量表示

  • 离散表示

    One-Hot向量

  • 符号表示

分布式表示

一个语义由多个量共同表示

  • 压缩、低维、稠密向量

在这里插入图片描述

理解:

k k k 个维度

  • 局部表示:单个维度代表语义

    k k k 个语义

  • 分布式表示:所有维度加起来代表语义

    2 k 2^k 2k 个语义

在这里插入图片描述

关联

局部表示:配合知识库、规则使用

分布式表示:嵌入:压缩、低维、稠密

通常情况:将局部表示映射为分布式表示

  • 低维

    在这里插入图片描述

  • 稠密

    在这里插入图片描述

    相似语义靠的近,不同语义间隔大,便于后续量化

0.2.4 表示学习

通过构建模型,让其自动学习好的特征(底层特征、中层特征、高层特征),从而最终提升预测或识别的准确性

在这里插入图片描述

对比

传统特征提取

  • 线性投影(子空间)

    PCA、LDA

  • 非线性嵌入

    LLE、Isomap、谱方法

  • 自编码

区别:

  • 特征提取:基于任务或 先验 去除无用特征

    自设标准,对任务影响是好是坏并不确定,实质上也是一种特征工程

  • 表示学习:通过深度模型学习高层语义特征

    难点:没有明确目标

0.3 深度学习

0.3.1 表示学习与深度学习

一个好的表示学习策略必须具备一定深度 ,指原始数据进行非线性特征转换的次数

  • 特征重用

    指数级的表示能力,底层特征可以被高层特征重复利用

  • 抽象表示与不变性

    抽象表示需要多步构造

    在这里插入图片描述

0.3.2 深度学习概念

深度学习 = 表示学习 + 决策 ( 预测 ) 学习 ⏟ 浅层学习 深度学习=表示学习+\underbrace{决策(预测)学习}_{浅层学习} 深度学习=表示学习+浅层学习 决策(预测)学习

在这里插入图片描述

核心问题是:贡献度分配问题

在这里插入图片描述

即一个系统中不同的组件(component)或其参数对最终系统输出结果的贡献或影响

  • 强化学习 可以通过反馈机制,获取当前步的决策对最终结果影响的概率大小,进而判断当前步的贡献度大小

对于一般的深度学习,解决贡献度分配问题用 神经网络

在这里插入图片描述

端到端

整个学习过程中,没有人为干预

指在学习过程中不进行分模块或分阶段训练,直接优化任务的总体目标

传统机器学习方法 需要将一个任务的输入和输出之间人为地切割成很多子模块(或多个阶段),每个子模块分开学习

问题:

  • 每一个模块都需要单独优化,并且其优化目标和任务总体目标并不能保证一致
  • 错误传播,即前一步的错误会对后续的模型造成很大的影响.这样就增加了机器学习方法在实际应用中的难度.

0.3.3 深度学习数学表示

y = f ( x ) 浅层学习 ⇓ y = f 2 ( f 1 ( x ) ) ⇓ ⋮ ⇓ y = f K ( f K − 1 ⋯ ( f 1 ( x ) ) ) 深度学习 \begin{array}{c|l} y=f(x)&浅层学习\\ \Downarrow\\ y=f^2(f^1(x))\\ \Downarrow\\ \vdots\\ \Downarrow\\ y=f^{K}(f^{K-1}\cdots(f^1(x)))&深度学习\\ \end{array} y=f(x)y=f2(f1(x))y=fK(fK1(f1(x)))浅层学习深度学习

f ( x ) f(x) f(x) 为非线性函数,不一定连续

  • 线性模型多层嵌套仍是线性,性能不会提升

f 1 ( x ) f^1(x) f1(x) 连续时,如 f l ( x ) = σ ( W ( l ) f l − 1 ( x ) ) f^l(x)=\sigma(W^{(l)}f^{l-1}(x)) fl(x)=σ(W(l)fl1(x)) ,这个复合函数称为神经网络

0.4 神经网络

0.4.1 人脑神经网络

左半球:对语言的处理和语法表示

  • 阅读、写作、学习记忆

右半球:空间技巧

  • 空间定位、音乐
神经元机制

在这里插入图片描述

神经元:多个突触

  • 数量确定,不会增加

  • 神经元之间的联系会增加

  • 负责传递,存储,加工信息,控制行为,情感

  • 神经细胞在通过树突接收到的信号强度超过某个阈值时,就会进入激活状态,并通过轴突向上层神经细胞发送激活信号

    人类所有与意识和智能相关的活动,都是通过特定区域神经细胞间的相互激活协同工作而实现的

神经元之间传递信:电信号

  • 通过化学信号传递,突触之间通过粒子传递引起微电压的变化,神经元会发生兴奋或抑制反应,从而实现了神经信号的传递

在这里插入图片描述

通过树突汇聚信息,当信息汇聚到一定强度达到阈值,神经细胞就会兴奋

感觉神经元

感觉神经元仅对其敏感的事物属性作出反应,

  • 输入:外部事物属性一般以光波、声波、电波等方式作为输入刺激人类的生物传感器
  • 输出的感觉编码是一种可符号化的心理信息

感觉属性检测是一类将数值信息转化为符号信息的定性操作

感觉将事物属性转化为感觉编码,不仅能让大脑检测到相应属性,还在事物属性集与人脑感觉记忆集之间建立起对应关系,所以感觉属性检测又叫 感觉定性映射

神经网络对来自神经元的 各种简单映像加以组合,得到的就是关于 整合属性的感觉映像

  • 苹果又红又圆:大脑整合了苹果的颜色属性和形状属性

在感觉映射下,事物属性结构与其感觉映像结构之间应保持不变 ,感觉映像应该是树屋属性集与其感觉记忆集之间的一个同态映像。

  • 通俗说法,人脑认知是外部世界的反映——认知可归结为一个 高度抽象的加工模型
表征处理

表征处理的物质基础是神经元,大量神经元群体的同步活动是实现表征和加工的生理学机制

从信息科学的角度 ,整个加工过程可以理解为多次特征提取,提取出的特征从简单到复杂,甚至“概念”这种十分抽象的特征也可以被提取出来。

神经网络

作为一个复杂的多级系统,大脑思维来源于功能的逐级整合。

  • 神经元的功能被整合为神经网络的功能
  • 神经网络的功能被整合为神经回路的功能
  • 神经回路的功能最终被整合为大脑的思维功能

但在逐级整合的过程中,每一个层次上实现的都是 1 + 1 > 2 1+1>2 1+1>2 的效果,在较高层次上产生了较低层次的每个子系统都不具备的 突出功能

  • 思维问题不能用还原论的方法来解决,即不能靠发现单个细胞的结构和物质分子来解决。揭示出能把大量神经元组装成一个功能系统的设计原理,这才是NN的问题所在
人认知的其他影响因素

认知还和注意、情绪等系统有着极强的交互作用

0.4.2 神经网络与智能

人类智能的本质取决于 什么是认知的基本单元

  • 目前的理论和实验表明,分析的有效手段是设计科学实验加以验证

    结论:认知基本单元是知觉组织形成的 “知觉物体”

智能的物质基础

从物质基础的角度看,**人类智能 **是建立在有机物基础上的 碳基智能,而 人工智能 是建立在无机物基础上的 硅基智能

  • 归根到底,人工智能是一套软件,人工神经网络也属于硅基智能的范畴

碳基智能与硅基智能的本质区别在于架构架构决定了数据的传输与处理是否能够同时进行

  • 硅基:数据的传输与处理无法同步进行

    基于冯·诺依曼结构体系的计算机核心特征是运算单元和存储单元是分离的,两者有数据总线连接。运算单元需要从数据总线接收来自存储单元的数据,运算完成后再将运算结果通过数据总线传回给存储单元

  • 在大脑中,数据的传输和处理由突触和神经元之间的交互完成。且数据的传输和处理是同步进行的

    人的记忆过程也不仅仅是数据存储的过程,还伴随着去粗取精的提炼与整合。

数据是为了在需要时能够快速提取而存储 ——存储的作用是为了提升数据处理的有效性

0.4.3 人工神经网络

人工神经网络介绍

当下人工智能的主要研究方法是连接主义,连接主义认为智能建立在神经生理学和认知科学基础上

强调智能活动是将大量简单的单元通过复杂方式相互连接后并行运行的结果

连接主义通过人工构建神经网络方式模拟人类智能。

  1. 以工程技术手段 模拟人类神经系统的结构和功能,通过大量的 非线性并行处理器模拟 人脑中众多的 神经元,用处理器的连接关系模拟人脑神经元间的突触行为

  2. 人工神经网络 (Neural Network)指一系列受生物学和神经科学启发的数学模型

    这些模型主要是通过对人脑的神经元网络进行抽象,构建人工神经元,并按照一定的拓扑结构来建立人工神经元之间的链接

神经网络是一种 大规模的并行分布式处理器 ,天然具有存储并使用经验知识的能力。从两个方面提取大脑:

  • 网络获取的知识是通过学习来获取的
  • 内部神经元的链接强度(突触权重),用于存储获取的知识

分布式并行处理器(20世纪80年代中后期,最流行的一种连接主义模型)

  • 信息表示是分布式的(非局部的)
  • 记忆和知识的存储在单元之间的连接上
  • 通过逐渐改变神经元之间的连接强度来学习新的知识

早期模型强调模型的生物学合理性,后期更关注对某种特定认知能力的模拟(物体识别,语言理解)等

在引入 误差反向传播 来改进学习能力后,神经网络也越来越多地应用在各种机器学习任务上,即作为一种机器学习模型的神经网络

从机器学习角度,神经网络一般可以看做一个非线性模型,其基本组成单元为具有非线性激活函数的神经元,通过大量神经元之间的连接,使得神经网络成为一种高度非线性的模型。神经元之间的连接权重就是需要学习的参数,可以使用梯度下降法来进行学习

人工神经元

1943 年,美国芝加哥大学的神经科学家沃伦·麦卡洛克和他的助手沃尔特·皮茨发表了论文《神经活动中思想内在性的逻辑演算》(A Logical Calculus of Ideas Immanent in Nervous Activity), 标志着人工神经网络的诞生

MP神经元 接受一个或多个输入,并对输入的线性加权进行非线性处理以产生输出

在这里插入图片描述

  • 在MP神经元中 输入和输出 都限定为二进制信号

    假设一个神经元接收 D D D 个输入 x 1 , x 2 , ⋯   , x D x_1,x_2,\cdots,x_D x1,x2,,xD ,令向量 x = [ x 1 ; x 2 ; ⋯   ; x D ] x=[x_1;x_2;\cdots;x_D] x=[x1;x2;;xD] 来表示这组输入,并用 净输入 z ∈ R z\in \R zR 表示一个神经元所获得的输入信号 x x x 的加权和
    z = ∑ d = 1 D ω d x d + b = ω T x + b z=\sum\limits_{d=1}^D\omega_dx_d+b=\omega^Tx+b z=d=1Dωdxd+b=ωTx+b
    其中 ω = [ ω 1 ; ω 2 ; ⋯   ; ω D ] ∈ R \omega=[\omega_1;\omega_2;\cdots;\omega_D]\in \R ω=[ω1;ω2;;ωD]R 是D维的权重向量, b ∈ R b\in \R bR 是偏置

  • 净输入 z z z 在经过一个非线性函数 f ( ⋅ ) f(\cdot) f() 后,得到神经元的活性值 α = f ( z ) \alpha=f(z) α=f(z) ,其中非线性函数 f ( ⋅ ) f(\cdot) f() 称为 激活函数

    MP神经元使用的激活函数是符号函数:以预先设定的阈值作为参数:当输入大于阈值,输出1;反之输出0

激活函数分类0.4.6

MP神经元的工作形式类似与数字电路中的逻辑门

  • 缺乏AI 中重要的特性——学习机制
神经网络学习机制

在这里插入图片描述

核心观点是 学习过程主要是通过神经元之间突触的形成和变化来实现

  • 两个神经细胞之间通过神经元进行交流越多,二者之间的联系就会被强化,学习效果也在联系强化过程中产生

赫布理论 给出了改变模型神经元之间权重的准则

  • 如果两个神经元同时被激活,它们的权重就应该增加
  • 如果分别被激活,两者之间的权重就应该降低
  • 如果两个结点倾向于同时输出相同的结果,二者有较强的正值权重
  • 如果两个结点倾向于同时输出相反的结果,二者有较强的负值权重

赫布理论并不能用于改善MP神经元,因为MP神经元中的权重 ω i \omega_i ωi 都是固定不变的,不能做出动态调整

知识存储

知识存储在人脑之间的神经元连接上

记忆

  • 长期记忆:如果一个经验重复足够次数,此经验就可存储在长期记忆中
  • 短期记忆:持续时间不超过一分钟

短期记忆转化为长期记忆的过程称为凝固作用

  • 海马区
人工神经网络

神经网络天然不是深度学习,但是 深度学习天然是神经网络

在这里插入图片描述

y = f 3 ( f 2 ( f 1 ( x ) ) ) y=f^{3}(f^{2}(f^1(x))) y=f3(f2(f1(x)))
人工神经网络主要由大量的神经元以及它们之间的有向连接构成

  • 神经元间的激活规则

    非线性函数

  • 网络结构

  • 学习算法:通过训练数据来学习神经网络的参数

网络结构

通过一定的连接方式或信息传递方式进行协作的神经元可以看作一个网络,就是神经网络.

在这里插入图片描述

前馈网络

各个神经元按接收信息的先后分为不同的组。

每一组可以看作一个神经层,每一层中的神经元接收前一层神经元的输出,并输出到下一层神经元

整个网络中的信息是朝一个方向传播,没有反向的信息传播,可以用一个有向无环路图表示

  • 全连接前馈网络
  • 卷积神经网络

可以看做非线性函数的多次复合,实现输入空间到输出空间的复杂映射

记忆网络(反馈网络)

网络中神经元不但可以接收其他神经元的信息,也可以接收自己的历史信息

记忆网络中的神经元具有记忆功能,在不同的时刻具有不同的状态——记忆

记忆神经网络中的信息传播可以是单向或双向传递,可以用一个有向循环图或无向图表示

  • 循环神经网络
  • Hopfield网络
  • 玻尔兹曼机
  • 受限玻尔兹曼机

可以看做一个程序,具有更强的计算和记忆能力

改进:增强记忆网络的记忆容量,引入外部记忆单元和读写机制——记忆增强网络

  • 神经图灵机
  • 记忆网络

图网络

前馈网络和记忆网络的输入都可以表示为向量或向量序列

实际应用中图结构的数据很多,如(知识图谱、社交网络、分子网络),前馈网络和记忆网络很难处理图结构的数据

图网络是定义在图结构数据上的神经网络,图中每个节点都由一个或一组神经元构成

节点之间的链接可以有向或无向,都可以接收来自邻接节点或自身结点的信息

  • 图卷积网络
  • 图注意力网络
  • 消息传递神经网络
贡献度分配问题

偏导数
∂ y ∂ ω l = y ( ω l + Δ ω ) − y ( ω l ) Δ ω \frac{\partial y}{\partial \omega^{l}}=\frac{y(\omega^l+\Delta \omega)-y(\omega^l)}{\Delta \omega} ωly=Δωy(ωl+Δω)y(ωl)
若某个参数 ω i \omega^i ωi 对结果很重要,则该参数有微小扰动,对于结果 y y y 的影响也会很大,贡献度也会很大

0.4.5 神经网络发展史

第一阶段:模型提出

在这里插入图片描述

第二阶段:冰河期

在这里插入图片描述

在这里插入图片描述

第三阶段:反向传播算法引起的复兴

在这里插入图片描述

第四阶段:流行度降低

在这里插入图片描述

第五阶段:深度学习的崛起

在这里插入图片描述

0.4.6 激活函数

激活函数性质
  • 连续并可导(允许少数点上不可导)的非线性函数,可导的激活函数可以直接用数值优化的方法来学习网络参数
  • 激活函数机器导函数尽可能简单,有利于提高网络计算效率
  • 激活函数的导函数至于要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性

在这里插入图片描述

在这里插入图片描述

sigmod型函数(S型)

sigmod型函数指一类 S 型曲线函数,为两端饱和函数

  • logistic函数
  • Tanh函数

在这里插入图片描述

饱和:对于函数 f ( x ) f(x) f(x) ,若 x → − ∞ x\rightarrow -\infty x ,其导数 f ′ ( x ) → 0 f'(x)\rightarrow 0 f(x)0 ,则称其为左饱和;若 x → + ∞ x\rightarrow +\infty x+ ,其导函数 f ′ ( x ) → 0 f'(x)\rightarrow 0 f(x)0 ,则称其为右饱和

Logistic函数

σ ( x ) = 1 1 + e − x ∈ ( 0 , 1 ) \sigma(x)=\frac{1}{1+e^{-x}}\in(0,1) σ(x)=1+ex1(0,1)

当输入值在 0 0 0 附近时,Sigmoid 型函数近似为线性函数;当输入值靠近两端时,对输入进行抑制.输入越小,越接近于 0 0 0 ;输入越大,越接近于 1 1 1

  • 输出可以直接看做概率分布(非负性)
  • 可以看做一个逻辑门,用来控制其他神经元输出信息的数量(饱和性)

非零中心化的输出(Logistic函数),会使其后一层的神经元输入发生偏置偏移,并进一步使得梯度下降的收敛速度变慢


假设:
y = f ( ω ⋅ σ ( x ) ) ∂ y ∂ ω = f ′ ( ) σ ( x ) y=f(\omega\cdot \sigma(x))\\ \frac{\partial y}{\partial \omega}=f'()\sigma(x) y=f(ωσ(x))ωy=f()σ(x)
由于 σ ( x ) \sigma(x) σ(x) 非负,其后一层神经元梯度要么全正,要么全负( f ′ ( ) f'() f() 决定)

在这里插入图片描述

梯度下降效率变低,一次只能朝着某一方向向最优梯度下降,其余梯度为零


  • 数据归一化为零中心
  • 偏置: σ ( x ) + b \sigma(x)+b σ(x)+b
Tanh函数

t a n h ( x ) = e x − e − x e x + e − x ∈ ( − 1 , 1 ) = 2 σ ( 2 x ) − 1 \begin{aligned} tanh(x)&=\frac{e^x-e^{-x}}{e^x+e^{-x}}\in (-1,1)\\ &=2\sigma(2x)-1 \end{aligned} tanh(x)=ex+exexex(1,1)=2σ(2x)1

  • 饱和函数
  • Tanh函数的输出是零中心化的
Hard-Logistic函数和Hard-Tanh函数

Logistic函数和TanH函数都是Sigmod型函数,但由于饱和性,计算开销比较大。

  • 在中间近似线性,两端饱和

可以通过分段函数来近似中间的线性部分

在0附近1阶泰勒展开,
g l ( x ) ≈ σ ( 0 ) + x σ ′ ( x ) = 0.25 x + 0.5 \begin{aligned} g_l(x)&\approx\sigma(0)+x\sigma'(x)\\ &=0.25x+0.5 \end{aligned} gl(x)σ(0)+xσ(x)=0.25x+0.5

h a r d − l o g i s t i c ( x ) = { 1 g l ( x ) ≥ 1 g l ( x ) 0 < g l ( x ) < 1 0 g l ( x ) ≤ 0 = max ⁡ ( min ⁡ ( g l ( x ) , 1 ) , 0 ) = max ⁡ ( min ⁡ ( 0.25 x + 0.5 , 1 ) , 0 ) \begin{aligned} hard-logistic(x)&=\begin{cases} 1&g_l(x)\ge 1\\ g_l(x)&0<g_l(x)<1\\ 0&g_l(x)\le 0 \end{cases}\\ &=\max(\min(g_l(x),1),0)\\ &=\max(\min(0.25x+0.5,1),0) \end{aligned} hardlogistic(x)= 1gl(x)0gl(x)10<gl(x)<1gl(x)0=max(min(gl(x),1),0)=max(min(0.25x+0.5,1),0)


g t ( x ) ≈ tanh ⁡ ( 0 ) + x tanh ⁡ ′ ( x ) = x \begin{aligned} g_t(x)&\approx\tanh(0)+x\tanh'(x)\\ &=x \end{aligned} gt(x)tanh(0)+xtanh(x)=x

h a r d − t a n h ( x ) = { 1 g t ( x ) ≥ 1 g t ( x ) − 1 < g t ( x ) < 1 − 1 g t ( x ) ≤ − 1 = max ⁡ ( min ⁡ ( g t ( x ) , 1 ) , − 1 ) = max ⁡ ( min ⁡ ( x , 1 ) , − 1 ) \begin{aligned} hard-tanh(x)&=\begin{cases} 1&g_t(x)\ge 1\\ g_t(x)&-1<g_t(x)<1\\ -1&g_t(x)\le -1 \end{cases}\\ &=\max(\min(g_t(x),1),-1)\\ &=\max(\min(x,1),-1) \end{aligned} hardtanh(x)= 1gt(x)1gt(x)11<gt(x)<1gt(x)1=max(min(gt(x),1),1)=max(min(x,1),1)

在这里插入图片描述

ReLU函数(斜坡型)

修正线性单元,也叫 Rectifier 函数,是目前深度神经网络中常用的激活函数
R e L U ( x ) = { x x ≥ 0 0 x < 0 = max ⁡ ( 0 , x ) \begin{aligned} ReLU(x)&=\begin{cases} x&x\ge 0\\ 0&x<0 \end{cases}\\ &=\max(0,x) \end{aligned} ReLU(x)={x0x0x<0=max(0,x)
优点

  • 计算高效:采用ReLU 的神经元只需要进行加、乘和比较的操作

  • 具有生物学合理性:在生物神经网络中,同时处于兴奋状态的神经元非常稀疏。

    sigmod会导致一个非稀疏的神经网络

    ReLU具有很好的稀疏性,大约 50 % 50\% 50% 的神经元处于激活状态——单侧抑制、宽兴奋边界

  • 在一定程度上缓解了神经网络的梯度消失问题:ReLU函数为左饱和函数,且在 x > 0 x>0 x>0 时,导数为 1 1 1 ,加速梯度下降的收敛速度

缺点

  • 非零中心化,后一层神经网络引入偏置偏移,影响梯度下降的效率
  • 死亡ReLU问题:如果参数在一次不恰当的更新后,第一个隐藏层中的某个ReLU 神经元在所有的训练数据上都不能被激活,那么这个神经元自身参数的梯度永远都会是0,在以后的训练过程中永远不能被激活
带泄露的ReLU

在输入 x < 0 x<0 x<0 时,保持一个很小的梯度 γ \gamma γ

当神经元非激活时,也能有一个非零的梯度可以更新参数,避免永远不能被激活

L e a k y R e L U ( x ) = { x x > 0 γ x x ≤ 0 = max ⁡ ( 0 , x ) + γ min ⁡ ( 0 , x ) \begin{aligned} LeakyReLU(x)&=\begin{cases} x&x>0\\ \gamma x&x\le 0 \end{cases}\\ &=\max(0,x)+\gamma\min(0,x) \end{aligned} LeakyReLU(x)={xγxx>0x0=max(0,x)+γmin(0,x)

γ \gamma γ 通常为很小的常数,如 γ = 0.01 \gamma=0.01 γ=0.01 ,带泄露的 ReLU也可以写成
L e a k y R e L U ( x ) = max ⁡ ( x , γ x ) LeakyReLU(x)=\max(x,\gamma x) LeakyReLU(x)=max(x,γx)

带参数的ReLU

引入一个可学习的参数,不同神经元可以有不同的参数

对于第 i i i 个神经元,其PReLU定义为
P R e L U i ( x ) = { x x > 0 γ i x x ≤ 0 = max ⁡ ( 0 , x ) + γ i min ⁡ ( 0 , x ) \begin{aligned} PReLU_i(x)&=\begin{cases} x&x>0\\ \gamma_i x&x\le 0 \end{cases}\\ &=\max(0,x)+\gamma_i\min(0,x) \end{aligned} PReLUi(x)={xγixx>0x0=max(0,x)+γimin(0,x)
P R e L U PReLU PReLU 是非饱和函数,允许不同的神经元有不同的参数,也可以共享一个参数

  • γ i = 0 \gamma_i=0 γi=0 ,则 P R e L U PReLU PReLU 退化为 R e L U ReLU ReLU
  • γ i \gamma_i γi 是一个很小的常数,则 P R e L U PReLU PReLU 可以看做带泄露的 R e L U ReLU ReLU
ELU

近似的零中心化的非线性函数

E L U ( x ) = { x x > 0 γ ( e x − 1 ) x ≤ 0 = max ⁡ ( 0 , x ) + min ⁡ ( 0 , γ ( e x − 1 ) ) \begin{aligned} ELU(x)&=\begin{cases} x&x>0\\ \gamma(e^x-1)&x\le 0 \end{cases}\\ &=\max(0,x)+\min(0,\gamma(e^x-1)) \end{aligned} ELU(x)={xγ(ex1)x>0x0=max(0,x)+min(0,γ(ex1))

γ ≥ 0 \gamma\ge 0 γ0 是一个超参数,决定 x ≤ 0 x\le 0 x0 时的饱和曲线,并调整输出均值在0附近

Softplus函数

可以看做ReLU的平滑版本

S o f t p l u s ( x ) = log ⁡ ( 1 + e x ) Softplus(x)=\log(1+e^x) Softplus(x)=log(1+ex)

其导数刚好为 L o g i s t i c Logistic Logistic 函数

  • 有单侧抑制,宽兴奋边界
  • 没有稀疏激活性

在这里插入图片描述

Swish函数(复合型)

自门控激活函数(软门控——允许信息通过的多少 σ ( x ) ∈ { 0 , 1 } \sigma(x)\in\{0,1\} σ(x){0,1})

s w i s h ( x ) = x σ ( β x ) swish(x)=x\sigma(\beta x) swish(x)=xσ(βx)

其中 σ ( ⋅ ) \sigma(\cdot) σ() L o g i s t i c Logistic Logistic 函数, β \beta β 为可学习的参数或一个固定的超参数

  • σ ( β x ) \sigma(\beta x) σ(βx) 接近于1时,门处于开状态,激活函数输出近似于 x x x 本身
  • σ ( β x ) \sigma(\beta x) σ(βx) 接近于0时,门处于关状态,激活函数的输出近似于0

在这里插入图片描述

Swish函数可以看做线性函数和ReLU函数之间的非线性插值,其程度由 β \beta β 控制

  • β = 0 \beta=0 β=0 时,Swish函数变为线性函数 x 2 \frac{x}{2} 2x

  • β = 1 \beta=1 β=1 时,

    x > 0 x>0 x>0 时,近似线性

    x < 0 x<0 x<0 时,近似饱和,具有一定单调性

  • β → + ∞ \beta\rightarrow +\infty β+ 时, σ ( β x ) \sigma(\beta x) σ(βx) 趋向于离散的 0 − 1 0-1 01 函数

GELU函数

高斯误差线性单元,与Swish函数类似

G E L U ( x ) = x P ( X ≤ x ) , X ∼ N ( μ , σ 2 ) GELU(x)=xP(X\le x),X\sim \mathcal{N}(\mu,\sigma^2) GELU(x)=xP(Xx),XN(μ,σ2)

其中, μ , σ \mu,\sigma μ,σ 为超参数,一般设 μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1

P ( X ≤ x ) P(X\le x) P(Xx) 为高斯分布的累计函数,为S型函数,可以用 L o g i s t i c Logistic Logistic 函数或 T a n h Tanh Tanh 函数近似
G E L U ( x ) ≈ 0.5 x [ 1 + tanh ⁡ ( 2 π ( x + 0.044715 x 3 ) ) ] G E L U ( x ) ≈ x σ ( 1.702 x ) GELU(x)\approx 0.5x\left[1+\tanh\left(\frac{2}{\pi}(x+0.044715x^3)\right)\right]\\ GELU(x)\approx x\sigma(1.702x) GELU(x)0.5x[1+tanh(π2(x+0.044715x3))]GELU(x)xσ(1.702x)

Maxout单元

Maxout单元也是一种S型分段线性函数

Maxout单元的输入是上一层神经元的全部原始输出, x = [ x 1 ; x 2 ; ⋯   ; x D ] x=[x_1;x_2;\cdots;x_D] x=[x1;x2;;xD]

每个Maxout单元有 K K K 个权重向量 ω k ∈ R D \omega_k\in \R^D ωkRD 和偏置 b k ( 1 ≤ k ≤ K ) b_k(1\le k\le K) bk(1kK) ,对于输入 x x x ,可以得到 K K K 个净输入 z k z_k zk
z k = ω k x + b k , ω k = [ ω k ( 1 ) , ω k ( 2 ) , ⋯   , ω k ( D ) ] z_k=\omega_kx+b_k,\omega_k=\left[\omega_{k}^{(1)},\omega_k^{(2)},\cdots,\omega_k^{(D)}\right] zk=ωkx+bkωk=[ωk(1),ωk(2),,ωk(D)]
Maxout单元的非线性函数定义为
m a x o u t ( x ) = max ⁡ k ∈ [ 1 , K ] ( z k ) maxout(x)=\max\limits_{k\in [1,K]}(z_k) maxout(x)=k[1,K]max(zk)
Maxout单元不单是净输入到输出之间的非线性映射,而是整体学习输入到输出之间的非线性映射关系

Maxout激活函数可以看做任意凸函数的分段线性近似

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

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

相关文章

vue2踩坑之项目:Swiper轮播图使用

首先安装swiper插件 npm i swiper5 安装出现错误&#xff1a;npm ERR npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/esl…

数据结构与算法(七):搜索算法

参考引用 Hello 算法 Github&#xff1a;hello-algo 1. 二分查找 二分查找&#xff08;binary search&#xff09;是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮减少一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止 给定一个长度为 n 的…

WebDAV之π-Disk派盘 + 咕咚云图

咕咚云图是一款强大的图床传图软件,它能够让您高效地对手机中的各种图片进行github传输,多个平台快速编码上传,支持远程删除不需要的图片,传输过程安全稳定,让您可以很好的进行玩机或者其他操作。 可帮你上传手机图片到图床上,并生成 markdown 链接,支持七牛云、阿里云…

SRM系统快速便捷退货的解决方案

一、SRM系统简介&#xff1a; SRM系统是一种基于互联网技术的供应链管理解决方案&#xff0c;旨在加强供应商与采购商之间的合作关系&#xff0c;优化供应链的效率和可靠性。它提供了一系列功能模块&#xff0c;包括采购管理、供应商管理、订单管理、物流管理等。其中&#xf…

平衡小车调车保姆式教程

前言 &#xff08;1&#xff09;硬件选型注意点&#xff1a;电机转速、轮子大小 &#xff08;2&#xff09;车模硬件结构注意点&#xff1a;车模整体的重量要分布均匀&#xff0c;利于平衡 &#xff08;3&#xff09;硬件主要模块&#xff1a;陀螺仪、编码器电机、显示屏、驱动…

ElasticSearch搜索引擎:数据的写入流程

一、ElasticSearch 写数据的总体流程&#xff1a; &#xff08;1&#xff09;ES 客户端选择一个节点 node 发送请求过去&#xff0c;这个节点就是协调节点 coordinating node &#xff08;2&#xff09;协调节点对 document 进行路由&#xff0c;通过 hash 算法计算出数据应该…

设计模式 - 结构型模式考点篇:适配器模式(类适配器、对象适配器、接口适配器)

目录 一、适配器模式 一句话概括结构式模式 1.1、适配器模式概述 1.2、案例 1.2.1、类适配器模式实现案例 1.2.2、对象适配器 1.2.3、接口适配器 1.3、优缺点&#xff08;对象适配器模式&#xff09; 1.4、应用场景 一、适配器模式 一句话概括结构式模式 教你将类和对…

剑指offer——JZ68 二叉搜索树的最近公共祖先 解题思路与具体代码【C++】

一、题目描述与要求 二叉搜索树的最近公共祖先_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q&#xff0c;最近公共祖先LCA(T,p,q)表示一个节点x&#…

头戴式耳机哪个牌子音质好?Y2K的福音!Umelody轻律 U1头戴式耳机分享

作为一款国产头戴式蓝牙耳机&#xff0c;Umelody轻律 U1绝对是性价比之选&#xff0c;可以说是Y2K的福音&#xff0c;复古味十足的设计&#xff0c;快捷方便的蓝牙连接和多功能实用的操作方式&#xff0c;最关键的还是价格低&#xff0c;300元的价格不到就可以拿下。 创始团队…

在Remix中编写你的第一份智能合约

智能合约简单来讲就是&#xff1a;部署在去中心化区块链上的一个合约或者一组指令&#xff0c;当这个合约或者这组指令被部署以后&#xff0c;它就不能被改变了&#xff0c;并会自动执行&#xff0c;每个人都可以看到合约里面的条款。更深层次的理解就是&#xff1a;这些代码会…

vue实现自定义滚动条

vue实现自定义滚动条 具体效果如下&#xff0c;这边我用的rem单位&#xff0c;比例是1:40&#xff0c; 先写下页面布局&#xff0c;把原生的滚动条给隐藏掉&#xff0c;给自定义的滑块增加transition: marginLeft 1s linear;可以使左边距过度的更顺滑 .top-box-2::-webkit-scr…

基于spso算法的航线规划

matlab2020a GitHub - duongpm/SPSO: Spherical Vector-based Particle Swarm Optimization

智能集成式电力电容器在山东某环保材料制造厂中的应用-安科瑞黄安南

摘要 分析智能集成式电力电容的工作原理及功能&#xff0c;结合山东环保材料制造厂配电现状&#xff0c;选择经济可靠的方案&#xff0c;智能电容过零投切与低功耗&#xff0c;解决了继电器投切产生涌流的问题&#xff1b;接线简单&#xff0c;扩容方便&#xff0c;解决无功补…

MIPS汇编语言实现hello world和冒泡排序

WinMIPS64的IO方法输出hello world 编写一个简单的终端输出“Hello World&#xff01;&#xff01;”的小程序&#xff0c;首先写好一些数据包括CONTROL和DATA的地址以及字符串Hello World&#xff0c;然后将CONTROL和DATA的地址存储在寄存器中以之作为基址&#xff0c;将字符…

零基础快速自学SQL,2天足矣。

此文是《10周入门数据分析》系列的第6篇。 想了解学习路线&#xff0c;可以先行阅读“ 学习计划 | 10周入门数据分析 ” 上一篇分享了数据库的基础知识&#xff0c;以及如何安装数据库&#xff0c;今天这篇分享数据库操作和SQL。 SQL全称是 Structured Query Language&#x…

什么是Web组件(Web Components)?它们的主要部分有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

深度学习笔记之优化算法(五)AdaGrad算法的简单认识

机器学习笔记之优化算法——AdaGrad算法的简单认识 引言回顾&#xff1a;动量法与Nesterov动量法优化学习率的合理性AdaGrad算法的简单认识AdaGrad的算法过程描述 引言 上一节对 Nesterov \text{Nesterov} Nesterov动量法进行了简单认识&#xff0c;本节将介绍 AdaGrad \text{…

华为云云耀云服务器L实例评测|测试CentOS的网络配置和访问控制

目录 引言 1 理解几个基础概念 2 配置VPC、子网以及路由表 3 配置安全组策略和访问控制规则 3.1 安全组策略和访问控制简介 3.2 配置安全组策略 3.3 安全组的最佳实践 结论 引言 在云计算时代&#xff0c;网络配置和访问控制是确保您的CentOS虚拟机在云环境中安全运行的…

每个前端都要学的【前端自动化部署】,Devops,CI/CD

原文发布于&#xff1a;2023-09-21 11:50 作者&#xff1a;65岁退休Coder 原文链接&#xff1a;https://juejin.cn/post/7102360505313918983 DevOps 当我们提到 Jenkins&#xff0c;大家首先想到的概念就是 CI/CD&#xff0c;在这之前我们应该再了解一个概念。 DevOps&#…

3.springcloudalibaba gateway项目搭建

文章目录 前言一、搭建gateway项目1.1 pom配置1.2 新增配置如下 二、新增server服务2.1 pom配置2.2新增测试接口如下 三、测试验证3.1 分别启动两个服务&#xff0c;查看nacos是否注册成功3.2 测试 总结 前言 前面已经完成了springcloudalibaba项目搭建&#xff0c;接下来搭建…