1989年,Yann LeCun在贝尔实验室训练了一个能识别手写邮政编码的卷积神经网络——LeNet。当时没有GPU,没有大数据,他用一台Sun工作站和几万张28×28的灰度图,硬是让机器学会了认数字。到了2012年,Alex Krizhevsky带着他的AlexNet杀入ImageNet大赛,把错误率从26%直接砍到15.3%,震惊了整个计算机视觉界。从此,卷积神经网络从学术圈的“冷门玩具”变成了工业界的“印钞机”。 这二十多年的跨越,就像建筑业从盖五层砖房到盖摩天大楼的飞跃。LeNet是那栋精心设计的小楼,结构精巧但高度有限;AlexNet则是钢结构加塔吊的巨厦,靠的是新材料、新工具和源源不断的建材。今天,我们就用“盖楼”的眼光,看看CNN这栋大楼是怎么一层一层盖起来的。

岗位关联

理解这段历史,你就掌握了深度学习“数据—算力—算法”三位一体的底层逻辑——这是AI从业者判断技术趋势、选择工具路线的基本功,也是面试中绕不开的“谈资”。

目录
  1. 可视化演示
  2. 神经网络始祖
  3. 数据燃料爆炸
  4. 深度架构演进
  5. 激活函数突破
  6. 训练屠龙之术
  7. 引爆深度学习
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示从LeNet到AlexNet的核心机制,通过源头/管道/节点/终端四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

从LeNet到AlexNet:LeNe LeNet时代与卷积网络起步 神经网络的低谷时期 核心机制可视化 从LeNet到AlexNet整体架构与关键组件

神经网络始祖

想象1989年的贝尔实验室:一台Sun工作站,几万张手写数字图片,Yann LeCun想做一个能自动读懂信封邮编的机器。他的LeNet-5只有5层结构——两层卷积、两层池化、一层全连接,总参数约6万。这在今天看来是“积木玩具”,但在当时,他发明了一套“盖楼四件套”:卷积层像拿着放大镜扫描信件的邮差,池化层像给照片缩略图,权重共享像整栋楼用同一套砖模,全连接层像最后的组长汇总意见。

这四件套的巧妙在于“权重共享”。一个普通全连接网络处理28×28的图片,需要784个输入节点;如果隐层有200个神经元,光这一层就要15万+参数。而LeNet通过卷积核共享权重,把参数量压缩到十分之一以下。就像盖楼时用标准砖模,不需要为每块砖单独定制——这一招直接决定了CNN在90年代那点算力下能不能跑起来。

我们来看看LeNet-5的核心尺寸计算:

代入公式:$(32-5+0)/1+1 = 28$。28×28的特征图就这样诞生了。权重共享让参数量骤减,LeNet成了深度学习的“起跑线”——所有后来者的图纸上,都画着那五层小楼的轮廓。

OutputSize=W−F+2PS+1\text{OutputSize} = \frac{W - F + 2P}{S} + 1
这个公式告诉你,一张图经过卷积层后,尺寸如何变化。就像盖楼时,每个房间长宽要扣除墙的厚度,再除以“步距”看能放几间房。
  1. W(输入尺寸)输入图片的边长。LeNet输入是32×32,像一块32米见方的地皮。
    W=32W = 32
  2. F(卷积核尺寸)卷积核大小,如5×5,相当于测量用的5米标尺。
    F=5F = 5
  3. P(填充量)在图片边缘补的零像素,像地皮周围留的施工通道。
    P=0P = 0
  4. S(步长)卷积核每次移动的像素数,像工人每检查完一块就迈多大步子。
    S=1S = 1

数据燃料爆炸

小楼盖得再好,没有建材也盖不高。90年代的CNN一直止步于手写数字,原因很简单:没有足够的数据。当时最大的公开图像集MNIST只有6万张训练图,而且全是一个类别——数字。到了2009年,华人科学家李飞飞站了出来,她要做一件疯狂的事:用众包方式从互联网收集了1400万张图片,人工标注出22000个类别,取名ImageNet。

