视频字幕
激活函数是神经网络中的关键组件,就像生活中的开关一样。它决定神经元是否被激活,以及激活的程度。激活函数接收神经元的输入信号,经过特定的数学变换后,产生输出信号传递给下一层。这个过程为神经网络引入了非线性能力,使得网络能够学习和表示复杂的模式。
为什么神经网络需要激活函数呢?如果没有激活函数,神经网络只能进行线性变换。即使我们堆叠多层网络,多个线性变换的组合仍然是线性的。这意味着整个网络的表达能力等同于单层线性模型,无法学习复杂的非线性模式。而现实世界的数据往往具有复杂的非线性关系,因此我们需要激活函数来引入非线性,增强网络的表达能力。
常见的激活函数有多种类型,每种都有其独特的特点和适用场景。Sigmoid函数呈S型曲线,输出范围在0到1之间,常用于二分类问题。ReLU函数是修正线性单元,对于负值输出0,正值保持不变,计算简单且能缓解梯度消失问题。Tanh函数是双曲正切函数,输出范围在负1到1之间,相比Sigmoid函数具有零中心化的优势。还有Leaky ReLU和Softmax等其他变种,各有其特定的应用场景。
Sigmoid函数是神经网络中最经典的激活函数之一。它的数学表达式是1除以1加e的负x次方。Sigmoid函数具有S型曲线的特点,输出值严格限制在0到1之间,这使得它非常适合用于二分类问题的输出层。函数在x等于0时输出0.5,当x趋向正无穷时输出趋近1,当x趋向负无穷时输出趋近0。然而,Sigmoid函数也存在梯度消失的问题,特别是在输入值很大或很小时,梯度会变得非常小,影响网络的训练效果。
ReLU函数是现代深度学习中最常用的激活函数。它的定义非常简单:当输入大于0时,输出等于输入;当输入小于等于0时,输出为0。ReLU函数有许多优点:首先计算非常简单快速,只需要一个比较操作;其次能够有效缓解梯度消失问题,因为在正值区域梯度恒为1;还能产生稀疏激活,提高网络效率;并且符合生物神经元的激活特性。但是ReLU也存在Dead ReLU问题,即当神经元输入始终为负时,梯度为0,神经元无法更新,变成死神经元。