admin管理员组

文章数量:1794759

激活函数  为什么使用非线性激活函数

激活函数 为什么使用非线性激活函数

Sigmoid函数: g(z) = a = 1 / (1 + e ^(-z)) g'(z) = g(z) * (1 - g(z)) = a * (1-a) while z = 10 g(z) ≈ 1 g'(z) = 1 * (1 - 1) ≈ 0 z = -10 g(z) ≈ 0 g'(z) = 0 * (1 - 0) ≈ 0 z = 0 g'(z) ≈ 0.5 g'(z) = 0.5 * (1 - 0.5) = 0.25 Tanh函数: g(z) = a = tanh(z) = (e^z - e^(-z)) / (e^z + e^(-z)) g'(z) = 1 - (tanh(z))^2 = 1 - a^2 while z = 10 g(z) ≈ 1 g'(z) ≈ 0 z = -10 g(z) ≈ -1 g'(z) ≈ 0 z = 0 g'(z) ≈ 0 g'(z) = 1 ReLU函数和Leaky ReLU函数: ReLU函数: g(z) = a = max(0 , z) g'(z) = 0 if z < 0 g'(z) = z if z >= 0 Leaky ReLU函数: g(z) = a = max(0.01z , z) g'(z) = 0.01 if z < 0 g'(z) = z if z >= 0 为什么使用非线性的激活函数: 因为如果使用线性的激活函数, 那么输入x跟输出y之间的关系为线性的 ,便可以不需要网络结构,直接使用线性组合便可以.只有在输出层极小可能使用线性激活函数,在隐含层都使用非线性激活函数.

本文标签: 函数