深度学习二 —— 手撕激活函数(阶跃函数、sigmoid、tanh、ReLu、Leaky ReLu)

手撕激活函数

1. 阶跃函数

公式

s t e p ( x ) = { 1 i f x > 0 0 i f x ≤ 0 step(x) = \begin{cases} 1 \quad if \quad x>0 \\ 0 \quad if \quad x \le 0 \end{cases} step(x)={1ifx>00ifx0

激活函数:阶跃函数、sigmoid函数、ReLU函数、softmax函数_God_6838的博客-CSDN博客_阶跃激活函数

代码

import numpy as np
def step_function(x):
    return np.array(x > 0, dtype=np.int)

2. sigmoid

公式

s i g m o i d ( x ) = 1 1 + e − x sigmoid(x) = \frac{1}{1 + e^{-x}} sigmoid(x)=1+ex1

y的取值范围 ( 0 , 1 ) (0, 1) (0,1)

img

代码

import numpy as np
def sigmoid(x):
    return 1. / (1 + np.exp(-x))

3. 阶跃函数 与 sigmoid函数比较

img

相同点

  • 输入小的时候,输出接近0,或者为0;随着输入增大,输出会向1靠近,或者为1
  • 不管输入信号的大小,输出均在 [ 0 , 1 ] [0, 1] [0,1]

不同点

  • 平滑性不同,sigmoid可以返回 [ 0 , 1 ] [0, 1] [0,1]之间的所有实数,阶跃函数只能返回0或1的信号值。
  • 由上可知,感知机中神经元之间流动的是0或1的信号值,而神经网络之间流动的是连续的实数值信号。

4. tanh 函数

公式

t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex

img

代码

import numpy as np
def tanh(x):
    return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))

5. sigmoid 和 tanh的缺陷

sigmoid和tanh具有共同的缺陷,即:在x很大或者很小时,梯度几乎为0,因此使用梯度下降的优化算法更新网络会很慢。

也正因为这个缺陷,ReLu成为目前大多数神经网络的默认选择。

6. ReLu 函数

公式

R e L u ( x ) = { x i f x > 0 0 i f x ≤ 0 ReLu(x) = \begin{cases} x \quad if \quad x>0 \\ 0 \quad if \quad x \le 0 \end{cases} ReLu(x)={xifx>00ifx0

img

代码

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

ReLu的缺点

ReLu的缺点:当 x < 0 x<0 x<0时,斜率即导数为0,因此引申出leaky relu函数,但是实际上leaky relu使用的并不多。

7. leaky ReLu 函数

公式

L R e L u ( x ) = { 0.01 x i f x < 0 x i f x ≤ 0 LReLu(x)=\begin{cases} 0.01x \quad if \quad x < 0 \\ x \quad if \quad x \le 0 \end{cases} LReLu(x)={0.01xifx<0xifx0

img

代码

import numpy as np
def LReLu(x):
    return maximum(0.01 * x, x)
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

L☆★

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

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

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

打赏作者

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

抵扣说明:

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

余额充值