初识神经网络中的各种层和神经网络结构

一、卷积层、激活层、池化层

深入学习卷积神经网络中卷积层和池化层的意义

1、激活层

     所谓激活,实际上是对卷积层的输出结果做一次非线性映射。激活函数可以引入非线性因素,解决线性模型所不能解决的问题。[深度学习]人工神经网络中激励函数作用详解

      从上图中可以看到,输入信息x在神经元内首先经过加权求和,然后通过激活函数的非线性转换,将数据控制在一定范围区间内。转换的结果作为下一层神经元的输入,或作为结果进行输出。

      常见的激励函数:sigmoid函数、tanh函数、ReLu函数、SoftMax函数、dropout函数等。

2、池化层

     所谓池化(欠采样或下采样),主要用于特征降维,压缩数据和参数的数量,减小过拟合

二、全连接层

全连接层的作用是什么? - 魏秀参的回答 - 知乎

CNN 入门讲解:什么是全连接层? - 蒋竺波的文章 - 知乎

1、经过前面若干次卷积+激活+池化后,终于来到了全连接层(fully connected layers,FC)

     其实在全连接层之前,如果神经元数目过大,学习能力强,有可能出现过拟合。

     因此,可以引入dropout操作,来随机删除神经网络中的部分神经元,来解决此问题。

2、全连接层,在整个卷积神经网络中起到“分类器”的作用。

3、如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,

     全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。

三、输出层

1、最后一层全连接+Softmax

2、linear层:torch.nn.Linear()函数的理解

class torch.nn.Linear(in_features,out_features,bias = True

对应的线性变换公式如下所示:这里的A便是那个权重矩阵
这里的A便是那个权重矩阵
Parameter:
in_features :每个输入样本的大小
out_features : 每个输出样本的大小
bias :如果设置为False,则图层不会学习附加偏差。默认值:True
Shape:
Input: (N,in_features)
Output:(N,out_features)
weight : (out_features, in_features)
bias : (out_features,1)
Example:

m = nn.Linear(20, 30)
input = autograd.Variable(torch.randn(128, 20))
output = m(input)
print(output.size())

在这个案例中,in_features=20out_features=30, N=128,

因此x(128,20)weight(30,20)bias(30,1),故将weight转置之后带入上述线性变换公式有:
(128,20)*(20,30)+(30,1) = (128,30),所以,output.size是 (128,30)

猜你喜欢

转载自blog.csdn.net/ch206265/article/details/106962756