“视觉不仅是智能的一部分,更是智能的基石。解开视觉智能的奥秘,就是解开智能的奥秘。"——这是李飞飞教授在CS231n课程开篇时说的话。

2012年,当AlexNet在ImageNet挑战赛上以压倒性优势夺冠时,整个计算机视觉领域被彻底颠覆。在此之前,传统方法在ImageNet上的错误率接近30%,而AlexNet将Top-5错误率降到了15.3%——这不是渐进式改进,而是范式革命。

斯坦福大学的CS231n课程(Convolutional Neural Networks for Visual Recognition,卷积神经网络与视觉识别)正是这场革命的系统化总结。作为Ilya Sutskever推荐的30u30权威清单中的第一项,CS231n不仅是深度学习入门的必修课,更是理解现代AI视觉理解能力的基石。

在深度学习成为主流之前,计算机视觉面临三个核心问题:特征工程瓶颈(依赖手工设计的特征如SIFT、HOG)、层次化表示缺失(无法像人类视觉系统那样从边缘到物体地理解图像)、端到端学习不可行(特征提取和分类分离,无法联合优化)。CNN通过端到端学习,自动从数据中提取特征,彻底改变了视觉识别的游戏规则。

本文将从问题根源、核心机制、解决方案、实践评估四个维度深度解读CS231n,包含完整的数学推导、算法流程和复杂度分析,面向专业读者提供系统化的技术总结。


传统计算机视觉的局限

问题一:特征工程的手工设计瓶颈

传统计算机视觉方法依赖手工设计的特征描述符(如SIFT、HOG、LBP),将图像转换为固定维度的特征向量,然后使用传统机器学习算法(如SVM、随机森林)进行分类。这种方法的根本问题在于:特征设计需要大量领域专家知识,不同任务需要不同的特征描述符;手工特征在训练集上表现良好,但在新场景、新数据上往往失效;难以捕捉图像中的复杂模式和高层语义信息;每增加一个新任务,都需要重新设计特征。

在2010-2011年的ImageNet挑战赛中,最佳方法使用SIFT特征和Fisher Vector编码,Top-5错误率接近30%,而人类错误率约为3%。当数据规模从数千张增长到数百万张时,传统方法的性能提升微乎其微,说明手工特征无法充分利用大规模数据的潜力。这正是李飞飞教授和她的学生在2000年代初期意识到的问题:数据的重要性被严重低估了

问题二:空间不变性和层次化表示的缺失

图像中的物体可能出现在任意位置、任意尺度、任意角度。人类视觉系统具有天然的层次化结构:从边缘、纹理等底层特征,到形状、部件等中层特征,再到物体类别等高层语义。传统方法通常只能捕捉单一层次的特征,难以构建层次化表示。需要滑动窗口、数据增强、多尺度特征金字塔等方法,计算成本高昂,且难以端到端优化。

传统方法可以捕捉底层特征(边缘、角点、纹理),但难以捕捉中层特征(形状、部件、局部模式),几乎无法捕捉高层语义(物体类别、场景理解)。这种单一层次的表示限制了传统方法在复杂视觉任务上的表现。

问题三:端到端学习不可行

在传统流程中,特征提取器(如SIFT)是固定的,不随任务变化;分类器(如SVM)在固定特征上训练;两者无法联合优化。这种分离带来的问题是:特征提取器可能提取了对当前任务不重要的特征,而重要的特征可能被忽略;同一套特征难以适应不同任务(如分类、检测、分割);无法通过反向传播优化整个系统。

深度学习(CNN)通过端到端学习解决了这个问题:从原始图像像素到分类结果,中间所有层都可以通过反向传播联合优化,特征自动适应任务需求。这种端到端的学习方式彻底改变了视觉识别的范式。


卷积神经网络的核心机制

卷积操作:局部感受野与参数共享

卷积操作是CNN的基础构建块,通过局部感受野(Local Receptive Field)捕捉图像的局部模式。给定输入特征图 $I$ 和卷积核 $K$,卷积操作在图像上滑动,在每个位置计算局部区域的加权和。

