【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.rhkb.cn/news/152768.html

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

相关文章

OpenCV3-Python(7)模板匹配和霍夫检测

模板匹配 膜版匹配不能匹配尺度变换和视角变换的图像 图片中查找和模板相似度最高的图像 计算相似程度最高的位置 res cv.matchTemplate(img , template, method) 该方法返回一个类似灰度图的东西&#xff0c;如果用的相关匹配&#xff0c;那么亮的地方就是可能匹配上的地方 …

redis 事物

Redis事务 一个队列中&#xff0c;一次性、顺序性、排他性的执行一系列命令 正常执行 放弃事务 在exec执行之前&#xff0c;报错&#xff0c;则所有命令都不会执行 在exec执行后&#xff0c;报错&#xff0c;则其它正确的指令会执行&#xff0c;错误的命令会抛弃 watch 监…

文化主题公园旅游景点3d全景VR交互体验加深了他们对历史文化的认知和印象

如今&#xff0c;沉浸式体验被广泛应用于文旅行业&#xff0c;尤其是在旅游演艺活动中。在许多城市&#xff0c;沉浸式旅游演艺活动已成为游客“必打卡”项目之一。因其独特体验和强互动性&#xff0c;这类演艺活动不仅吸引了外地游客&#xff0c;也吸引了本地观众。 随着信息化…

JuiceFS 目录配额功能设计详解

JuiceFS 在最近 v1.1 版本中加入了社区中呼声已久的目录配额功能。已发布的命令支持为目录设置配额、获取目录配额信息、列出所有目录配额等。完整的详细信息&#xff0c;请查阅文档。 在设计此功能时&#xff0c;对于它的统计准确性&#xff0c;实效性以及对性能的影响&#…

MySQL-1(12000字详解)

一&#xff1a;数据库的引入 数据库在我们以后工作中是一个非常常用的知识&#xff0c;数据库用来存储数据&#xff0c;但是有些同学可能就会疑惑了&#xff0c;存储数据用文件就可以了&#xff0c;为什么还要弄个数据库呢&#xff1f; 文件保存数据有以下几个缺点&#xff1…

OpenGLES:3D立方体纹理贴图

效果展示 一.概述 前几篇博文讲解了OpenGLES绘制多种3D图形&#xff0c;并赋予丰富的色彩&#xff0c;但是在这些3D图形绘制过程中&#xff0c;有一点还没有涉及&#xff0c;就是纹理贴图。 今天这篇博文我会用如下六张图片对立方体进行纹理贴图&#xff0c;实现六个面都是贴…

二、图像处理

