大家好,今天给各位分享深入探讨机器学习与神经网络原理笔记(二)的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
激活函数及其导数函数很简单。
导数函数的取值范围在合适的区间内
Sigmoid 型函数
Sigmoid型函数是指S形曲线函数的一种,是两端饱和的函数(即)。常用的Sigmoid函数包括Logistic函数和Tanh函数。
Logistic 函数和Tanh 函数
Hard-Logistic 函数和Hard-Tanh 函数
Hard Sigmoid型激活函数Logistic函数和Tanh函数都是Sigmoid型函数,可饱和,但计算成本较高。由于两个函数在中间(接近0)近似线性,因此它们在两端饱和。因此,这两个函数可以用分段函数来近似。
以逻辑函数(x) 为例,其导数为(x)=(x)(1 (x))。逻辑函数在0 附近的一阶泰勒展开式为:
这样,逻辑函数可以通过分段函数hard-logistic(x)来近似。
同样,Tanh函数在0附近的一阶泰勒展开式为
这样,Tanh函数也可以用分段函数hard-tanh(x)来近似。
ReLU函数
ReLU、Leaky ReLU、ELU 和Softplus 函数ReLU(Rectified Linear Unit,修正线性单元),也称为整流器函数,是当前深度神经网络中常用的激活函数。 ReLU实际上是一个斜坡函数,定义为:
优点:
计算效率更高(只需加、乘和比较)。 ReLU函数被认为具有生物学解释,例如单侧抑制和宽激发边界(即激发程度也可以很高)。在生物神经网络中,同时兴奋的神经元非常稀疏。人脑中只有1%到4%的神经元同时处于活动状态。 Sigmoid激活函数会导致神经网络非稀疏,而ReLU具有良好的稀疏性,大约50%的神经元会被激活。在优化方面,相比Sigmoid函数两端的饱和,ReLU函数是左饱和函数,在x 0处导数为1,一定程度上缓解了神经网络的梯度消失问题,加快了梯度下降的收敛速度。缺点:
ReLU 函数的输出是非零中心的。在后一层的神经网络中引入偏置offset会影响梯度下降的效率。 ReLU 神经元在训练过程中更有可能“死亡”。为解决上述问题。 ReLU 有多种变体:
带有泄漏的ReLU
当输入x 0 时,保持较小的梯度。这样,当神经元不活动时,它也可以有一个非零梯度来更新参数,以避免永远不被激活。
带参数的ReLU
引入可学习的参数,不同的神经元可以有不同的参数。对于第i 个神经元,其PReLU
定义为:
ELU功能
ELU(Exponential Linear Unit)是一个近似零中心非线性函数,定义为
软加功能
Softplus函数可以看作是整流器函数的平滑版本,其定义为
85%B6%E5%AF%BC%E6%95%B0%E5%88%9A%E5%A5%BD%E6%98%AFLogistic%20%E5%87%BD%E6%95%B0%E3%80%82%5C%5C%20Softplus%20%E5%87%BD%E6%95%B0%E8%99%BD%E7%84%B6%E4%B9%9F%E5%85%B7%E6%9C%89%E5%8D%95%E4%BE%A7%E6%8A%91%E5%88%B6%E3%80%81%E5%AE%BD%E5%85%B4%E5%A5%8B%E8%BE%B9%E7%95%8C%E7%9A%84%E7%89%B9%E6%80%A7%EF%BC%8C%E5%8D%B4%E6%B2%A1%E6%9C%89%E7%A8%80%E7%96%8F%E6%BF%80%E6%B4%BB%E6%80%A7%E3%80%82" alt="text { Softplus }(x)=log (1+exp (x))\ Softplus 函数其导数刚好是Logistic 函数。\ Softplus 函数虽然也具有单侧抑制、宽兴奋边界的特性,却没有稀疏激活性。" />Swish 函数
是一种自门控(Self-Gated)激活函数,定义为:其中σ(·) 为Logistic 函数,β 为可学习的参数或一个固定超参数。σ(·) ∈ (0, 1) 可以看作是一种软性的门控机制。当σ(βx) 接近于1 时,门处于“开”状态,激活函数的输出近似于x本身;当σ(βx) 接近于0 时,门的状态为“关”,激活函数的输出近似于0。 Swish 函数当β = 0 时,Swish 函数变成线性函数x/2。当β = 1 时,Swish 函数在x >0 时近似线性,在x< 0 时近似饱和,同时具有一定的非单调性。当β → +∞时,σ(βx) 趋向于离散的0-1 函数,Swish 函数近似为ReLU函数。因此,Swish 函数可以看作是线性函数和ReLU函数之间的非线性插值函数,其程度由参数β 控制。高斯误差线性单元(GELU)
和Swish 函数比较类似,也是一种通过门控机制来调整其输出值的激活函数:其中P(X ≤ x) 是高斯分布的累积分布函数,其中μ, σ 为超参数,一般设μ = 0, σ = 1 即可。由于高斯分布的累积分布函数为S 型函数,因此GELU可以用Tanh 函数或Logistic 函数来近似:Maxout 单元
也是一种分段线性函数。Sigmoid 型函数、ReLU 等激活函数的输入是神经元的净输入z,是一个标量。而Maxout 单元的输入是上一层神经元的全部原始输出,是一个向量。 每个Maxout单元有K个权重向量和偏置bk(1 ≤ k ≤ K)。对于输入x,可以得到K 个净输入zk, 1 ≤ k ≤ K:Maxout 单元的非线性函数定义为:Maxout 单元不单是净输入到输出之间的非线性映射,而是整体学习输入到输出之间的非线性映射关系。Maxout 激活函数可以看作任意凸函数的分段线性近似,并且在有限的点上是不可微的。神经网络
三种神经网络目前常用的神经网络有三种 前馈网络 可以看作一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射。这种网络结构简单,易于实现。 记忆网络 也称为反馈网络,网络中的神经元不但可以接收其它神经元的信息,也可以接收自己的历史信息。和前馈网络相比,记忆网络中的神经元具有记忆功能,在不同的时刻具有不同的状态。记忆神经网络中的信息传播可以是单向 或双向传递,因此可用一个有向循环图或无向图来表示。记忆网络包括循环神经网络、Hopfield 网络、玻尔兹曼机、受限玻尔兹曼机 等。 记忆网络可以看作一个程序,具有更强的计算和记忆能力。 为了增强记忆网络的记忆容量,可以引入外部记忆单元和读写机制,用来保存一些网络的中间状态,称为记忆增强神经网络。比如神经图灵机和记忆网络。 图网络 为处理图结构的数据(用向量表示会损失信息)而出现的网络。 图网络是定义在图结构数据上的神经网络。图中每个节点都由一个或一组神经元构成。节点之间的连接可以是有向的,也可以是无向的。每个节点可以收到来自相邻节点或自身的信息。 图网络是前馈网络和记忆网络的泛化,包含很多不同的实现方式,比如图卷积网络(GCN)、图注意力 网络(GAT)、消息传递网络(MPNN) 等。前馈神经网络(FNN)
也称为多层感知器(MLP)。但多层感知器的叫法并不是十分合理,因为前馈神经网络其实是由多层的Logistic回归模型(连续的非线性函数)组成,而不是由多层的感知器(不连续的非线性函数)组成。 多层前馈神经网络用以下记号描述一个前馈神经网络:通用近似定理
对于具有线性输出层和至少一个使用“挤压”性质的激活函数的隐藏层组成的前馈神经网络,就是可以通过足够多隐藏层神经元的数量的前馈神经网络,可以以任意的精度来近似任何一个定义在实数空间中的有界闭集函数。 通用近似定理只是说明了神经网络的计算能力可以去近似一个给定的连续函数,但并没有给出如何找到这样一个网络,以及是否是最优的。此外,当应用到机器学习时,真实的映射函数并不知道,一般是通过经验风险最小化和正则化来 进行参数学习。因为神经网络的强大能力,反而容易在训练集上过拟合。应用到机器学习
在机器学习中,输入样本的特征对分类器的影响很大。因此,要取得好的分类效果,需要将样本的原始特征向量x转换到更有效的特征向量ϕ(x),这个过程叫做特征抽取。反向传播算法
设用随机梯度下降进行参数更新。给定一个样本(x, y),将其输入到神经网络模型中,得到网络输出为ˆy。假设损失函数为L(y, ˆy),要进行参数学习就需要计算损失函数关于每个参数的导数。首先计算偏导数:再计算偏导数:自动梯度计算
数值微分
是用数值方法来计算函数f(x) 的导数。实现简单,但实用性差,且时间复杂度高。符号微分
是一种基于符号计算的自动求导方法。 符号计算也叫代数计算,是指用计算机来处理带有变量的数学表达式。 和符号计算相对应的概念是数值计算,即将数值代入 数学表示中进行计算。 符号计算一般来讲是对输入的表达式,通过迭代或递归使用一些事先定义的规则进行转换。当转换结果不能再继续使用变换规则时,便停止计算。 也就是符号微分可以在编译时就计算梯度的数学表示,并进一步进行优化。此外,符号计算的一个优点是符号计算和平台无关,可以在CPU或GPU上运行。 符号微分的缺点:一是编译时间较长,特别是对于循环,需要很长时间进行编译;二是为了进行符号微分,一般需要设计一种专门的语言来表示数学表达式,并且要对变量(符号)进行预先声明;三是很难对程序进行调试。自动微分
如对复合函数进行自动微分,可构建计算图: 复合函数f(x;w, b) 的计算图是一种可以对一个(程序)函数进行计算导数的方法。符号微分的处理对象是数学表达式,而自动微分的处理对 象是一个函数或一段程序。自动微分可以直接在原始程序代码进行微分,因此自动微分成为目前大多数深度学习框架的首选。 自动微分的基本原理是所有的数值计算可以分解为一些基本操作,包含+,−,×, / 和一些初等函数exp, log, sin, cos 等,然后利用链式法则来自动计算一个复合函数的梯度。 按照计算导数的顺序,自动微分可以分为两种模式:前向模式和反向模式(类似反向传播)。【深入探讨机器学习与神经网络原理笔记(二)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我一直很感兴趣的神经网络和机器学习,有机会看看你的笔记!
有17位网友表示赞同!
期待看到你对深度学习的一些理解和见解。
有11位网友表示赞同!
笔记内容涵盖哪些方面?我一直在学习相关知识,可以参考一下你的笔记?
有13位网友表示赞同!
学习神经网络感觉很有挑战啊,笔记能帮我梳理一下思路吗?
有5位网友表示赞同!
机器学习的应用场景越来越广泛了,笔记会介绍一些实际案例吗?
有18位网友表示赞同!
我最近在看一些关于强化学习的文章,你笔记里有讨论吗?
有5位网友表示赞同!
神经网络的训练过程是比较复杂的,你的笔记有没有简化解释?
有10位网友表示赞同!
想了解下如何使用神经网络解决实际问题,笔记中有相关内容吗?
有5位网友表示赞同!
机器学习涉及很多数学概念,你笔记会用通俗易懂的方式解释吗?
有20位网友表示赞同!
我已经对一些基础知识有一定的了解,笔记里有没有更深入的讲解?
有17位网友表示赞同!
你的笔记能不能提供一些代码示例,方便我更好地理解?
有9位网友表示赞同!
学习神经网络需要哪些工具和软件支持,笔记会做介绍吗?
有8位网友表示赞同!
机器学习模型如何进行评估和优化,笔记里有相关内容吗?
有10位网友表示赞同!
我想了解一下目前神经网络发展的前沿趋势,你的笔记有没有涉及?
有19位网友表示赞同!
学习神经网络需要哪些资源和资料,可以推荐一些吗?
有5位网友表示赞同!
你的笔记是否包括一些练习题或案例分析,方便我巩固学习?
有9位网友表示赞同!
很期待看到你关于机器学习的独特见解和思考。
有20位网友表示赞同!
想了解更多关于神经网络的应用领域,你的笔记会介绍吗?
有5位网友表示赞同!
如果你分享完整的笔记,我希望能深入学习并进行交流.
有9位网友表示赞同!