CNN入门paper

本文介绍了卷积神经网络(CNN)的基础知识,包括CNN在图像、语音和时间序列中的应用,以及变量大小的卷积网络SDNN。文章详细讨论了卷积网络的局部感受野、共享权重和有时的子采样等核心思想。此外,还阐述了深度学习中卷积运算的算术,包括卷积层输出形状的计算,涉及输入形状、内核形状、零填充和步长等因素。还讨论了池化操作,如平均池化和最大池化的应用。

Convolutional Networks for Images, Speech, and Time-Series

INTRODUCTION
  1. multilayer back-propagation networks适用于图像识别(见PATTERN RECOGNITION AND NEURAL NETWORKS)
  2. 模式识别的traditional model中,需要:
    • hand-designed feature extractor:用来从输入图像中获取信息,并消除无关变量
    • trainable classier:将得到的feature vectors (or strings of symbols)分类
    • standard, fully-connected multilayer networks 可被用作classifier
  3. 传统模型的缺点:
    • 上千变量;
    • fully-connected architecture忽略了输入中的拓扑结构
CONVOLUTIONAL NETWORKS
  1. CNN中的三种architectural ideas(保证shift and distortion invariance):
    • local receptive fields
    • shared weights (or weight replication)
    • sometimes, spatial or temporal subsampling
VARIABLE-SIZE CONVOLUTIONAL NETWORKS, SDNN

A guide to convolution arithmetic for deep learning

Introduction

卷积层的输出shape受输入shape、kernel shape的选择、 zero padding and strides影响,而且这些性质之间的关系不易得到。但fully-connected layers的output size与the input size之间是独立的。

Discrete convolutions
  1. 神经网络主要源于仿射变换(affine transformation):输入一个vector,给它乘上一个matrix,得到输出vector,通常还要加上一个 bias vector。也就是线性变换+平移。

    齐次坐标:用N+1维来代表N维坐标Alt text
    这里写图片描述
  2. images无论是多少维,都可以表示为vector,它有如下性质:
    • 可以用多维数组存储表示
    • 存在一个或多个axes,如width axes和height axes
    • 每一个axis表示该data的不同view(如color image的R、G、B通道)
  3. 上述性质在仿射变换中未被利用,所有axes被同等对待,未考虑其topology信息,于是discrete convolutions闪亮登场٩(๑❛ᴗ❛๑)۶
  4. discrete convolution:
    • a linear transformation that preserves this notion of ordering
    • sparse(只有很少的input影响output)
    • reuse parameters(共享权值,不同位置有相同权值)
  5. 一个discrete convolution的例子:
    • 原始的图像数据称为input feature map
    • kernel在原始图像上滑动,每个位置计算:
    • 最终得到的结果为output feature maps
    • 有多个input feature maps的情况很常见,如图像的不同通道。这种情况下kernel是三维的,也可以说是多个,最后对应元素相加
    • 可以利用多个不同的kernels,产生所需数量的output feature maps的例子:
  6. kernels collection相关参数:(n,m,k1,,kN)
    • n:output feature maps数量
    • m : input feature maps数量
