【神经网络】常见激活函数详解及python代码实现

神经网络激活函数介绍与分析
本文介绍了神经网络激活函数,先阐述激活函数性质,如连续可导、形式简单、导函数值域合适等。接着详细介绍常见激活函数,包括Sigmoid、ReLU及其变体、Swish、GELU等,分析各函数优缺点,并给出Python实现代码及绘图结果。

前言

    1943年,心理学家Warren McCulloch和数学家Walter Pitts发表论文《A Logical Calculus Of The Ideas Immanent In Nervous Activity》(神经活动中固有思想的逻辑演算),提出了简化脑细胞的概念,也就是所谓的MP神经元模型
    McCulloch和Pitts把神经细胞描述为带有二元输出的简单逻辑门。多个信号到达树突,然后整合到细胞体,当累计信号量超过一定阈值时,输出信号就通过轴突。
人工神经元示例

    将MP神经元模型放在数学模型中来看,我们用xxx来表示输入,假设一个神经元接收mmm个输入,令向量x=[x1x2⋮xm],ω=[ω1ω2⋮ωm]x = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_m \\ \end{bmatrix},\omega = \begin{bmatrix} \omega_1 \\ \omega_2 \\ \vdots \\ \omega_m \\ \end{bmatrix}x= x1x2xm ,ω= ω1ω2ωm 来表示输入层,接收来自其他神经元的信号。
这些信号的来源不同,对神经元的影响也不同,因此需要给他们分配不同的权重,ω\omegaω则表示权重。
对接收到的输入信号加权求和之后,与产生神经兴奋的阈值θθθ相比较,得到中间结果zzzzzz也叫做净输入(net input),z=ω1x1+ω2x2+...+ωmxmz=\omega_1x_1+\omega_2x_2+...+\omega_mx_mz=ω1x1+ω2x2+...+ωmxm
    最后通过阶跃函数模型神经兴奋。当zzz的值小于0时,神经元处于抑制状态,输出为-1.当zzz的值大于0时,神经元被激活,处于兴奋状态,输出为1.
ϕ(z)={ 1,z≥0−1,else\phi(z)=\begin{cases} 1 , z≥0 \\ -1 , else \\ \end{cases}ϕ(z)={ 1,z01,else
这个阶跃函数,就被称为激活函数。
数学模型表示如下图:
人工神经元数学模型

激活函数的性质

    激活函数在神经元中是非常重要的,为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质:

  • 连续并且可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数;
  • 激活函数及其导函数要尽可能地简单,有利于提高网络计算效率;
  • 激活函数的导函数的值域要在一个合适的区间内,不能太大也不能太小,否则会影响训练的效率和稳定性。

    假设f(x)f(x)f(x)是一个激活函数,当x→−∞x→-∞x时,其导函数f′(x)→0f'(x)→0f(x)0则称其为左饱和激活函数,当x→+∞x→+∞x+时,其导函数f′(x)→0f'(x)→0f(x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Faxxtty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值