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

文章目录

    • 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.mzph.cn/news/98982.shtml

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

相关文章

云原生Kubernetes:K8S集群kubectl命令汇总

目录 一、理论 1.概念 2. kubectl 帮助方法 3.kubectl 子命令使用分类 4.使用kubectl 命令的必要环境 5.kubectl 详细命令 一、理论 1.概念 kubectl是一个命令行工具&#xff0c;通过跟 K8S 集群的 API Server 通信&#xff0c;来执行集群的管理工作。 kubectl命令是操…

智慧楼宇3D数据可视化大屏交互展示实现了楼宇能源的高效、智能、精细化管控

智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施&#xff0c;以实现对园区的全面监控、管理和服务的一种建筑形态。通过将园区内设备、设施和系统联网&#xff0c;实现数据的传输、共享和响应&#xff0c;提高园区的管理效率和运营效益&#xff0c;为居…

增强现实抬头显示AR-HUD

增强现实抬头显示&#xff08;AR-HUD&#xff09;可以将当前车身状态、障碍物提醒等信息3D投影在前挡风玻璃上&#xff0c;并通过自研的AR-Creator算法&#xff0c;融合实际道路场景进行导航&#xff0c;使驾驶员无需低头即可了解车辆实时行驶状况。结合DMS系统&#xff0c;可以…

一个rar压缩包如何分成三个?

一个rar压缩包体积太大了&#xff0c;想要将压缩包分为三个&#xff0c;该如何做到&#xff1f;其实很简单&#xff0c;方法就在我们经常使用的WinRAR当中。 我们先将压缩包内的文件解压出来&#xff0c;然后查看一下&#xff0c;然后打开WinRAR软件&#xff0c;找到文件&…

7个在Github上的flutter开源程序

阅读大量代码是提高开发技能的最佳方法之一。该开源项目是了解最佳实践、编码风格和许多其他主题的最佳场所。 软件开发最受欢迎的领域之一是跨平台移动应用程序开发。Flutter 是您可以使用的最流行的跨平台移动应用程序开发工具之一。今天&#xff0c;我们将了解 7 个开源 Flu…

2023年中国烹饪机器人市场发展概况分析:整体规模较小,市场仍处于培育期[图]

烹饪机器人仍属于家用电器范畴&#xff0c;是烹饪小家电的进一步细分&#xff0c;它是烹饪小家电、人工智能和服务机器在厨房领域的融合。烹饪机器人是一种智能化厨房设备&#xff0c;可以根据预设的程序实现自动翻炒和烹饪&#xff0c;是多功能料理机和炒菜机结合的产物。 烹…

动画圆圈文字标志效果

效果展示 CSS 知识点 实现圆圈文字animation 属性回顾 实现思路 从效果的实现思路很简单&#xff0c;其实就是两个圆圈就可以实现。外层大圆&#xff08;灰色&#xff09;用于圆圈文字的展示&#xff0c;而内圆&#xff08;藏青色&#xff09;主要用于存放 Logo 图片。布局采…

OpenCV4(C++)—— 仿射变换、透射变换和极坐标变换

文章目录 一、仿射变换1. getRotationMatrix2D()2. warpAffine() 二、透射变换三、极坐标变换 一、仿射变换 在OpenCV中没有专门用于图像旋转的函数&#xff0c;而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确定旋转角度和旋转中心&#xff0c;之后确定旋转…

c#设计模式-行为型模式 之 状态模式

&#x1f680;简介 状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为&#xff0c;我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后&#xff0c;我们可以创建一个上下文类&#xff0c;它会根据其当前的状态对象来改…

CUDA+cuDNN+TensorRT 配置避坑指南

深度学习模型加速部署的环境配置&#xff0c;需要在本地安装NVIDIA的一些工具链和软件包&#xff0c;这是一个些许繁琐的过程&#xff0c;而且一步错&#xff0c;步步错。笔者将会根据自己的经验来提供建议&#xff0c;减少踩坑几率。当然可以完全按照官方教程操作&#xff0c;…

【Sentinel】Sentinel原码分析

本文内容来自【黑马】Sentinel从使用到源码解读笔记&#xff0c;做了部分修改和补充 目录 Sentinel 基本概念 基本流程 Node Entry 定义资源的两种方式 使用try-catch定义资源 使用注解标记资源 基于注解标记资源的实现原理 Context 什么是Context Context的初始化 …

SpringBoot青海省旅游系统

本系统采用基于JAVA语言实现、架构模式选择B/S架构&#xff0c;Tomcat7.0及以上作为运行服务器支持&#xff0c;基于JAVA、JSP等主要技术和框架设计&#xff0c;idea作为开发环境&#xff0c;数据库采用MYSQL5.7以上。 开发环境&#xff1a; JDK版本&#xff1a;JDK1.8 服务器…

查看本机Arp缓存,以及清除arp缓存

查看Arp缓存目录 Windows 系统使用 winR&#xff0c;输入cmd 在命令窗口输入 arp -a 删除Arp缓存目录 在命令窗口输入 arp -d * 查看主机路由表

深度学习纯小白如何从零开始写第一篇论文?看完这篇豁然开朗!

&#x1f4e2;前言 上个月小贾消失了一段时间&#xff0c;原因就是。。。 写论文去啦&#xff01;&#xff01;&#xff01; 先拿我导的认可镇个楼&#xff1a; 本篇文章将分享我个人从迷茫地找方向→苦苦做了48次实验才高效涨点→写论文到头秃等等一系列真实经历&#xff0c…

R语言通过接口获取网上数据平台的免费数据

大家好&#xff0c;我是带我去滑雪&#xff01; 作为一名统计学专业的学生&#xff0c;时常和数据打交道&#xff0c;我深知数据的重要性。数据是实证研究的重要基础&#xff0c;每当在完成一篇科研论文中的实证研究部分时&#xff0c;我都能深刻体会实证研究最复杂、最耗时的工…

【广州华锐互动】VR线上播控管理系统让虚拟现实教学效果更加显著

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐走进我们的生活&#xff0c;尤其在教育领域&#xff0c;VR技术的应用为学生提供了全新的学习体验。 广州华锐互动作为一家成立16年的老牌VR公司&#xff0c;开发了不少VR教学课件&#xff0c;包括物理、化学、农林、土木…

【Linux】 grep命令使用

grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 grep命令 -Linux手册页 语法 grep [选项] pattern [files] ls命令常用选项及作用 执行令 grep --help 执行命令结果 参数 -i&#xff1a;忽略大小写进行匹配。-v&#xff1a;反…

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiLST…

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

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

你知道AI智能知识库最大的用处在哪里吗?

在当今信息爆炸的时代&#xff0c;获取准确、及时的知识变得至关重要&#xff0c;而AI智能知识库的出现正好可以很好地解决这些问题。AI智能知识库的最大用处是在于帮助人们快速、高效地获取所需的知识和信息。它不仅可以减少人们在查找和筛选信息上的时间和精力投入&#xff0…