(三)多层感知机

时间:2024-03-23 14:35:35

1、隐含层

多层感知机在单层神经网络的基础上引入了一到多个隐藏层(hidden layer)。隐藏层位于输入层和输出层之间。
(三)多层感知机
输入和输出个数分别为4和3,中间的隐藏层中包含了5个隐藏单元(hidden unit)。由于输入层不涉及计算,图中多层感知机的层数为2。由图3.3可见,隐藏层中的神经元和输入层中各个输入完全连接,输出层中的神经元和隐藏层中的各个神经元也完全连接。因此,多层感知机中的隐藏层和输出层都是全连接层。

2、仿射变换

只通过乘以权重参数的线性变换和一次通过加上偏差参数的平移,而没有非线性变换的过程。

3、**函数

ReLU函数

ReLU(rectified linear unit)函数提供了一个很简单的非线性变换,ReLU函数只保留正数元素,并将负数元素清零。

relu(x)=max(x,0)

(三)多层感知机

Sigmoid函数

Sigmoid函数可以将元素的值变换到0和1之间

sigmoid(x)=11+exp(x)

(三)多层感知机

Tanh函数

Tanh(双曲正切)函数可以将元素的值变换到-1和1之间:

tanh(x)=1exp(2x)1+exp(2x)

(三)多层感知机

4、多层感知机

在分类问题中,我们可以对输出O做Softmax运算,并使用Softmax回归中的交叉熵损失函数。 在回归问题中,我们将输出层的输出个数设为1,并将输出O直接提供给线性回归中使用的平方损失函数。

5、随机初始化模型参数

如果初始化后每个隐藏单元的参数都相同,那么在模型训练时每个隐藏单元将根据相同输入计算出相同的值。接下来输出层也将从各个隐藏单元拿到完全一样的值。在迭代每个隐藏单元的参数时,这些参数在每轮迭代的值都相同。那么,由于每个隐藏单元拥有相同**函数和相同参数,所有隐藏单元将继续根据下一次迭代时的相同输入计算出相同的值。如此周而复始。这种情况下,无论隐藏单元个数有多大,隐藏层本质上只有1个隐藏单元在发挥作用。因此,我们通常会随机初始化神经网络的模型参数。