待完善 一、图片缩放 import org.bytedeco.opencv.global.opencv_imgcodecs; import org.bytedeco.opencv.global.opencv_imgproc; import org.bytedeco.opencv.opencv_core.Mat; import org.bytedeco.opencv.opencv_core.Size;public class ImageResizer {public static voi…

基于SVM+TensorFlow+Django的酒店评论打分智能推荐系统——机器学习算法应用(含python工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境方法一方法二 安装其他模块安装MySQL 数据库 模块实现1. 数据预处理1&#xff09;数据整合2&#xff09;文本清洗3&#xff09;文本分词 相关其它博客工程源代码下载其它资料下载 前言 本项目以支…

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

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

阿里云轻量应用服务器月流量限制说明(部分套餐不限流量)

阿里云轻量应用服务器部分套餐限制月流量&#xff0c;轻量应用服务器按照套餐售卖&#xff0c;有的套餐限制月流量&#xff0c;有的不限制流量。像阿里云轻量2核2G3M带宽轻量服务器一年108元和轻量2核4G4M带宽一年297.98元12个月&#xff0c;这两款是不限制月流量的。阿里云百科…

充电保护芯片TP4054国产替代完全兼容DP4054DP4054H 锂电充电芯片

■产品概述 DP4054H是-款完整的采用恒定电流/恒定电压单节锂离子电池充电管理芯片。其SOT小封装和较少的外部元件数目使其成为便携式应用的理想器件&#xff0c;DP4054H可 以适合USB电源和适配器电源工作。 由于采用了内部PMOSFET架构&#xff0c;加上防倒充电路,所以不需要外…

c++桥接模式,中介者模式应用实现状态跳转

上图为例&#xff0c;按上述两种方式实现的模式跳转&#xff0c;如果在原先的三种模式之间再增加多一种模式&#xff0c;就会引起每个模式都会要求改变&#xff0c;并且逻辑混乱&#xff0c;因此更改模式为桥接中介者访问&#xff0c;将抽象和实现分离&#xff0c;实现之间采用…

Flink---11、状态管理(按键分区状态(值状态、列表状态、Map状态、归约状态、聚合状态)算子状态(列表状态、广播状态))

星光下的赶路人star的个人主页 这世上唯一扛得住岁月摧残的就是才华 文章目录 1、状态管理1.1 Flink中的状态1.1.1 概述1.1.2 状态的分类 1.2 按键分区状态&#xff08;Keyed State&#xff09;1.2.1 值状态&#xff08;ValueState&#xff09;1.2.2 列表状态&#xff08;ListS…

三十一、【进阶】B+树的演变过程

1、B树简单介绍 &#xff08;1&#xff09;介绍&#xff1a;B树也属于B树&#xff0c;是B树的变种 &#xff08;2&#xff09;特点&#xff1a;所有的数据都位于叶子节点上&#xff0c;叶子节点上的所有元素形成了一个单项链表 &#xff08;3&#xff09;图示&#xff1a; 2…

【虚拟机】根据已有IP获取当前网段的主机范围

虚拟机有的时候会需要自己手动分配IP&#xff0c;此时无论是和宿主主机通信、还是访问外网&#xff0c;都需要保证和宿主主机在一个网段。现在已知宿主主机的 IP 和子网掩码&#xff0c;需要知道宿主主机所处网段可以分配哪些IP。 假设宿主主机 IP 为172.20.10.2&#xff0c;子…

3.1.OpenCV技能树--二值图像处理--阈值

文章目录 1.文章内容来源2.阈值分割2.1.简单阈值分割2.1.1.简单阈值分割原理介绍2.1.2.简单阈值分割核心代码2.1.3.简单阈值分割效果展示 2.2.自适应阈值分割2.2.1.自适应阈值分割原理介绍2.2.2.自适应阈值分割核心代码2.2.3.自适应阈值分割效果展示 2.3.Otsu’s二值化/大津阈值…

unity使用UniStorm 5.1.0.unitypackage增加天气

添加天天气组件unistorm 然后添加一个player 导入包会报错,需要修改代码 using UnityEngine; using UnityEngine.PostProcessing;namespace UnityEditor.PostProcessing {[CustomPropertyDrawer(typeof(UnityEngine.PostProcessing.MinAttribute))]sealed class MinDrawer : …

Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow)

文章目录 效果一览文章概述程序设计参考资料效果一览 文章概述 Transformer预测 | Python实现基于Transformer的股票价格预测(tensorflow) 程序设计 import numpy as np import matplotlib.pyplot

【多线程案例】设计模式-单例模式

1.单例模式 什么是单例模式&#xff1f; 所谓单例&#xff0c;即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象&#xff0c;并且提前在类里面创建好一个实例对象&#xff0c;把构造方法私有化&#xff0c;再对外提供获取这个实例对象的方法&#xff0c;&#xff0…

lua 中文字符的判断简介

一般在工作中会遇到中文字符的判断、截断、打码等需求&#xff0c;之前一直没有总结&#xff0c;虽然网上资料也多&#xff0c;今天在这里简单的总结一下。 1 .UTF-8简单描述 UTF-8 是 Unicode 的实现方式之一&#xff0c;其对应关系&#xff08;编码规则&#xff09;如下表所…
推荐文章