美文网首页
激活函数、线性变换

激活函数、线性变换

作者: 三方斜阳 | 来源:发表于2021-03-26 14:44 被阅读0次

1. 线性变换 概念:

线性映射( linear mapping)是从一个向量空间 V 到另一个向量空间 W 的映射且保持加法运算和数量乘法运算,而线性变换(linear transformation)是线性空间 V 到其自身的线性映射.

线性空间 V 上的一个变换 A 称为线性变换,对于 V 中任意的元素 α β 和数域 P 中任意 k,都有:

                                       加法:         A(α+β)=A(α)+A(β)

                                       数量乘法:  A (kα)=kA(α)

在数学中,线性映射也叫线性变换,是在两个向量空间之间的函数,它保持向量加法和标量乘法的运算。术语 "线性变换" 特别常用,尤其是对从向量空间到自身的线性映射(自同态).

线性变换数学定义在一般的高等代数学书中都可以找到。A(a+b)=Aa+Ab,Aka=kAa。其中a,b是V中的线性空间。这个定义就是说把空间中的元素(特殊地想为三维空间的向量)经过一个变换,而这种变换是具有线性的特性的。那么这种变换的从一个元素转变到另外一个元素的对应关系,我们可以用前面的一个矩阵来表示,称为线性变换矩阵

2. 机器学习中的线性和非线性理解:

绝不是!!!:

刚刚有说到,线性变换,是在两个向量空间之间的函数,它保持向量加法和标量乘法的运算,写到一个式子可以是这样:

                            F(ax+y) = aF(x) + F(y)

x,y 为变量,a 为常数,注意:线性定义中的 x,y 不是标量,而是向量,F是向量变换,满足线性定义的向量变换可称为向量的线性变换。

根据线性定义,应有F(2t) = 2F(t),然而 :

                            F(2t) = 3*2t + 2 = 6t + 2

                            2F(t) = 2*(3t+2) = 6t + 4

事实上:从向量视角下去理解一次函数 F(t)=3t + 2 (t为标量实数),t 是只有一个标量作为分量的向量;向量F(2t) 平移即可得到 2F(t),两个向量是同一个向量的条件:方向相同;长度相等

两者都可以通过向量 6t 平移得到,由于平移不改变向量的方向和长度,故向量F(2t)=2F(t)=6t

非线性函数:则是指 不满足线性定义的函数即为非线性函数

3. 激活函数:

神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数).

如果不用激活函数(其实相当于激活函数是f(x) = x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大(不再是输入的线性组合,而是几乎可以逼近任意函数)。

激活函数是用来加入非线性因素的,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。

举一个二分类的例子:

二分类问题

单层感知机可以画出一条直线,把平面分开:

单层感知机分割平面

其中W1、W2是网络上权重,b是偏置量。左图是一个没有激活函数单层感知机,它的工作原理是:输入特征X1和特征X2,如果y>0,证明是正类;如果y<0,证明是负类。我们这里不讨论y=0的特殊情况。根据单层感知机的工作原理,我们画出右边的坐标图。

总结:不带激活函数的单层感知机是一个线性分类器,不能解决线性不可分的问题。

引入激活函数:

在所有的隐层和输出层加一个激活函数,这里激活函数就用Sigmoid函数,如图6所示。这样y输出的就是一个非线性函数了,y的输出更复杂,有了这样的非线性激活函数以后,神经网络的表达能力更加强大了。

带有非线性激活函数的感知机

最后,我们通过最优化损失函数的做法,通过不断的学习,能够学到正确分类三角形和圆点的曲线,具体学到什么曲线,我们不知道,或许是图中所示的曲线,也可能是其他曲线:

学习到的分类曲线

4. 激活函数的饱和范围:

相比于使用线性函数,使用非线性激活函数能让神经网络学习更复杂的函数表征;但为了有效地使用它们,我们需要理解这些非线性函数的性质。大多数激活函数都是连续可微的函数。

这些函数是连续函数,也就是说如果输入有较小的可微分的变化(在其定义域中的每个点上都有导数),那么输出也会有较小的变化。当然,如前面提到的那样,导数的计算是非常重要的,而且决定了我们的神经元是否可以训练。值得提及的几种激活函数有 Sigmoid、Softmax 和 ReLU。

Tanh、Sigmoid 和 ReLU 函数等非线性激活全都有饱和区间:

很容易理解,激活函数的饱和范围就是当输入值变化时输出值不再变化的区间。这个变化区间存在两个问题。

第一个问题是在神经网络的前向方向上,落在激活函数的饱和范围内的层的值将会逐渐得到许多同样的输出值。这会导致整个模型出现同样的数据流。这个现象被称为协方差偏移(covariance shifting)

第二个问题是在反向方向上,饱和范围内的导数为零,由此导致网络几乎无法再学习到任何东西。这就是在批归一化问题中提到的要将值的范围设定为零均值的原因。

原文链接:https://blog.csdn.net/tyhj_sf/article/details/79932893

相关文章

  • 8、激活函数

    1、激活函数的意义: 权重和偏置对信号进行线性变换后 而激活函数对信号进行线性变换,使得可以任意学习输入和输出之间...

  • 激活函数、线性变换

    1. 线性变换 概念: 线性映射( linear mapping)是从一个向量空间 V 到另一个向量空间 W 的映...

  • 激活函数

    如果没有激活函数,神经网络只能做线性变换,激活函数可以引入非线形因素。 概念:神经网络中的每个神经元节点接受上一层...

  • 激活函数和损失函数-Question

    1. 有哪些激活函数,有什么用? ReLU、Sigmoid、Tanh。作用:非线性变换。 2. ReLU、Sigm...

  • 【百面机器学习】深度神经网络

    对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更...

  • 线性函数非线性化方法的分类

    1. 基函数1)x^22)logx3)exp4)样条函数5)决策树2.核化3.施加非线性变换1)神经网络中的激活函...

  • 激活函数softmax-P2分类任务

    激活函数种类激活函数作用 激活函数 深度学习常用激活函数之— Sigmoid & ReLU & Softmax 深...

  • batch normalization

    在DNN里,我们定义的每一层的线性变化,其中代表层数,非线性变换为第层的激活函数。随着梯度下降的进行,每一层的参数...

  • 深入理解激活函数

    在谈激活函数前,我们先确立一个概念:什么是深度学习?维基百科对深度学习的定义为:“一类通过多层非线性变换对高复杂性...

  • 6.神经网络训练细节part1

    一、激活函数 前边我们学到,一个节点的输出会进入激活函数进行处理 常见的激活函数有以下 sigmoid激活函数 s...

网友评论

      本文标题:激活函数、线性变换

      本文链接:https://www.haomeiwen.com/subject/xemjhltx.html