【面试】列举常见的激活函数并推导其导数

面试模拟场景

面试官: 你能列举一些常见的激活函数并推导其导数吗?

1. Sigmoid 函数

定义:

  • Sigmoid 函数将输入映射到 ( 0 , 1 ) (0, 1) (0,1) 区间,常用于输出层进行二分类任务。
    σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
    导数推导:
  • 对 Sigmoid 函数求导:
    d σ ( x ) d x = d d x ( 1 1 + e − x ) \frac{d\sigma(x)}{dx} = \frac{d}{dx} \left(\frac{1}{1 + e^{-x}}\right) dxdσ(x)=dxd(1+ex1)
    通过链式法则,首先求 e − x e^{-x} ex x x x 的导数:
    d d x ( 1 + e − x ) = − e − x \frac{d}{dx}(1 + e^{-x}) = -e^{-x} dxd(1+ex)=ex
    然后对整个函数求导:
    d σ ( x ) d x = − ( − e − x ) ( 1 + e − x ) 2 = e − x ( 1 + e − x ) 2 \frac{d\sigma(x)}{dx} = \frac{-(-e^{-x})}{(1 + e^{-x})^2} = \frac{e^{-x}}{(1 + e^{-x})^2} dxdσ(x)=(1+ex)2(ex)=(1+ex)2ex
    使用 Sigmoid 函数的定义:
    d σ ( x ) d x = σ ( x ) ( 1 − σ ( x ) ) \frac{d\sigma(x)}{dx} = \sigma(x)(1 - \sigma(x)) dxdσ(x)=σ(x)(1σ(x))
    解释:
  • Sigmoid 函数的导数也是一个 Sigmoid 函数的函数,最大值出现在 x = 0 x = 0 x=0 处,值为 1 4 \frac{1}{4} 41
2. Tanh 函数

定义:

  • Tanh 函数是 Sigmoid 函数的缩放和平移版本,将输入映射到 ( − 1 , 1 ) (-1, 1) (1,1) 区间,通常用于隐藏层激活。
    tanh ( x ) = e x − e − x e x + e − x \text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex
    导数推导:
  • 对 Tanh 函数求导:
    d d x tanh ( x ) = d d x ( e x − e − x e x + e − x ) \frac{d}{dx}\text{tanh}(x) = \frac{d}{dx}\left(\frac{e^x - e^{-x}}{e^x + e^{-x}}\right) dxdtanh(x)=dxd(ex+exexex)
    使用商的导数法则:
    d d x tanh ( x ) = ( e x + e − x ) ( e x + e − x ) − ( e x − e − x ) ( e x − e − x ) ( e x + e − x ) 2 \frac{d}{dx}\text{tanh}(x) = \frac{(e^x + e^{-x})(e^x + e^{-x}) - (e^x - e^{-x})(e^x - e^{-x})}{(e^x + e^{-x})^2} dxdtanh(x)=(ex+ex)2(ex+ex)(ex+ex)(exex)(exex)
    简化得:
    d d x tanh ( x ) = 4 e 2 x ( e x + e − x ) 2 = 1 − tanh 2 ( x ) \frac{d}{dx}\text{tanh}(x) = \frac{4e^{2x}}{(e^x + e^{-x})^2} = 1 - \text{tanh}^2(x) dxdtanh(x)=(ex+ex)24e2x=1tanh2(x)
    解释:
  • Tanh 函数的导数可以表示为 1 − tanh 2 ( x ) 1 - \text{tanh}^2(x) 1tanh2(x),它在 x = 0 x = 0 x=0 处取最大值1。
3. ReLU(Rectified Linear Unit)函数

