激活函数的相关

激活函数是连接感知机和神经网络的桥梁
本书在“感知机”一词时,没有严格统一它所指的算法。一般而言,“朴素感知机”是指单层网络,指的是激活函数使用了阶跃函数的模型。“多层感知机”是指神经网络,即使用sigmoid函数(后述)等平滑的激活函数的多层网络。

激活函数

激活函数以阈值为届,一旦输入超过阈值,就切换输出。这样的函数称为“阶跃函数”。因此,可以说感知机中使用了阶跃函数作为激活函数。也就是说,也就是说,在激活函数的众多候选函数中,感知机使用了阶跃函数。实际上,如果将激活函数从阶跃函数换成其他函数,就可以进入神经网络的世界。

sigmoid函数

神经网络中经常使用的一个激活函数就是在这里插入图片描述

表示的sigmoid函数。函数就是给定某个输入后,会返回某个输出的转换器。
神经网络中用sigmoid函数作为激活函数,进行信号的转换,转换后的信号被传送到下一个神经元。实际上,上一章介绍的感知机和接下来要介绍的神经网络的主要区别就在与这个激活函数。其他方面,比如神经元的多层连接的构造、信号的传递方法等,基本上和感知机是一样的。下面,让我们通过和阶跃函数的比较来详细学习作为激活函数的sigmoid函数。

阶跃函数的实现

这里我们试着用Python画出阶跃函数的图(从视觉上确认函数的形状对理解函数很重要)。
如果把阶跃函数和sigmoid函数与水联系起来,则阶跃函数可以比作“竹筒敲石”,sigmoid函数可以比作“水车”。阶跃函数就像竹筒敲石一样,只做是否传送水(0或1)两个动作,而sigmoid函数就像水车一样,根据流过来的水量相应地调整传送出去的水量。
阶跃函数和sigmoid函数的共同性质。阶跃函数和sigmoid函数虽然在平滑性上有差异,但是如果从宏观视角看,可以发现它们具有相似的形状。实际上,两者的结构均是“输入小时,输出接近0(为0);”随着输入增大,输出向1靠近(变成1)”。也就是说,当输入信号为重要信息时,两者都输出较小的值。还有一个共同点是,不管输入信号有多小,或者有多大,输出信号的值都在0到1之间。

非线性函数

阶跃函数和sigmoid函数还有其他共同点,就是两者均为非线性性函数。sigmoid函数是一条曲线,阶跃函数是一条像阶梯一样的折线,两者都属于非线性的函数。
在介绍激活函数时,经常会看到“非线性函数”和“线性函数”等术语。函数本来是输入某个值后会返回一个值的转换器。向这个转换器输入某个值后,输出值是输入值的常数倍的函数称为线性函数(用数学式表示为h(x) = cx 。c为常数)。因此,线性函数是一条笔直的直线。而非线性函数,顾名思义,指的是不像线性函数那样呈现出一条直线的函数。
神经网络的激活函数必须使用非线性函数。换句话说,激活函数不能使用线性函数。因为使用线性函数的话,加深神经网络的层数就没有意义了。

ReLU函数

到目前为止,我们介绍了作为激活函数的阶跃函数和sigmoid函数。在神经网络发展的历史上,sigmoid 函数很早就开始被使用了,而最近则主要ReLU函数。
ReLU函数在输入大于0时,直接输出该值;在输入小于等于0时,输出0。
ReLU函数可以表示为下面的式:
在这里插入图片描述
ReLU函数是一个非常简单的函数。因此,ReLU函数的实现也很简单,可以写成如下形式。

def relu(x):
	return np.maximum(0,x)

这里使用了NumPy的maximum函数。maximum函数会从输入的数值中选择较大的那个值进行输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值