0%

CS231N 学习笔记

CS231N 课程描述和资源

CS231n 的全称是 CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络。该课程是斯坦福大学计算机视觉实验室推出的课程。
课程官网:http://cs231n.stanford.edu/
官方笔记:http://cs231n.github.io/
B 站视频:https://www.bilibili.com/video/av58778425
课程作业:https://github.com/Burton2000/CS231n-2017

Lecture 1:引言

主要是计算机视觉概述和背景。

  • 从 1960 年代末到 2017 年的计算机视觉简史。
  • 计算机视觉问题包括图像分类,目标定位,目标检测和场景理解。
  • Imagenet 是目前可用的图像分类中最大的数据集之一。
  • 从 2012 年在 Imagenet 竞赛中开始,CNN(卷积神经网络)一直是赢家。
  • CNN 实际上是由 Yann Lecun 于 1997 年发明的。
  • 近年来深度学习的成功主要来源于数据和算力的增长

Lecture 2:图像分类

数据驱动

数据驱动的分类方法是指:

  • 收集具有标注的图片数据集 (CIFAR10).
  • 使用机器学习来训练分类器.
  • 使用模型来预测新的图片.

KNN

KNN 用于图片分类:将两张图片先转化为两个向量(向量的维度为像素数量)$I_1$ 和 $I_2$,再计算两者的距离 $L_1$ 或者 $L_2$(距离的选择是一个超参数),找距离最近的 k 个图片的标签,让他们针对测试图片进行投票,把票数最高的标签作为对测试图片的预测。

距离函数

距离函数是 K 近邻算法的关键。常用的有 L1 距离,L2 距离等。通过不同的距离函数还可以将 K 近邻算法泛化到任何类型的数据上.

K 值

K 指的是邻居的个数,可以使用交叉验证调优。

超参数选择

K 近邻算法中的 K 值和距离函数就是典型的超参数:需要人为设置,而不能由算法学习得到。选择超参数的常见作法就是将数据集分为训练集,验证集,测试集。使用验证集来选择超参数,并在测试集得到结果。如果数据集较小,还可以采用交叉验证的方法进行选择.
划分数据集

交叉验证

交叉验证选择 K 值

缺点

  • 测试要花费大量时间计算,因为每个测试图像需要和所有存储的训练图像进行比较(Train , Test
  • 图像的分类是基于背景的,而不是图片的语义主体。

Lecture 3:损失函数和优化

Lecture 4:反向传播与神经网络

Lecture 5:卷积神经网络

Lecture 6:如何训练神经网络 I

Lecture 7:如何训练神经网络 II

Lecture 8: 深度学习软件

Lecture 9:卷积神经网络架构

Lecture 10:循环神经网络

Lecture 11:检测与分割

Lecture 12:可视化和理解

Lecture 13:生成模型

Lecture 14:强化学习

Lecture 15:深度学习高效的方法和硬件

Lecture 16:对抗性样本和对抗性训练

支持一根棒棒糖!