传统全连接网络面临两个根本性问题:参数爆炸(对于224×224×3的图像,全连接层需要千万级参数)和空间结构丢失(将2D图像展平为1D向量,丢失了像素间的空间关系)。卷积通过局部连接(每个输出神经元只连接局部区域)和参数共享(同一卷积核在整个特征图上共享)解决了这两个问题。

卷积操作的数学定义为:

$$ (I * K)[i, j, f] = \sum_{c=0}^{C-1} \sum_{m=0}^{k-1} \sum_{n=0}^{k-1} I[i \cdot s + m - p, j \cdot s + n - p, c] \cdot K[m, n, c, f] + b[f] $$

其中 $s$ 是步长(stride),$p$ 是填充(padding),$f$ 是输出通道索引。输出尺寸为:

$$ H_{out} = \left\lfloor \frac{H_{in} + 2p - k}{s} \right\rfloor + 1 $$

$$ W_{out} = \left\lfloor \frac{W_{in} + 2p - k}{s} \right\rfloor + 1 $$

卷积操作的关键特性包括:局部连接(连接数从 $H \times W \times C$ 减少到 $k^2 \times C$)、参数共享(参数量从 $H \times W \times k^2 \times C \times F$ 减少到 $k^2 \times C \times F$)、平移等变性(输入平移 $\Delta$,输出也平移 $\Delta$)。实际效果:输入 $224 \times 224 \times 3$,输出 $224 \times 224 \times 64$,全连接层需要约96亿个参数,卷积层(3×3,64个filter)只需1,728个参数,参数量减少了约560万倍

卷积操作示意图:展示卷积核在图像上滑动并计算特征图的过程

卷积操作示意图:卷积核在输入图像上滑动,在每个位置计算局部区域的加权和,生成特征图。左侧是输入图像(如28×28的灰度图),中间是3×3的卷积核,右侧是卷积后的特征图。用箭头和颜色标注卷积核如何在图像上滑动,以及如何计算每个输出位置的值。这种操作能够检测边缘、纹理等局部模式。(图片来源:CS231n课程材料)

池化操作:空间下采样与平移鲁棒性

池化操作通过空间下采样减少特征图尺寸,同时保持最重要的信息。最大池化取局部区域的最大值,平均池化取局部区域的平均值。

卷积层输出的特征图尺寸仍然较大,后续全连接层计算量可观;卷积层对物体在图像中的微小位置变化仍然敏感;相邻像素的特征往往高度相似,存在冗余信息。池化操作通过下采样解决了这些问题。

最大池化公式为:

$$ \text{MaxPool}(x)[i, j] = \max_{m, n \in \text{window}} x[i \cdot s + m, j \cdot s + n] $$

其中 $s$ 是步长(通常为2)。池化的作用包括:降维(减少特征图尺寸,降低计算量)、平移鲁棒性(对输入的小幅平移不敏感)、感受野扩大(使后续层能够看到更大的图像区域)、过拟合抑制(减少参数,降低过拟合风险)。

最大池化操作示意图:展示2×2最大池化如何将4×4特征图降采样为2×2

最大池化操作:左侧是4×4的特征图,用不同颜色表示不同的数值。右侧是经过2×2最大池化后的2×2特征图。用框和箭头标注池化窗口如何滑动,以及如何选择最大值。将2×2窗口内的最大值作为输出,实现空间下采样。这种操作既减少了计算量,又保持了最重要的特征信息。(图片来源:CS231n课程材料)

激活函数:非线性的引入

激活函数引入非线性,使神经网络能够学习复杂的非线性映射。ReLU(Rectified Linear Unit)定义为 $f(x) = \max(0, x)$。

如果没有激活函数,多层神经网络等价于单层线性变换:

$$ f(x) = W_3(W_2(W_1 x + b_1) + b_2) + b_3 = W’ x + b' $$

无法学习复杂的非线性函数。激活函数打破了这种线性组合,使网络能够逼近任意复杂的函数。

ReLU相比Sigmoid和Tanh的优势在于:训练更快(梯度计算简单,不存在饱和问题,梯度为1或0)、表达能力强(允许网络学习更复杂的特征)、稀疏激活(大部分神经元输出为0,实现稀疏表示,有助于特征选择)。Sigmoid和Tanh在饱和区域梯度接近0,容易导致梯度消失,这是深层网络训练的主要障碍之一。