这就是建材从“一卡车砖”到“一整座矿山”的爆发。LeNet时代的图片是28×28像素的灰度图,信息量极小;ImageNet的图片是224×224的彩色图,每张都包含了丰富的纹理、颜色、形状。如果LeNet的训练数据是几间样板房,ImageNet就是一座钢筋水泥的建材山,足以浇筑摩天大楼的地基。

数据规模变化可以用对数尺度来理解:

当模型参数数是6000万(AlexNet)时,没有120万张图就必然过拟合。数据就是CNN大楼的“混凝土”,没有它,再多钢筋(参数)也撑不起结构。

log⁡10(Ntrain):MNIST=4.78,ImageNet=6.08\log_{10}(N_{\text{train}}) : \text{MNIST}=4.78,\quad \text{ImageNet}=6.08
6万张到120万张,看似只差了20倍,但在对数坐标里,这是从10的4.78次方跳到10的6.08次方——信息量大了近两个数量级。就像从用砖头垒墙,升级到用预制板铺楼板。
  1. MNIST规模MNIST有6万张训练图片,手写数字,灰度图。
    NMNIST=60,000N_{\text{MNIST}} = 60{,}000
  2. ImageNet规模ImageNet ILSVRC有120万张训练图片,1000类彩色图。
    NImageNet=1,200,000N_{\text{ImageNet}} = 1{,}200{,}000
  3. 量级对比$120万 / 6万 = 20$倍,但类别从10类变成1000类,每个类别平均样本数反而接近。
    平均每类样本=1.2×106103=1200\text{平均每类样本} = \frac{1.2\times10^6}{10^3} = 1200

深度架构演进

有了建材,下一步是设计图。LeNet是五层小楼:卷积→池化→卷积→池化→全连接,每层之间规规矩矩。AlexNet的图纸则大胆得多:5层卷积+3层全连接=8层,总参数6000万,是LeNet的100倍。这就像从五层砖房变成八层钢结构——楼层的增加,让网络能学到更抽象的特征。

这背后的逻辑是“特征金字塔”。第一层卷积只能提取边缘、颜色斑块等低级特征;第二层能把边缘组合成纹理;第三层能把纹理拼成局部形状;到第五层,网络已经在识别“鸟嘴”“车轮”这种语义部件了。深层网络就像一个层层上报的施工队:基层工人报告“这里有白色竖线”,中层把竖线拼成“窗户”,高层看到的是“这是一栋教学楼”。

AlexNet的层间设计还引入了局部响应归一化(LRN),模仿生物神经元的“侧抑制”——某些神经元被激活时会压制周围的神经元,让响应更剧烈。把特征图尺寸变化列出来就是一张“楼层清单”:

这个从大到小的形变,体现了CNN的“暴力美学”——用逐层的空间压缩换取语义的浓缩。楼盖得越高,底层的细节越模糊,顶层的视野越宏大。

224→conv155→pool127→conv227→pool213→conv313→conv413→conv513→pool36→fc64096→fc74096→fc81000224 \xrightarrow{\text{conv1}} 55 \xrightarrow{\text{pool1}} 27 \xrightarrow{\text{conv2}} 27 \xrightarrow{\text{pool2}} 13 \xrightarrow{\text{conv3}} 13 \xrightarrow{\text{conv4}} 13 \xrightarrow{\text{conv5}} 13 \xrightarrow{\text{pool3}} 6 \xrightarrow{\text{fc6}} 4096 \xrightarrow{\text{fc7}} 4096 \xrightarrow{\text{fc8}} 1000
输入224×224的图片,经过卷积池化的“压缩”,逐步变成6×6的特征地图,最后压成1000个类别的概率分数。每一层都在做“信息提炼”——扔掉噪声,保留语义。
  1. 输入224×224×3彩色图,像一张高清照片进场。
    Input: 224×224×3\text{Input: } 224 \times 224 \times 3
  2. conv196个11×11卷积核,步长4,输出55×55×96。
    conv1: 224−114+1=55,深度=96\text{conv1: } \frac{224-11}{4}+1 = 55,\quad \text{深度}=96
  3. pool13×3最大池化,步长2,尺寸减半到27×27。
    pool1: 55−32+1=27\text{pool1: } \frac{55-3}{2}+1 = 27
  4. fc8最后全连接层输出1000维,对应1000个类别。
    fc8: 4096→1000\text{fc8: } 4096 \rightarrow 1000

