24/10/12 算法笔记 AlexNet

时间:2024-10-13 07:10:50

AlexNet采用深度网络结构,由8层组成,包括5个卷积和3个全连接层,这种深度结构使得网络能够学习到更复杂的特征表示

1.ReLU激活函数:

首次成功的在较深的网络中使用ReLU激活函数,解决了梯度消失问题,加快了训练速度

2.Dropout正则化:

为了减少过拟合,在全连接层1引入dropout机制随机丢弃一部分神经元的激活输出

3.局部响应归一化LRN:

这是一种规范化技术,用于控制神经元的激活强度,增强模型泛化能力。

4.重叠池化:

池化窗口的步长小于窗口大小,有效扩大训练集,减少过拟合

5.多GPU:

采用两块GPU并行训练,提高训练效率

net = nn. Sequential()
net.add(
    nn.Conv2D(96,kernel_size=11,strides = 4,activation='relu'),
    nn.MaxPool2D(pool_size=3,strides=2),
    nn.Conv2D(256,kernel_size=5,padding=2,activation='relu'),
    nn.MaxPool2D(pool_size=3,strides=2),
    nn.Conv2D(384,kernel_size=3,padding=1,activation='relu'),
    nn.Conv2D(384, kernel_size=3, padding=1, activation='relu'),
    nn.Conv2D(256, kernel_size=3, padding=1, activation='relu'),
    nn.MaxPool2D(pool_size=3, strides=2),
    nn.Dense(4096, activation='relu'), nn.Dropout(0.5),
    nn.Dense(4096, activation='relu'), nn.Dropout(0.5),
    nn.Dense(10))

看一下AlexNet好在哪里:

首先就是深度足够深,能学习复杂的特征表示

使用不同大小的卷积核来捕捉不同尺度的特征,较大的卷积核能够捕捉图像中粗略特征,较小的能捕捉更精细的特征。

使用填充,保持或减少特征图的空间尺寸,有助于保留更多信息。

使用正则化,减少过拟合,提高泛化能力

全连接层能将学习到的特征映射到最终的输出,这里使用两个4096个神经元的全连接层,有助于学习特征的高层次表示