反向传播:端到端优化的核心

反向传播(Backpropagation)通过链式法则计算梯度,实现端到端优化。对于 $L$ 层网络,前向传播计算:

$$ z^{(l)} = W^{(l)} a^{(l-1)} + b^{(l)} $$

$$ a^{(l)} = \sigma(z^{(l)}) $$

其中 $a^{(0)} = x$(输入),$a^{(L)} = \hat{y}$(输出),$\sigma$ 是激活函数。

直接使用数值梯度(有限差分)的计算复杂度是 $O(N^2)$,对于百万级参数的网络完全不可行。反向传播基于链式法则,计算复杂度是 $O(N)$,与前向传播相同,相比数值梯度有巨大优势。这使得训练深层神经网络成为可能。

反向传播从输出层开始,计算损失对输出的梯度,然后利用链式法则逐层向后计算:

  1. 输出层梯度:$\delta^{(L)} = \frac{\partial L}{\partial a^{(L)}} \odot \sigma’(z^{(L)})$
  2. 隐藏层梯度:$\delta^{(l)} = ((W^{(l+1)})^T \delta^{(l+1)}) \odot \sigma’(z^{(l)})$
  3. 参数梯度:$\frac{\partial L}{\partial W^{(l)}} = \delta^{(l)} (a^{(l-1)})^T$,$\frac{\partial L}{\partial b^{(l)}} = \delta^{(l)}$

训练难点与解决方案

在深层网络训练中,会遇到梯度消失、梯度爆炸、过拟合等问题。

梯度消失问题:在深层网络中,梯度在反向传播过程中指数级衰减。对于Sigmoid激活函数,$\sigma’(x) \leq 0.25$,经过 $L$ 层后,梯度最多衰减到 $0.25^L$。解决方案包括:ReLU激活(梯度为1或0,不衰减)、残差连接(梯度可以直接传播)、批量归一化(归一化激活值,使梯度更稳定)。

梯度爆炸问题:权重初始化不当或学习率过大,导致梯度指数级增长。解决方案包括:梯度裁剪($\text{grad} = \min(1, \frac{\tau}{||\text{grad}||}) \cdot \text{grad}$)、权重初始化(Xavier初始化 $W \sim \mathcal{N}(0, \frac{2}{n_{in} + n_{out}})$ 或He初始化 $W \sim \mathcal{N}(0, \frac{2}{n_{in}})$)。

过拟合问题:模型在训练集上表现好,但在测试集上表现差。解决方案包括:Dropout(训练时以概率 $p$ 随机将神经元输出置0)、L2正则化(在损失函数中加入权重惩罚 $L_{reg} = L + \lambda \sum_l ||W^{(l)}||_F^2$)、数据增强(通过旋转、翻转、裁剪等增加训练样本多样性)。

优化算法演进:从SGD($\theta_{t+1} = \theta_t - \alpha \nabla_\theta L(\theta_t)$)到Momentum(引入动量项加速收敛并抑制震荡),再到Adam(结合动量和自适应学习率,是目前最常用的优化器)。

反向传播示意图:展示梯度如何从输出层反向传播到输入层

反向传播过程:展示一个简单的3层网络,用不同颜色表示前向传播(蓝色)和反向传播(红色)。标注梯度如何从输出层反向传播到输入层,以及如何更新每一层的参数。梯度从输出层(损失函数)反向传播到输入层,通过链式法则计算每一层的梯度,然后使用梯度下降更新参数。(图片来源:CS231n课程材料)


CNN架构演进:从LeNet到ResNet

LeNet-5:CNN的首次成功

LeNet-5(1998)是第一个成功的CNN架构,由Yann LeCun设计用于手写数字识别。架构包括32×32灰度图像输入、2层5×5卷积层、2层2×2最大池化层、2层全连接层、10个类别输出。

LeNet-5证明了CNN的可行性,关键创新包括端到端学习(从原始像素到分类结果,无需手工特征)、参数共享(卷积层参数共享,大大减少参数量)、平移不变性(通过卷积和池化实现)。虽然LeNet-5在MNIST上取得了优异性能,但由于计算资源限制和数据规模不足,CNN在接下来的十几年中并未得到广泛应用。直到2012年AlexNet的出现,CNN才重新进入主流视野。

