我是 CNN 和 NN 的新手。我正在阅读这个博客:CNN,我对这部分感到困惑:让我感到困惑的是将对输入向量/矩阵执行的操作。我们会使用典型的 ANN 方程:“O = WT * input”吗?然后在它上面加一个sigmoid?
FC 层如何在典型的 CNN 中工作
数据挖掘
神经网络
2021-09-18 11:07:51
2个回答
是的,基本上一个典型的 CNN 由两部分组成:
卷积层和池化层,其目标是从图像中提取特征。这些是网络中的第一层。
最后一层,通常是完全连接的 NN,其目标是对这些特征进行分类。
后者确实有一个典型的方程(即 ), 在哪里是一个激活函数。通常在 CNN 的上下文中,是一个ReLU,除了最后一层的激活函数,是根据问题的性质来选择的。最常见的情况是:
- Sigmoid 激活函数适用于二元分类问题。
- Softmax 激活函数实际上适用于二元和多类分类问题。
- 对于回归问题,最后一层没有激活。
最后一点我想说的是,在进入第一个 FC 层之前,前一层的输出是flattened。我的意思是该张量的(通常为 3 个)维度被布置成一个大维度。
例如一个形状为的张量, 当展平时会变成.
基本上,是的。但是为了将输入从卷积层或最大池化层传递到全连接层,您需要“展平”输入张量。也就是说,要么从卷积层展平张量/多维数组,要么使用诸如全局平均池之类的东西,将张量减少为向量。
您可以检查不同框架中的代码片段,这将有助于您了解该过程。
另外,应该注意的是,全连接层不仅用作 CNN 中输出类概率的最后一层,例如 VGG 网络,它们最后有 2-3 个全连接层。
最后一点,要获得课程分数,您通常(并非总是!)使用 Softmax,而不是简单的 sigmoid。Softmax 确保输出向量中的值之和等于 1。
其它你可能感兴趣的问题