全连接层及优缺点
全连接层的优点:
- 自主学习:给我们一个x,我们就可以得到一个y
- 非线性映射:在每个输出节点之前都有一个激活函数
- 严谨推导过程:正向传播,反向传播
- 泛化能力强:因为这个权重矩阵是学出来的
- 降维/升维:输入是九维,输出是4维
全连接层的缺点:
- 全局感知:每个输入都与每个输出相连,这可能导致参数数量大。
- 权重参数众多:由于全连接的特性,模型可能会有大量的参数。
- 学习速度慢:由于参数众多,训练过程可能比较慢。权重矩阵太大了。
在代码中的体现:
self.iinear1 = torch.nn.Linear(3 * 3, 4)
# 在第一个隐层使用ReLU激活函数
self.relui = torch.nn.ReLU()
神经网络层的创建:
-
线性层(
Linear
):- 使用
torch.nn.Linear
创建一个线性层。 - 该层将输入维度从
3 * 3
(即9维)转换为输出维度4
。
- 使用
-
ReLU激活函数(
ReLU
):- 使用
torch.nn.ReLU
创建一个ReLU激活函数。 - ReLU(Rectified Linear Unit)是一种常用的激活函数,它可以增加神经网络的非线性,有助于解决梯度消失问题。
- 使用
下面代码是前向传播的简单展示,后向传播是自动的
def forward(self, x):
"""
定义神经网络的前向传播
x:图片数据,shape为(64,1 ,28,28)
"""
#搜先将x的shape转为(64, 784)
x = x.view(x.shape[0], -1)
#接下来进行前向传播
x = self.linear1(x)
x = self.relu1(x)
x = self.linear2(x)
x = self.relu2(x)
x = self.linear3(x)
x = self.softmax(x)
#上述一串:x=self.model(x) 就可以代替
return x;
卷积神经网络的演变
1. 局部连接
- 优点:局部感知能力减少了权重的数量,使得网络更加高效。
- 例子:使用4x4的卷积核,每个卷积核只有16个权重。
2. 参数共享
- 优点:通过参数共享进一步减少了权重的数量。
- 例子:使用2x2的下采样,每个操作点的权重是1x4,即4个权重。
卷积核:是通过给我们一个X,给我们一个Y,通过数据集学习出来的
3. 卷积核
- 定义:卷积核是用于提取特征的过滤器,通过训练数据自动学习得到。
- 图像的卷积:通过卷积操作,将卷积核在图像上滑动以提取特征。
4. 自动特征提取
- 卷积神经网络中的卷积核:是未知的,通过训练学习得到的,这个过程称为自动特征提取。
- 图像处理中的卷积核(滤波器):是已知的,根据具体需求设计,用于特定的特征提取。