AlexNet:深度学习革命的起点

AlexNet(2012)在ImageNet 2012挑战赛上以压倒性优势夺冠。架构包括8层(5个卷积层 + 3个全连接层)、6000万参数、首次大规模使用ReLU激活、在全连接层使用Dropout(0.5)、数据增强、GPU训练。

正如李飞飞教授指出的,AlexNet与32年前Fukushima的neocognitron在架构上并没有本质不同,但有两个关键突破:**反向传播(1986)**提供了数学上严谨的学习规则,不再需要手工调参;数据(2000年代)认识到数据驱动高容量模型的重要性,这是深度学习的核心。她和她的学生在2000年代初期意识到数据的重要性被严重低估,创建了ImageNet数据集:从10亿张图像中清理出1500万张图像,22,000个物体类别。

2012年,Geoffrey Hinton和他的学生(包括Ilya Sutskever)使用卷积神经网络参加ImageNet挑战赛,将错误率几乎降低了一半。Top-5错误率从接近30%降至15.3%,相对改进约50%。使用2块GTX 580 GPU,训练时间从数月缩短到数天。2012年和AlexNet的胜利被认为是现代AI或深度学习革命诞生的历史性时刻

AlexNet架构图:展示8层网络的完整结构

AlexNet架构:展示AlexNet的完整架构,包括5个卷积层(标注卷积核大小、数量、步长)、3个全连接层(标注神经元数量)、以及ReLU、MaxPooling、Dropout等操作的位置。用不同颜色区分不同类型的层。5个卷积层提取特征,3个全连接层进行分类。ReLU激活和Dropout正则化是关键技术突破。(图片来源:Krizhevsky et al., 2012)

VGGNet:深度的重要性

VGGNet(2014)通过堆叠小的3×3卷积核实现深度网络。核心思想是使用3×3卷积核替代大的卷积核(如5×5、7×7),通过堆叠多个3×3卷积实现更大的感受野。

两个3×3卷积核的感受野等于一个5×5卷积核,但参数量更少(18个参数 vs 25个参数,减少28%)。第一个3×3卷积的感受野为3×3,第二个3×3卷积的感受野为5×5(考虑第一个卷积的输出)。VGG-16在ImageNet上的Top-5错误率为7.3%,相比AlexNet的15.3%有显著提升。VGGNet证明了深度的重要性,但同时也暴露了深度网络的训练难题,为后续的ResNet埋下伏笔。

ResNet:残差连接解决退化问题

ResNet(2015)通过残差连接(Residual Connection)解决了深度网络的退化问题,将网络深度推到了前所未有的152层。残差块定义为:$y = F(x, {W_i}) + x$,其中 $F(x, {W_i})$ 是残差函数(通常是2-3个卷积层),$x$ 是恒等映射(identity mapping)。

随着网络加深,出现了两个严重问题:梯度消失(梯度在反向传播过程中指数级衰减)和退化问题(更深的网络在训练集上的错误率反而更高,这不是过拟合,而是优化困难)。ResNet论文中的实验显示,56层网络的训练误差比20层网络更高。

残差连接有效的数学原因包括:

  1. 梯度流动分析:$\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} \left(1 + \frac{\partial F}{\partial x}\right)$,即使 $\frac{\partial F}{\partial x} \approx 0$,梯度 $\frac{\partial L}{\partial x} \approx \frac{\partial L}{\partial y}$,梯度可以直接传播。
  2. 恒等映射的易学习性:如果最优映射 $H(x) = x$,传统网络需要学习 $H(x) = x$,而残差网络只需学习 $F(x) = 0$,后者更容易。
  3. 信息流的保证:即使 $F(x)$ 学习失败,$x$ 仍然可以传递信息,网络不会比浅层网络更差。
ResNet残差块结构:展示恒等映射和残差函数如何结合

ResNet残差块:展示一个残差块的详细结构,包括输入x、两个3×3卷积层、ReLU激活、BatchNorm,以及残差连接(从输入直接连接到输出)。用箭头和颜色清晰标注信息流动路径。通过残差连接 $y = F(x) + x$,允许信息直接跳过卷积层,解决了深度网络的退化问题。(图片来源:He et al., 2016)

