猫史档案馆


今天我们拓展学到G10的训练师们所了解的激活函数,喵了解!

用户:星空牧场星空牧场查看:8 回复:21 评论:8 创建时间:2020-06-22T19:12:49


我们知道,一次函数y=kx+b是进行线性分类的,可是在大多数情况下,分类器所面临的是交错混杂的两组数据,无法直接进行一次函数的线性化分。于是,一代又一代的计算机科学家、数学家们发明了激活函数。这份教程,我们来聊一聊激活函数。

(本教程内部图片文件知识产权归编程猫所有,本人只是对此进行进一步的加深而已)

center_image

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。

激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,那么该网络仅能够表达线性映射,此时即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此也可以认为,只有加入了激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。 那么激活函数应该具有什么样的性质呢?

可喵: 当优化方法是基于梯度的时候,这个性质是必须的。 
单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数。 
输出值的范围: 当激活函数输出值是 有限 的时候,基于梯度的优化方喵更加 稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate.

以训练师们课上学习到的sigmoid函数为例(进行拓展展开的讲解):

sigmoid 函数是使用范围最广的一类激活函数,具有指数函数形状,它在物理意义上最为接近生物神经元。此外,(0, 1) 的输出还可以被表示作概率,或用于输入的归一化,代表性的如Sigmoid交叉熵损失函数。

可以看出,sigmoid函数连续,光滑,严格单调,以(0,0.5)中心对称,是一个非常良好的阈值函数。

当x趋近负无穷时,y趋近于0;趋近于正无穷时,y趋近于1;x=0时,y=0.5。当然,在x超出[-6,6]的范围后,函数值基本上没有变化,值非常接近,在应用中一般不考虑。

Sigmoid函数的值域范围限制在(0,1)之间,我们知道[0,1]与概率值的范围是相对应的,这样sigmoid函数就能与一个概率分布联系起来了。

Sigmoid函数的导数是其本身的函数,即f(x)=f(x)(1f(x))f′(x)=f(x)(1−f(x)),计算非常方便,也非常节省计算时间。

然而,sigmoid也有其自身的缺陷,最明显的就是饱和性。从上图可以看到,其两侧导数逐渐趋近于0 

课上提及到的ReLU函数,这里再进行展开讲解:

ReLU的全称是Rectified Linear Units,是一种后来才出现的激活函数。 可以看到,当x<0时,ReLU硬饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。这让我们能够直接以监督的方式训练深度神经网络,而无需依赖无监督的逐层预训练。

本次的激活函数教程就先分享到这里,学到了的话,点赞加关注!

emotion_编程猫_加油


回复

上一页1 页 / 共 1下一页
星空牧场星空牧场

觉得so easy回复666

觉得okk回复okk

觉得有难度回复333

觉得疯了回复OMG

点赞0


评论


xzyawaxzyawa

OMG

点赞0


评论


星空牧场星空牧场

看来嚣章鱼是为图形化大佬emotion_编程猫_厉害了

点赞0


评论


印泽恩Tim印泽恩Tim

G2的小白躲在角落瑟瑟发抖……

点赞0


评论


星空牧场星空牧场

@印度大象,进了工作室的就不是小白啊

点赞0


评论


没有人doge没有人doge

( ⊙o⊙ )哇 大佬

点赞0


评论


星空牧场星空牧场

只不过Python搞数据的多

点赞1


评论


盒子的box盒子的box

max(0,x)

等于

(|x|+x)/2

点赞0


评论


盒子的box盒子的box

事实上,除了Ce^x的导数是其本身,其他的都不是,Sigmoid也不是

点赞0


评论


盒子的box盒子的box

444有错不过能发这样的帖子很好

点赞0


评论


星空牧场星空牧场

@盒子box,多谢指正。教程量大,有些不足,希望大家多多指教,我们不断更新优化emotion_编程猫_厉害了

点赞0


评论


急_开_锁_办_证810864急_开_锁_办_证810864

我个人不喜欢把线性分类器写成y = kx + b,因为y = kx+b中的x和一般情形下的wx +b = 0中的x含义完全不一样。很多参考资料谈到2维平面点集的分类问题时(特别是只由4个点构造的非线性可分集的例子),总是把初中数学的一次函数y = kx + b搬出来说事,不知道为什么。当特征为2维变量时,要寻找的分类器明显已变为一个二元一次函数z = f(x1, x2) = w1x1 + w2x2 + b = w1x + w2y + b,根本不是再什么一元一次函数z = kx + b,寻找的是分类面而不是分界线。不留意的话,很容易混淆。

点赞0


评论


星空牧场星空牧场

@铐xxx,一次函数是在二维平面中的线性分类器,是对于线性以及非线性分类器的简易模拟环境。你说的表达是在将权重分别成上去再加上偏置,用到的是dot。你说提及的是三维分类,但也并不意味着在神经元当中并不寻找分界线。我们结合图例看:

center_image

这是分类器的一种情况(而且时常出现)

你说的是三维立体中用一个平面分成两部分。 所以本质上都是相同的,y=kx+b或者说成wx+b,

而拓展起来就是dot出来实现你所说的三维分类器。

点赞0


评论


蒟蒻OIer1048576蒟蒻OIer1048576

okk

点赞0


评论


星空之忆星空之忆

PyTorch框架了解一下

点赞0


评论


可靠的狼王蛛PZ5j可靠的狼王蛛PZ5j

啊,太好啦,可以预习了,不过我才学到G6课程,不过我不是六年级啊!

点赞0


评论


March_12thMarch_12th

我五年级,才学到G6呢

点赞0


评论


爵士OIer爵士OIer

飞了

我居然没有看见解析式

点赞0


评论


爵士OIer爵士OIer

和正切的反函数是真的像

点赞0


评论


爵士OIer爵士OIer

还有双曲正切

太像了

点赞0


评论


爵士OIer爵士OIer

?等等,第一列第二个不就是双曲正切吗

点赞0


评论