定义:

  • ReLU 是目前最常用的激活函数之一,将输入大于零的部分保留,小于零的部分截断为零。
    ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)
    导数推导:
  • ReLU 函数的导数是分段函数:
    d d x ReLU ( x ) = { 1 x > 0 0 x ≤ 0 \frac{d}{dx}\text{ReLU}(x) = \begin{cases} 1 & x > 0 \\ 0 & x \leq 0 \end{cases} dxdReLU(x)={10x>0x0
    解释:
  • ReLU 的导数在 x > 0 x > 0 x>0 时为1,在 x ≤ 0 x \leq 0 x0 时为0。这使得 ReLU 函数在正向传播中保持非线性,而在反向传播中仍然保持计算的简便性。
4. Leaky ReLU 函数

定义:

  • Leaky ReLU 是 ReLU 的变种,允许小于零的部分也有一个很小的斜率(通常为0.01),以避免 ReLU 的“死亡神经元”问题。
    Leaky ReLU ( x ) = { x x > 0 α x x ≤ 0 \text{Leaky ReLU}(x) = \begin{cases} x & x > 0 \\ \alpha x & x \leq 0 \end{cases} Leaky ReLU(x)={xαxx>0x0
    其中, α \alpha α 是一个很小的正数。

导数推导:

  • Leaky ReLU 函数的导数也是分段函数:
    d d x Leaky ReLU ( x ) = { 1 x > 0 α x ≤ 0 \frac{d}{dx}\text{Leaky ReLU}(x) = \begin{cases} 1 & x > 0 \\ \alpha & x \leq 0 \end{cases} dxdLeaky ReLU(x)={1αx>0x0
    解释:
  • Leaky ReLU 的导数在 x > 0 x > 0 x>0 时为1,在 x ≤ 0 x \leq 0 x0 时为 α \alpha α,避免了 ReLU 的零梯度问题。
5. Softmax 函数

定义:

  • Softmax 函数常用于多分类问题的输出层,将输入向量转换为概率分布。对于输入向量 z = [ z 1 , z 2 , … , z n ] z = [z_1, z_2, \dots, z_n] z=[z1,z2,,zn],Softmax 函数定义为:
    Softmax ( z i ) = e z i ∑ j = 1 n e z j \text{Softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}} Softmax(zi)=j=1nezjezi
    导数推导:
  • 由于涉及多个变量,Softmax 函数的导数比较复杂,对于 Softmax 输出 y i y_i yi 和输入 z j z_j zj,导数为:
    ∂ y i ∂ z j = y i ( δ i j − y j ) \frac{\partial y_i}{\partial z_j} = y_i (\delta_{ij} - y_j) zjyi=yi(δijyj)
    其中, δ i j \delta_{ij} δij 是Kronecker delta,即当 i = j i = j i=j 时, δ i j = 1 \delta_{ij} = 1 δij=1;否则 δ i j = 0 \delta_{ij} = 0 δij=0

解释:

  • Softmax 函数的导数表示每个输出与输入之间的关系,在反向传播中广泛用于计算梯度。

总结

  • Sigmoid 函数: σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1,导数为 σ ( x ) ( 1 − σ ( x ) ) \sigma(x)(1 - \sigma(x)) σ(x)(1σ(x))
  • Tanh 函数: tanh ( x ) = e x − e − x e x + e − x \text{tanh}(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} tanh(x)=ex+exexex,导数为 1 − tanh 2 ( x ) 1 - \text{tanh}^2(x) 1tanh2(x)
  • ReLU 函数: ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x),导数为 1 1 1 (当 x > 0 x > 0 x>0 时),否则为 0 0 0
  • Leaky ReLU 函数: Leaky ReLU ( x ) = max ⁡ ( α x , x ) \text{Leaky ReLU}(x) = \max(\alpha x, x) Leaky ReLU(x)=max(αx,x),导数为 1 1 1(当 x > 0 x > 0 x>0 时),否则为 α \alpha α
  • Softmax 函数: Softmax ( z i ) = e z i ∑ j e z j \text{Softmax}(z_i) = \frac{e^{z_i}}{\sum_{j} e^{z_j}} Softmax(zi)=jezjezi,导数为 y i ( δ i j − y j ) y_i (\delta_{ij} - y_j) yi(δijyj)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值