本文介绍高等数学中的ReLU,以及在神经网络中的应用。
函数原型
ReLU(Rectified Linear Unit 修正的线性单元)
$$ f(x) = \max(0, x) = \begin{cases} x, & \text{if } x \geq 0 \\ 0, & \text{if } x < 0 \end{cases} $$
导数的函数原型
$$ f(x)' = \begin{cases} 1, & \text{if } x \geq 0 \\ 0, & \text{if } x < 0 \end{cases} $$
适用范围
二分类问题选择sigmoid,余下的问题ReLU是默认的选择
函数图像
Python代码实现
def main():
x = np.arange(-10, 10, 0.01)
y = list(map(lambda x: x if x > 0 else 0, x))
plt.figure(figsize=(6, 4))
plt.title('ReU function')
plt.xlabel('x', loc='left')
plt.ylabel('y', loc='bottom')
# ReU图像
plt.plot(x, y, label='ReU function')
# ReU导数图像
der_y = list(map(lambda x: 1 if x>0 else 0,x))
plt.plot(x, der_y, label='ReU derivative function')
plt.xticks(np.arange(-10, 11, 1))
plt.yticks(np.arange(-1, 10, 1))
plt.legend()
plt.grid(True, color='b', linewidth='0.5', linestyle='dashed')
plt.tight_layout()
plt.show()