激活函数突破

盖楼时最怕什么?怕混凝土在中间层“冻住”,导致上面盖不了、下面白干。神经网络训练也怕一个叫“梯度消失”的难题。LeNet时代用的激活函数是tanh和sigmoid,它们的导数最大只有0.25(sigmoid是0.25,tanh是1)。当网络叠到5层以上,梯度每过一层就缩水一次,传到第一层时几乎为零——这就是“梯度消失”。就像信号在层层转述中越来越弱,最后基层工人根本没收到指令。

2010年,有人发现用ReLU(修正线性单元)可以根治这个问题。ReLU的公式极其简单:

AlexNet全面换用ReLU后,训练速度比tanh快6倍。同时,ReLU的“置零”特性让神经元输出变得稀疏,像一个工地上只留关键工人在干活,大幅提高了计算效率。这层“新式混凝土”解决了深层网络的第一大障碍。

f(x)=max⁡(0,x)={x,x>00,x≤0f(x) = \max(0, x) = \begin{cases} x, & x > 0 \\ 0, & x \le 0 \end{cases}
ReLU像一位爽快的工头:正数来了照单全收,负数来了直接打回。因为它在正半轴的导数为1,梯度传到每一层都不会衰减,信号一路畅通无阻。
  1. 正半轴$x>0$时输出等于输入,梯度=1,信号不衰减。
    ∂f∂x=1(x>0)\frac{\partial f}{\partial x} = 1 \quad (x>0)
  2. 负半轴$x\le0$时输出强制为0,梯度=0,起到稀疏激活的效果。
    ∂f∂x=0(x≤0)\frac{\partial f}{\partial x} = 0 \quad (x\le0)
  3. 对比旧激活sigmoid导数最大0.25,tanh导数最大1,叠5层后梯度至少缩水$0.25^5 \approx 0.001$。
    gsigmoid≤0.25n\text{g}_{\text{sigmoid}} \le 0.25^n

训练屠龙之术

有了图纸和建材,还得有施工队。LeNet时代训练一个模型要几小时到几天,AlexNet如果只在普通CPU上跑,得跑几个月。2012年的关键突破是“双GPU并行训练”——AlexNet把网络分成上下两路,分别在两块GTX 580显卡上跑,显存不够就把层拆开分布。这相当于把工程队从几十人扩到上万人,而且是分班次同时施工。

GPU为什么快?因为CNN的卷积计算本质是矩阵乘法,GPU有上千个计算核心,可以同时做大量乘法加法。CPU是“一个博士生做100道题”,GPU是“1000个小学生每个人只做1道题”——在卷积这种可以大规模并行的场景下,后者的效率碾压前者。

另一个重要招式是Dropout。AlexNet在全连接层用了dropout=0.5,含义是每次训练随机让一半神经元“停工休息”,防止它们互相配合过度记忆训练集(过拟合)。这就像大公司搞“轮岗制”:每个人都可能被调走,所以不能只依赖某一个员工,整个团队必须更稳健。AlexNet的6000万参数,如果没有Dropout,几乎必然过拟合。再加上数据增强(把图片平移、翻转、变色制造新样本),等于给施工队源源不断送“仿真砖块”。

这三大招可以写成“工程项目式”训练:

这套“屠龙之术”解决了深层网络的第二大障碍——过拟合和训练太慢。

训练=GPU并行⏟施工人数×ReLU⏟效率×Dropout+增强⏟质检防塌\text{训练} = \underbrace{\text{GPU并行}}_{\text{施工人数}} \times \underbrace{\text{ReLU}}_{\text{效率}} \times \underbrace{\text{Dropout}+\text{增强}}_{\text{质检防塌}}
数据是砖,GPU是塔吊,ReLU是新式钢筋,Dropout是安全网——四者合力,才让6000万参数的八层大楼稳稳立住。
  1. GPU并行两个GPU各算一半,梯度在最后合并,训练时间几乎减半。
    Tdual≈Tsingle/1.7T_{\text{dual}} \approx T_{\text{single}} / 1.7
  2. Dropout掩码每个神经元以概率p被保留,训练时输出除以p保持期望不变。
    ri∼Bernoulli(p),y~=1p∑iriwixir_i \sim \text{Bernoulli}(p),\quad \tilde{y} = \frac{1}{p} \sum_{i} r_i w_i x_i
  3. 训练加速AlexNet在双GPU+ReLU下,速度比旧方法快60倍。
    Speedup≈60×\text{Speedup} \approx 60\times

引爆深度学习

2012年10月,ImageNet大赛公布结果:AlexNet以15.3%的top-5错误率夺冠,比第二名(26.2%)低了整整10.9个百分点。这不是普通的胜利,而是“降维打击”。组委会原以为冠军会小幅领先,没想到AlexNet直接把错误率砍掉四成。学术界沸腾了——不是因为AlexNet发明了什么全新的东西,而是它把过去20年积累的所有砖块、钢材、塔吊、安全网组合成一座摩天大楼,一次性验证了“深度+大数据+强算力”的组合威力。

为什么是AlexNet,而不是之前的任何网络?三个条件刚好在2012年同时到位:ImageNet的120万张图片(建材)、GTX 580 GPU的算力(塔吊)、ReLU+Dropout+数据增强的算法组合(图纸+安全网)。缺了任何一环,AlexNet都可能是另一个“理论上很美”的模型。就像盖楼必须有砖、钢、机、人同时在场,一个都不能少。

这场胜利的余波,直接点燃了深度学习革命。从2012年起,用CNN做视觉识别成为标配,之后VGG加深了网络,GoogLeNet引入了Inception,ResNet解决了退化问题——但所有后来的图纸上,都能看到AlexNet的影子。LeNet(深层CNN)的基因、数据驱动的理念、GPU训练的方法,全部沉淀为AI行业的“水电煤”。

一个值得深思的冷知识是:AlexNet的参数量(6000万)是LeNet(6万)的1000倍,但训练时间反而更短。这正说明了GPU并行和ReLU带来的效率革命有多大。

回顾这段历史,我们可以总结出一条“技术引爆”的黄金律法:

三者缺一不可,共同引爆了2012年的“第三次AI复兴”。

突破=算法创新⏟ReLU与Dropout+算力升级⏟GPU+数据爆发⏟ImageNet\text{突破} = \underbrace{\text{算法创新}}_{\text{ReLU与Dropout}} + \underbrace{\text{算力升级}}_{\text{GPU}} + \underbrace{\text{数据爆发}}_{\text{ImageNet}}
任何深度学习里程碑,本质上都是这三股力量的共振。你想在哪个方向做突破,就先补哪块短板。
  1. 算法创新ReLU解决梯度消失,Dropout抑制过拟合,数据增强扩充样本空间。
    Algorithm=ReLU+Dropout+Aug\text{Algorithm} = \text{ReLU} + \text{Dropout} + \text{Aug}
  2. 算力升级GPU的浮点运算能力比CPU高两个数量级。
    FLOPsGPU≈1012/s\text{FLOPs}_{\text{GPU}} \approx 10^{12}/\text{s}
  3. 数据爆发ImageNet类目数(1000)和样本数(120万)共同促使模型学到泛化特征。
    Data={1.2M images,1000 classes}\text{Data} = \{1.2M \text{ images}, 1000 \text{ classes}\}

AI 应用场景

场景一:工业质检的“LeNet式”迁移

阶段:模型选型与训练

解决的问题:工厂流水线上,传统人工质检靠肉眼判断产品瑕疵,速度慢且漏检率高。利用CNN的权重共享特性,即便只有几千张瑕疵样本,也能用小网络(如LeNet的变体)快速完成缺陷分类,把误检率从5%压到0.5%。

具体案例:一家电子元件厂使用28×28的灰度图像检测焊点缺陷。工程师参考LeNet的“卷积+池化+全连接”架构,搭建了一个仅4层的轻量CNN,部署在普通工控机上,单张检测耗时不到5毫秒。这就是“五层小楼”在现代工业中的余热。

场景二:自动驾驶中的“AlexNet式”预训练

阶段:特征提取与迁移学习

解决的问题:训练自动驾驶感知模型需要海量标注数据,但标注成本极高。AlexNet证明ImageNet大数据预训练可以学到通用的图像特征,现代做法就是用ImageNet上预训练好的CNN模型(ResNet/EfficientNet)做骨干网络,然后微调适应道路场景。

具体案例:某自动驾驶公司使用在ImageNet上预训练的ResNet-50作为车辆的视觉骨干网络,只标注了2万张道路图片就完成了车道线检测模型的训练,比从零训练节省了80%的标注成本。这个范式的源头,正是AlexNet验证的“大数据预训练+微调”。

Python 演示

python89 行
import numpy as npimport torchimport torch.nn as nnimport torch.optim as optimfrom torch.utils.data import DataLoader, Subsetfrom torchvision import datasets, transforms # 1. 定义"五层小楼"LeNet简易版class LeNet(nn.Module):    def __init__(self):        super(LeNet, self).__init__()        self.conv_layers = nn.Sequential(            nn.Conv2d(1, 6, kernel_size=5, padding=2),  # 第一层卷积            nn.ReLU(),            nn.AvgPool2d(2, 2),                        # 第一层池化            nn.Conv2d(6, 16, kernel_size=5),           # 第二层卷积            nn.ReLU(),            nn.AvgPool2d(2, 2)                         # 第二层池化        )        self.fc_layers = nn.Sequential(            nn.Linear(16 * 7 * 7, 120),            nn.ReLU(),            nn.Linear(120, 84),            nn.ReLU(),            nn.Linear(84, 10)        )     def forward(self, x):        x = self.conv_layers(x)        x = x.view(x.size(0), -1)        x = self.fc_layers(x)        return x  # 2. 数据准备:模拟"数据规模"的差异transform = transforms.Compose([    transforms.ToTensor(),    transforms.Normalize((0.1307,), (0.3081,))])full_data = datasets.MNIST(root="./data", train=True,                           download=True, transform=transform)small_data = Subset(full_data, torch.arange(6000))   # LeNet时代的小数据big_data = Subset(full_data, torch.arange(60000))   # AlexNet时代的"大数据"  # 3. 训练函数def train_model(model, data, epochs=3):    loader = DataLoader(data, batch_size=128, shuffle=True)    optimizer = optim.SGD(model.parameters(), lr=0.05)    loss_fn = nn.CrossEntropyLoss()    model.train()    for epoch in range(epochs):        total_loss = 0.0        for images, labels in loader:            optimizer.zero_grad()            outputs = model(images)            loss = loss_fn(outputs, labels)            loss.backward()            optimizer.step()            total_loss += loss.item()    return total_loss / len(loader)  # 4. 测试函数def test_model(model):    loader = DataLoader(full_data, batch_size=256)    model.eval()    correct = 0    total = 0    with torch.no_grad():        for images, labels in loader:            outputs = model(images)            _, preds = torch.max(outputs, 1)            correct += (preds == labels).sum().item()            total += labels.size(0)    return correct / total  # 5. 执行对比实验print("=== LeNet历史还原:小数据训练 ===")model_90s = LeNet()train_model(model_90s, small_data, epochs=2)print("小数据+5层楼准确率: %.4f" % test_model(model_90s)) print("\n=== AlexNet式升级:大数据训练 ===")model_modern = LeNet()train_model(model_modern, big_data, epochs=2)print("大数据+5层楼准确率: %.4f" % test_model(model_modern))print("\n结论:同一栋楼,建材翻10倍,准确率显著提升。")
目的:用MNIST复现“LeNet施工图”,对比小数据与大数据下的准确率,直观理解“数据燃料”对CNN效果的决定性影响。
  1. model_90s = LeNet()这是那栋“五层小楼”:两层卷积+两层池化+三层全连接。
  2. nn.Conv2d(1, 6, kernel_size=5, padding=2)第一层卷积:6个5×5的“放大镜”,从灰度图中提取边缘纹理。
  3. nn.AvgPool2d(2, 2)池化层,相当于“缩略图”操作,让特征图尺寸减半。
  4. Subset(full_data, torch.arange(6000))模拟90年代的“贫穷”:只用6000张训练图。
  5. Subset(full_data, torch.arange(60000))全部6万张图,对应数据燃料的10倍爆发。
  6. nn.CrossEntropyLoss()分类用的损失函数,衡量预测和真实标签的差异。
  7. optimizer.step()施工队按梯度信号“调整脚手架”,让网络一步步逼近正确答案。
  8. test_model验证整栋楼盖好后,在真实场景(全部测试图片)上的表现。

常见误区

误区很多人觉得“CNN不都是卷积+池化+全连接吗?AlexNet就是把LeNet做得更深更大,没什么技术含量。”

正解深度增加本身就是质变。LeNet是五层,AlexNet是八层,每层卷积核数从6/16增加到96/256/384,参数量从6万涨到6000万。更深+更宽让网络能学习分层特征:底层学边缘、中间学纹理、高层学语义部件。这就像五层砖房和八层钢结构大楼——不只是高度差,而是材料、结构、施工方式全面代际升级。

为何常见:因为两者的基本模块(卷积、池化)相同,容易让人忽略“规模改变性质”这一规律。

误区不少人认为“AlexNet赢在用了两块GPU,算力碾压对手,其他人不用GPU所以输了。”

正解GPU是必要条件,但不是充分条件。当年比赛的其他队伍也有GPU,但没有ReLU、Dropout和数据增强这三件套。ReLU解决了深层网络的梯度消失,Dropout防止过拟合,数据增强让6000万参数有足够的训练样本。算力是塔吊,但图纸(算法)和建材(数据)缺一不可。

为何常见:GPU是肉眼可见的硬件差异,而ReLU和Dropout是看不见的代码技巧,容易被忽略。

误区有人觉得“ImageNet不就是图片更多吗?从6万到120万,量变而已。”

正解不对。ImageNet有三个质变:一是类别从10类扩展到1000类,模型必须学会区分“狼”和“雪橇犬”这种细微差别;二是图片从28×28灰度变成224×224彩色,每张图的信息量增加数十倍;三是俯视、遮挡、复杂背景让识别难度大幅提升。就像建材从“标准砖头”升级为“预制钢板”——不止数量变了,材料性质也变了。

为何常见:只关注数量对比,忽略了数据分布和难度的维度差异。

误区有人认为“ReLU就是f(x)=max(0,x),算起来快,所以效果好。”

正解计算快只是表面原因。真正的核心是ReLU在正半轴梯度恒为1,解决了深层网络反向传播时的梯度消失问题。而tanh的导数最大为1,叠5层后梯度至少衰减到1/32;sigmoid更惨,叠5层后只剩0.001。ReLU让梯度像“绿色通道”一样从顶层直通底层,这才是训练成功的关键。

为何常见:ReLU的表达式太简单,让人误以为“简单=快=好”,忽视了它在梯度传播中的深层作用。

误区看完AlexNet的故事,有人得出“网络越深越好、越大越好”的结论,认为浅层网络没价值。

正解网络深度要匹配数据规模和算力。LeNet只有5层,但在MNIST上依然能达到99%以上的准确率。很多工业场景数据只有几千张,用几十层的ResNet反而会过拟合。正确的做法是“看菜下饭”:数据少用小楼,数据多才盖高楼。

为何常见:基于“AlexNet成功=够深”的简单归因,忽略了深度与数据、算力之间的匹配关系。

面试题

Q1. LeNet-5中权重共享的主要作用是什么?

单选题 · easy

  • A.增加网络层数
  • B.大幅减少参数量← 正确答案
  • C.加速卷积运算
  • D.提高准确率

答案:B。权重共享指同一个卷积核滑动遍历整张图,让一个特征检测器在图片各处复用。这就像整栋楼用同一套砖模,每块砖不需要单独定制,参数量下降一个量级。其他选项是副产品而非本质作用。

Q2. AlexNet在2012年ImageNet大赛中取得了怎样的成绩?

单选题 · easy

  • A.错误率26.2%,排名第一
  • B.错误率15.3%,比第二名低10.9个百分点← 正确答案
  • C.错误率50%,首次超过人类
  • D.错误率5%,冠军毫无悬念

答案:B。AlexNet以15.3%的top-5错误率夺冠,第二名的错误率是26.2%。差距之大让学术界感到震撼,这也证明了“深度CNN+GPU+大数据”的组合威力远超传统手工特征方法。

Q3. ReLU激活函数解决的核心问题是:

单选题 · mid

  • A.过拟合
  • B.梯度消失← 正确答案
  • C.训练速度慢
  • D.数据不足

答案:B。ReLU在正半轴的梯度恒为1,反向传播时梯度从顶层到低层几乎不衰减,解决了深层网络的梯度消失。训练速度提升是这一性质的副产品;过拟合要靠Dropout,数据不足要靠数据增强。

Q4. 下列哪项不是AlexNet相对LeNet的改进?

单选题 · mid

  • A.更深的8层结构
  • B.使用ReLU激活
  • C.使用支持向量机分类← 正确答案
  • D.使用Dropout防止过拟合

答案:C。AlexNet用Softmax做最后分类,而不是SVM。它继承了LeNet的CNN结构但加深了网络,引入了ReLU、Dropout和数据增强。SVM是传统机器学习方法,AlexNet的成功恰恰证明了端到端深度学习的优越性。

Q5. LeNet时代的参数量约6万,AlexNet约6000万,其主要原因是:

单选题 · mid

  • A.输入图片从32×32改为224×224
  • B.采用了更多卷积核和全连接层← 正确答案
  • C.增加了数据增强
  • D.使用了双GPU

答案:B。6400万参数主要来自高分辨率的图片输入和更宽、更深的卷积层、庞大的全连接层。数据增强和双GPU是训练手段而非参数量来源。层数、通道数和图片尺寸共同决定参数量。

Q6. 下列关于ImageNet的说法正确的是:

多选题 · mid

  • A.包含1400万张已标注图片← 正确答案
  • B.由李飞飞团队发起创建← 正确答案
  • C.只有10个类别的灰度图
  • D.推动了深度学习在视觉领域的发展← 正确答案

答案:ABD。ImageNet有1400万张图片、2.2万个类别,是李飞飞团队用众包方式构建的。AlexNet在ILSVRC(ImageNet子集)上夺冠后,深度学习取代了传统视觉方法。C选项描述的是MNIST。

Q7. Dropout在训练时随机丢弃一半神经元,其本质作用相当于:

单选题 · hard

  • A.减少参数量
  • B.提高并行度
  • C.集成多个子网络并抑制过拟合← 正确答案
  • D.加速数据加载

答案:C。Dropout每次随机丢弃不同神经元,相当于每次训练一个不同的子网络,最终效果近似对多个子网络做集成。这能让神经元不过度依赖“队友”,从而提高泛化能力。参数量并没有减少,推理时全部神经元都在工作。

Q8. 为什么AlexNet能在2012年取得成功?

多选题 · hard

  • A.GPU算力大幅提升← 正确答案
  • B.ImageNet大数据提供充足训练样本← 正确答案
  • C.ReLU解决了深层网络梯度消失← 正确答案
  • D.首次使用卷积神经网络

答案:ABC。AlexNet的成功是数据、算力、算法三者的共振:GPU让6000万参数的训练在几天内完成,ImageNet的120万张图提供充足建材,ReLU和Dropout解决了深层网络训练的技术障碍。D错误——CNN在1998年就有了,LeNet才是首次成熟应用。

Q9. 卷积层输出尺寸公式的正确形式是:

单选题 · easy

  • A.(W−F+2P)/S+1← 正确答案
  • B.(W+F−2P)/S−1
  • C.(W−F)/S
  • D.(W−F+2P)×S

答案:A。输出尺寸=(输入−卷积核+2×填充)/步长+1。该公式在LeNet中得出28=(32−5+0)/1+1,在AlexNet的conv1中得出55=(224−11)/4+1。其他选项混淆了运算关系。

Q10. 关于LRN(局部响应归一化)的描述正确的是:

多选题 · extreme

  • A.模仿生物神经元的侧抑制机制← 正确答案
  • B.对相邻特征图通道进行归一化← 正确答案
  • C.作用与批归一化完全相同
  • D.已在现代网络中广泛使用

答案:AB。LRN对同一位置的邻近通道做归一化,使激活值大的神经元相对更强,模仿神经元侧抑制。批归一化是沿每个通道对Batch做归一化,属于不同技术。LRN曾是AlexNet的创新点,但后续研究证明收益有限,现代网络已较少采用。