当前位置: 代码迷 >> 综合 >> 几类常见的激活函数——$ReLU$函数、$sigmiod$ 函数、$tanh$ 函数
  详细解决方案

几类常见的激活函数——$ReLU$函数、$sigmiod$ 函数、$tanh$ 函数

热度:65   发布时间:2024-02-25 02:31:08.0

背景介绍:

对于常见线性回归和 softmaxsoftmaxsoftmax 单层神经网络,在深度学习中的多层神经网络都可以对带有隐藏层的多层感知机,其中的一至多个隐藏层经过非线性变换等价于一个单层的神经网络;常?的激活函数包括 ReLUReLUReLU 函数、sigmoidsigmoidsigmoid 函数和 tanhtanhtanh 函数。

数学推导

一个小批量样本 XXX∈\inRm?nR^{m*n}Rm?n,其中批量大小为 nnn,输入个数为ddd,假设多层感知机有一个隐藏层,其中隐藏单元个数为 hhh,其中 H 为隐藏层的输出,由于隐藏层和输出层均是全连接层,可以假设隐藏层的权重参数和偏差参数分别为 WhW_{h}Wh?∈\inRd?hR^{d*h}Rd?hbnb_{n}bn?∈\inR1?hR^{1*h}R1?h,输出层的权重和偏差参数分别为WoW_{o}Wo?∈\inRh?qR^{h*q}Rh?qbob_{o}bo?∈\inRn?qR^{n*q}Rn?q
我们计算含单隐藏层的输出 OOO∈\inRn?qR^{n*q}Rn?q为:
H=XWh+bnH = XW_{h} + b_{n}H=XWh?+bn? O=HWo+boO = HW_{o} + b_{o}O=HWo?+bo?
将第 1 个表达式代入到第二个表达式:
O=(XWh+bh)Wo+bo=XWhWo+bhWo+boO = (XW_{h}+b_{h})W_{o} + b_{o} = XW_{h}W_{o}+ b_{h}W_{o} + b_{o}O=(XWh?+bh?)Wo?+bo?=XWh?Wo?+bh?Wo?+bo?
不难可以看出虽然神经网络引入了隐藏层,但依然等价于一个单层的神经网络:其中输出层权重参数为 WhWoW_{h}W_{o}Wh?Wo?,偏差参数为bhWo+bob_{h}W_{o}+b_{o}bh?Wo?+bo?

激活函数

ReLU函数ReLU函数ReLU: 简单的非线性变换,仅保留正数元素,

ReLu(x)=max(x,0)ReLu (x) = max(x,0)ReLu(x)=max(x,0)

在这里插入图片描述

sigmoid函数sigmoid函数sigmoid: 将元素的值变换到0 和1 之间的非线性变换,

sigmoid(x)=11+e?xsigmoid(x) = \frac{1}{1+e^{-x}}sigmoid(x)=1+e?x1?
在这里插入图片描述

tanh函数tanh函数tanh: 将元素的值变换到 -1 和 1 之间的非线性变换,

tanh(x)=1?e?2x1+e2xtanh(x) = \frac{1 - e^{-2x}}{1 + e^{2x}} tanh(x)=1+e2x1?e?2x?
在这里插入图片描述