对全连接层(fully connected layer)的通俗理解_Machine Learning with Turing's Cat-CSDN博客_全连接层
全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。例如在VGG16中,第一个全连接层FC1有4096个节点,上一层POOL2是7*7*512 = 25088个节点,则该传输需要4096*25088个权值,需要耗很大的内存。
全连接层的前向传播:
下面用一个简单的网络具体介绍一下推导过程:
其中,x1,x2,x3为全连接层的输入,a1,a2,a3为输出
a_1=w_{11}*x_1+w_{12}*x_2+w_{13}*x_3+b_1}
a_2=w_{21}*x_1+w_{22}*x_2+w_{23}*x_3+b_2}
a_3=w_{31}*x_1+w_{32}*x_2+w_{33}*x_3+b_3}
卷积神经网络的全连接层
在CNN结构中,经多个卷积层和池化层后,连接着1个或1个以上的全连接层。与MLP类似,全连接层中的每个神经元与其前一层的所有神经元进行全连接。
全连接层(FC,fully connected layer)在整个卷积神经网络中起到分类器的作用,如果说卷积层,池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则其到将学到的"分布式特征表示"映射到样本标记空间的作用,在实际使用中,全连接层可由卷积操作实现,对前层是全连接的全连接层可以转化为卷积核为1x1的卷积,而前层是卷积层的全连接层可以转化为卷积核为hxw的全局卷积,h,w分别为前层卷积结果的高和宽.(啥意思,不懂啊)
全连接的核心操作就是矩阵向量乘积
全连接层中的每个神经元与其前一层的所有神经元进行全连接, 可以整合卷积层或者池化层中具有类别区分行的局部信息,本质就是由一个特征空间线性变换到另一个特征空间,目标空间的任一维--也就是隐层的一个cell--都认为会受到源空间的每一维的影响,不考虑严谨,可以说,目标向量是源向量的加权和.
在cnn中,全连接通常出现在最后几层,用于对前面设计的特征做加权和,比如mnist, 前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权.(卷积相当于全连接的有对全连接层(fully connected layer)的通俗理解_Machine Learning with Turing's Cat-CSDN博客_全连接层意弱化,按照局部视野的启发,把局部之外的弱影响直接抹杀为零,还做了一点强制,不同的局部所使用的参数居然一致,弱化使参数变少,节省计算量,又专攻局部不贪多求全,强制进一步减少参数,少即是多).为了提升cnn网络性能,全连接层每个神经元的激励函数一般参用relu函数,最后一层全连接层的输出值被传递给一个输出,可以采用softmax逻辑回归(softmax regression)进行分类, 该层也可以称为softmax层. 对于一个具体的分类任务, 选择一个合适的损失函数是十分重要的,
在rnn中,全连接用来把embedding空间拉到隐层空间,把隐层空间转回label空间等.
什么是Flatten
Flatten 是指将多维的矩阵拉开,变成一维向量来表示。
程序实现?