ResNet-152在ImageNet上的Top-5错误率为3.57%,首次超越人类水平(约5%)。网络深度从VGG的19层扩展到152层,甚至1000+层。ResNet的残差连接是深度学习架构设计的里程碑,它证明了只要设计得当,网络可以非常深,性能可以持续提升。残差连接为后续技术打下的基础包括:Transformer的残差连接、生成模型的跳跃连接(U-Net、StyleGAN等)、大模型的深度扩展(GPT-3、PaLM等模型都依赖残差连接训练深层网络)。

**迁移学习(Transfer Learning)**是CNN在实际应用中的关键策略。核心思想是在大型数据集(如ImageNet)上预训练CNN,然后在小规模任务特定数据集上微调预训练模型,或将预训练CNN作为特征提取器,训练新的分类器。迁移学习有效的原因包括:数据效率(小数据集无法训练大型CNN,但可以微调预训练模型)、泛化能力(ImageNet学到的特征具有通用性)、快速部署(无需从头训练,大大缩短开发周期)。实际应用包括医学影像、自动驾驶、工业检测等领域。

import torch
import torchvision.models as models

# 加载预训练ResNet
model = models.resnet50(pretrained=True)

# 冻结卷积层参数
for param in model.parameters():
    param.requires_grad = False

# 替换最后的全连接层
num_classes = 10  # 新任务的类别数
model.fc = torch.nn.Linear(model.fc.in_features, num_classes)

# 只训练新的分类层
optimizer = torch.optim.SGD(model.fc.parameters(), lr=0.001)

CNN的评估与影响

评估基准:ImageNet挑战赛

ImageNet大规模视觉识别挑战赛(ILSVRC)是计算机视觉领域的"奥运会”,包含120万训练图像、5万验证图像、10万测试图像、1000个物体类别。性能指标包括Top-1准确率(预测类别与真实类别完全匹配的比例)和Top-5准确率(真实类别在预测的前5个类别中的比例)。

ImageNet挑战赛为计算机视觉研究提供了统一的评估标准,推动了整个领域的发展。从2010年到2017年,ImageNet错误率从~30%降至2.25%,相对改进92.5%,这是深度学习史上最快速的进步之一。

性能演进轨迹清晰:2010-2011年传统方法错误率接近30%,人类水平约3%;2012年AlexNet将错误率几乎降低一半(从~30%到15.3%),相对改进约50%;2015年ResNet首次超越人类水平(Top-5错误率3.57% vs 人类约3-5%);2017年SENet达到2.25%,接近理论极限。从2012年AlexNet到2017年SENet,错误率从15.3%降至2.25%,相对改进85%。

模型 年份 深度 Top-5错误率 关键创新
传统方法 2010 - ~30% SIFT + Fisher Vector
传统方法 2011 - ~30% 改进的传统方法
AlexNet 2012 8 15.3% ReLU, Dropout, GPU训练
VGG-16 2014 16 7.3% 小卷积核,深度堆叠
ResNet-152 2015 152 3.57% 残差连接
ResNeXt 2016 50 3.03% 分组卷积
SENet 2017 50 2.25% 通道注意力

计算效率对比显示,AlexNet(60M参数,0.7G FLOPs,~6 GPU天)、VGG-16(138M参数,15.5G FLOPs,~14 GPU天)、ResNet-50(25M参数,4.1G FLOPs,~10 GPU天)、ResNet-152(60M参数,11.3G FLOPs,~20 GPU天)。

CNN的成功引发了计算机视觉应用革命:图像分类从手工特征到端到端学习、目标检测(R-CNN系列、YOLO、SSD)、语义分割(FCN、U-Net、DeepLab)、人脸识别(FaceNet、ArcFace)、医学影像(病灶检测、疾病诊断)。商业影响包括互联网(Google Photos、Facebook图像搜索)、自动驾驶(Tesla、Waymo的视觉感知系统)、安防监控(人脸识别、行为分析)、电商(商品识别、图像搜索)、医疗(医学影像分析、疾病筛查)。开源生态包括框架(TensorFlow、PyTorch、Caffe)、预训练模型(ImageNet预训练权重成为标准)、数据集(ImageNet、COCO、Open Images)。


