文章目录
1、什么是人工神经网络
2、什么是神经元
3、什么是激活函数
线性激活函数
Sigmoid激活函数
双曲正切激活函数
修正线性单元(ReLU)激活函数
Leaky ReLU激活函数
Softmax激活函数
1、什么是人工神经网络
神经网络能够利用多层神经元学习复杂的模式,这些神经元会对数据进行数学变换。
输入层和输出层之间的层被称为“隐藏层”。
神经网络具有一种独特的能力,可以学习并识别数据中的复杂特征关系,而这些关系可能对于其他传统的算法来说难以直接发现和建模。
多层感知器(MLP)
上面的图表是一个多层感知器(MLP)。
一个MLP至少要有三层:输入层、隐藏层和输出层。
它们是完全连接的,即一层中的每个节点都通过权重与下一层中的每个节点相连。
深度学习这一术语用于指代由许多隐藏层构建的机器学习模型:深度神经网络。
2、什么是神经元
人工神经元(也被称为感知器)是一个数学函数。
它接收一个或多个输入,这些输入乘以被称为“权重”的值并相加。
然后,这个值被传递给一个非线性函数,称为激活函数,以生成神经元的输出。
- x值指的是输入,要么是原始特征,要么是前一层隐藏层的输入。
- 在每一层中,还有一个偏置b,它可以帮助更好地拟合数据。
- 神经元将值a传递给下一层中与之连接的所有神经元,或者将其作为最终值返回。
计算从线性方程开始:
在添加非线性激活函数之前:
3、什么是激活函数
激活函数是神经元应用的一个非线性函数,用于在网络中引入非线性特性。
如果第一个变量的变化对应于第二个变量的恒定变化,那么这种关系就是线性的。
非线性关系意味着第一个变量的变化并不一定对应于第二个变量的恒定变化。
然而,它们可能会相互影响,但看起来是不可预测的。
通过引入非线性,我们可以更好地捕捉数据中的模式。
这是一个直观的例子。
最佳拟合线性和非线性模型
线性激活函数
- 直线函数:a是一个常数
- 值可能会变得非常大
- 仅线性函数本身无法捕捉复杂的模式
Sigmoid激活函数
- 是一个非线性函数,因此可以捕捉更复杂的模式
- 输出值是有界的,因此不会变得太大
- 可能会受到“梯度消失”的影响
双曲正切激活函数
- 是一个非线性激活函数,因此可以捕捉更复杂的模式
- 输出值是有界的,因此不会变得太大
- 可能会受到“梯度消失”的影响
修正线性单元(ReLU)激活函数
- 是一个非线性函数,因此可以捕捉更复杂的模式
- 值可能会变得非常大
- 由于它不允许负值,因此可能无法捕捉某些模式
- 梯度可能趋于0,因此权重不会更新:“ReLU死亡问题”
Leaky ReLU激活函数
- 是一个非线性函数,因此可以捕捉更复杂的模式
- 尝试解决“ReLU死亡问题”
- 值可能会变得非常大
另外,除了使用0.01,它也可以是一个参数,该参数在训练过程中与权重一起学习。这被称为参数化ReLU (PReLU)。
Softmax激活函数
- 每个值的范围在0到1之间,并且所有值的和为1,因此可用于建模概率分布
- 仅用于输出层,而不是整个网络
参考: 人工智能学习指南