In object detection, an intersection over union (IoU) threshold is required to define positives and negatives. An object detector, trained with low IoU threshold, e.g. 0.5, usually produces noisy detections. However, detection per- formance tends to degrade with increasing the IoU thresh- olds. Two main factors are responsible for this: 1) over- fitting during training, due to exponentially vanishing pos- itive samples, and 2) inference-time mismatch between the IoUs for which the detector is optimal and those of the in- put hypotheses. A multi-stage object detection architecture, the Cascade R-CNN, is proposed to address these prob- lems. It consists of a sequence of detectors trained with increasing IoU thresholds, to be sequentially more selec- tive against close false positives. The detectors are trained stage by stage, leveraging the observation that the out- put of a detector is a good distribution for training the next higher quality detector. The resampling of progres- sively improved hypotheses guarantees that all detectors have a positive set of examples of equivalent size, reduc- ing the overfitting problem. The same cascade procedure is applied at inference, enabling a closer match between the hypotheses and the detector quality of each stage. A simple implementation of the Cascade R-CNN is shown to surpass all single-model object detectors on the challeng- ing COCO dataset. Experiments also show that the Cas- cade R-CNN is widely applicable across detector architec- tures, achieving consistent gains independently of the base- line detector strength. The code will be made available at https://github.com/zhaoweicai/cascade-rcnn.
<think>嗯,用户想了解如何入门课程学习(Curriculum Learning,简称CL),需要详细的学习路线。首先,我得确认用户的基础,可能他们已经有一定的机器学习知识,但不确定他们对CL的了解程度。可能需要从基础概念讲起,再逐步深入。 课程学习是模仿人类学习过程,由易到难的一种训练策略。用户可能需要了解CL的基本原理、为什么有效,以及如何应用到实际项目中。我应该分步骤来规划学习路线,从理论基础到实践应用,逐步推进。 首先,基础知识部分需要涵盖机器学习和深度学习的核心概念,因为CL通常应用于这些领域。然后是CL本身的概述,包括关键概念、历史发展和核心思想。接下来,数学基础也很重要,比如概率论、优化算法,这些是理解CL背后机制的关键。 之后,用户可能需要学习具体的算法和设计策略,比如如何设计课程、难度评估方法,以及不同的训练策略。经典论文和案例分析能帮助他们理解实际应用。实践部分需要推荐工具和框架,比如PyTorch或TensorFlow,并给出代码示例,这样用户能动手实践。 高级话题可能包括自动课程生成、多任务学习结合等,适合有一定基础的用户。资源推荐方面,书籍、论文和在线课程都是必要的。最后,项目实战和社区交流能巩固所学知识,并保持更新。 需要确保内容结构清晰,步骤明确,每个阶段都有具体的学习目标和资源推荐。同时,使用中文,避免专业术语过多,必要时解释概念。还要注意LaTeX格式的正确使用,特别是数学公式部分,确保用户能清晰理解公式内容。 可能用户的实际需求是在自己的研究或项目中使用CL,因此实践部分和案例尤为重要。要提供足够的代码示例和应用场景,帮助他们将理论应用到实际问题中。此外,强调持续学习和社区参与,因为这是一个快速发展的领域,保持更新很重要。 总结一下,学习路线应该分阶段,从基础到高级,理论与实践结合,提供丰富的资源和实践机会,帮助用户系统掌握课程学习的方法和应用。</think>以下是为课程学习(Curriculum Learning,CL)设计的详细入门路线,结合理论基础、工具实践和进阶路径,分阶段拆解学习步骤: --- ### **一、基础准备阶段(1-2周)** #### 1. 掌握机器学习基础 - **核心概念**:监督学习/无监督学习、损失函数、梯度下降、过拟合与正则化 - **必学内容**: - 多层感知机(MLP)、卷积神经网络CNN)、循环神经网络(RNN) - 常见框架:PyTorch/TensorFlow基础语法(如张量操作、自动求导) - **推荐资源**: - 书籍:《深度学习入门:基于Python的理论与实现》 - 课程:吴恩达《机器学习》Week1-3 #### 2. 理解课程学习核心思想 - **核心定义**:模仿人类教育过程,按难度递增顺序训练模型 - **关键概念**: - 课程设计(Curriculum Design) - 样本难度评估(Difficulty Measurer) - 训练策略(Training Scheduler) - **经典论文**: - Bengio团队2009年开创性论文《[Curriculum Learning](https://dl.acm.org/doi/10.1145/1553374.1553380)》 --- ### **二、理论深化阶段(2-3周)** #### 1. 数学基础强化 - **重点领域**: $$P(\text{样本难度})=f(\text{特征复杂度},\text{模型当前能力})$$ - 概率论(贝叶斯框架) - 优化理论(动态调整学习目标) - **推荐工具**:Jupyter Notebook实现简单概率分布实验 #### 2. 课程设计方法论 - **难度评估方法**: | 类型 | 示例 | 适用场景 | |---|---|---| | 人工标注 | 图像分辨率分级 | 小规模标注数据 | | 自动评估 | 损失值/置信度排序 | 大规模无监督数据 | - **课程策略对比**: ```python # 线性递增课程示例 def curriculum_scheduler(epoch, max_epoch): return min(epoch / 10, 1.0) # 前10轮逐步开放难度 ``` --- ### **三、实践进阶阶段(3-4周)** #### 1. 经典算法复现 - **项目案例**: 1. MNIST手写识别: - Baseline:直接训练(准确率≈99%) - CL策略:按数字复杂度(0→9)或笔画数排序 2. NLP文本分类: - 按句子长度/词频分级训练 - **代码框架**: ```python # PyTorch课程学习训练循环 for epoch in range(epochs): difficulty = curriculum_scheduler(epoch) batch = sampler.get_batch(difficulty) # 动态采样 outputs = model(batch) loss = criterion(outputs, labels) optimizer.step() ``` #### 2. 前沿技术探索 - **热点方向**: - **自动课程学习**(AutoCL):使用元学习自动生成课程 - **对抗课程**:GAN生成渐进式困难样本 - **多模态课程**:跨视觉/语言模态的联合课程设计 - **工具推荐**: - [Curriculum Metatraining](https://github.com/google-research/curriculum-metatraining)(Google官方实现) --- ### **四、持续提升路径** #### 1. 论文精读清单 1. 《[Progressive Learning of Category-Consistent Multi-Granularity Features](https://arxiv.org/abs/2104.03014)》(CVPR 2021) 2. 《[Self-Paced Learning with Diversity](https://proceedings.neurips.cc/paper/2014/file/310dcbbf4cce62f762a2aaa148d556bd-Paper.pdf)》(NeurIPS 2014) #### 2. 实战项目建议 - **初级**:在CIFAR-10上实现课程采样策略(准确率提升2-3%) - **高级**:在目标检测任务(如YOLO)中设计基于目标尺寸的课程 #### 3. 社区资源 - **论文跟踪**:关注ICML/NeurIPS/CVPR的"Curriculum Learning"专题 - **代码库**:Papers With Code的[Curriculum Learning板块](https://paperswithcode.com/task/curriculum-learning) --- ### **五、常见陷阱与解决方案** | 问题现象 | 原因分析 | 解决方法 | |---|---|---| | 课程效果不如随机训练 | 课程设计不符合任务特性 | 使用可微分课程(如[Teacher-Student Curriculum](https://arxiv.org/abs/1707.00183)) | | 模型陷入局部最优 | 难度递增过快 | 引入回火策略(Annealing)动态调整难度 | | 计算开销过大 | 实时样本筛选成本高 | 采用预计算+缓存策略 | --- 按照此路线系统学习后,可逐步掌握: 1. 人工设计课程的核心方法论 2. 自动课程生成的前沿技术 3. 在CV/NLP等场景的实际部署能力 建议每阶段配合1-2个小项目实践,持续跟踪最新研究动态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值