CNN为现代AI打下的基础

层次化特征学习范式

CNN通过多层卷积自动学习从底层到高层的特征表示:第1层学习边缘、角点、纹理(Gabor-like filters),第2-3层学习局部模式、形状片段,第4-5层学习物体部件、复杂模式,全连接层学习高级语义、物体类别。对于 $L$ 层CNN,特征表示可以写为 $f(x) = f_L \circ f_{L-1} \circ \cdots \circ f_1(x)$。

这种层次化表示是通用函数逼近的关键,使网络能够从简单到复杂、从局部到全局地理解图像,模拟了人类视觉系统的处理方式。它为Transformer的层次化注意力、生成模型的层次化生成(VAE、GAN)、多模态模型的视觉编码器(CLIP、DALL-E)打下了基础。

端到端学习框架

CNN建立了端到端学习框架,从原始输入到最终输出,整个系统通过反向传播联合优化。核心优势包括自动特征工程(无需手工设计特征,网络自动学习最优特征)、任务自适应(同一架构可以适应不同任务)、可微分性(整个系统可微,支持梯度反向传播)。

端到端学习消除了特征工程的手工设计瓶颈,使模型能够自动适应任务需求,大大提高了模型的泛化能力和可扩展性。这为大语言模型(GPT、BERT等模型采用端到端训练)、多模态模型(视觉-语言模型如CLIP端到端学习跨模态对齐)、强化学习(深度RL如AlphaGo端到端学习从状态到动作的映射)打下了基础。

迁移学习和预训练范式

迁移学习的核心思想是在大规模数据集上预训练(如ImageNet),然后在下游任务上微调(fine-tuning),或作为特征提取器(feature extractor)。预训练模型 $f_\theta$ 在ImageNet上学习参数 $\theta$,然后通过微调或特征提取适应新任务。

ImageNet学到的特征(边缘、纹理、形状)具有通用性,可以迁移到其他视觉任务。小数据集无法训练大型CNN,但可以微调预训练模型,大大提高了数据效率。这为BERT的预训练-微调范式、GPT的few-shot learning、视觉-语言模型的预训练(CLIP、DALL-E等)打下了基础。

注意力机制的灵感

虽然注意力机制在Transformer中才大放异彩,但CNN的空间注意力概念为其奠定了基础。CNN中的注意力包括感受野(每个神经元只关注输入的一小部分区域)、特征图可视化(不同卷积核关注不同的空间区域)、空间池化(选择最重要的特征位置)。

注意力机制使模型能够动态地关注重要信息,提高了模型的表达能力和效率。CNN的局部注意力演进到Transformer的全局自注意力,CNN的固定感受野演进到Transformer的可学习注意力权重,CNN的空间注意力演进到Transformer的序列注意力。Transformer的自注意力可以看作是对CNN卷积的推广:

$$ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$

当 $Q, K, V$ 是空间位置编码时,这类似于可学习的空间卷积。

高效计算和可扩展性

CNN建立了高效计算和可扩展性的范式,关键技术包括参数共享(大幅减少参数量)、局部连接(减少计算量)、GPU并行化(卷积操作天然适合并行计算)。

这些技术使训练大规模模型成为可能,为后续的大模型训练奠定了基础。它们为Transformer的并行计算(自注意力机制可以并行计算所有位置)、大模型训练(数据并行、模型并行等技术都源于CNN的训练经验)、推理优化(模型压缩、量化等技术首先在CNN上验证)打下了基础。


参考文献

  • Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in neural information processing systems, 25.
  • Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.
  • He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. Proceedings of the IEEE conference on computer vision and pattern recognition, 770-778.
  • LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324.
  • Hubel, D. H., & Wiesel, T. N. (1959). Receptive fields of single neurones in the cat’s striate cortex. The Journal of physiology, 148(3), 574-591.
  • Marr, D. (1982). Vision: A computational investigation into the human representation and processing of visual information. MIT Press.
  • Fukushima, K. (1980). Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position. Biological cybernetics, 36(4), 193-202.
  • Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323(6088), 533-536.
  • CS231n Course Website
  • CS231n Course Notes
  • Papers With Code - Image Classification on ImageNet