斯坦福CS231n学习笔记:DL与CV教程 (1) | 引言与知识基础

在这里插入图片描述

前言

  • 📚 笔记专栏:斯坦福CS231N:面向视觉识别的卷积神经网络(23)
  • 🔗 课程链接:https://www.bilibili.com/video/BV1xV411R7i5
  • 💻 CS231n: 深度学习计算机视觉(2017)中文笔记:https://zhuxiaoxia.blog.csdn.net/article/details/80155166
  • 🔥 2023最新课程PPT:https://download.csdn.net/download/Julialove102123/88734395

1.课程简介

CS231n 是顶级院校斯坦福出品的深度学习与计算机视觉方向专业课程,核心内容覆盖神经网络、CNN、图像识别、RNN、神经网络训练、注意力机制、生成模型、目标检测、图像分割等内容。

课程最后一版公开课视频为2017版,但是课程PPT最新的已经更新到2023版,见「2023最新CS231NPPT」,此外,需要关注进阶技术内容的同学可以看一下「密歇根EECS498:深度学习与计算机视觉课程(2019)」

2. 课程内容

第1部分 Lecture1-3 深度学习背景知识简单介绍

  • 课程引入与介绍
  • KNN 和线性分类器
  • Softmax 和 SVM 两种损失函数
  • 优化算法(SGD等)

第2部分 Lecture4-9 卷积神经网络

  • CNN及各种层次结构(卷积、池化、全连接)
  • 反向传播及计算方法
  • 优化的训练方法(Adam、Momentum、Dropout、Batch-Normalization)
  • 训练 CNN 的注意事项(参数初始化与调优)
  • 深度学习框架(TensorFlow、Caffe、Pytorch)
  • 线性CNN结构(AlexNet、VGGNet、GoogLeNet、ResNet)

第3部分 Lecture10-16 计算机视觉应用

  • RNN(语言模型,image captioning等)
  • 目标检测(R-CNN、Fast / Faster R-CNN、YOLO、SSD等)
  • 语义分割(FCN、Unet、SegNet、deeplab等)
  • 神经网络可视化与可解释性
  • 生成模型与 GAN
  • 深度强化学习

3. 课程学习目标

  1. 实用技能:理解如何从头开始编写、调试和训练卷积神经网络。

  2. 工具技术:集中于大规模训练这些网络的实用技术,以及 GPU(例如,将涉及分布式优化、CPU 与 GPU 之间的差异等),还可以查看诸如 Caffe、TensorFlow 和 (Py)Torch 等最先进的软件工具的现状。

  3. 应用创作:一些有趣的主题,如「看图说话」(结合 CNN + RNN),再如下图左边的 DeepDream,右边的神经风格迁移 NeuralStyle 等。

4. 课程先修条件

1)熟悉 Python(并了解 numpy 的使用),本课都用 Python 编写,如果要阅读理解软件包的源代码 C++ 会有帮助。

2)大学微积分(如求导),线性代数(了解矩阵)。

3)有机器学习的背景,大概 CS229 水平,非常重要核心的机器学习概念会再介绍的,如果事先熟悉这些会对课程有帮助的,我们将制定成本函数,利用导数和梯度下降进行优化。可前往文末获取 ShowMeAI 原创的CS229课程速查表。

4)有计算机图像基础会更好,但不是非常严格。

5. 计算机视觉简介

5.1 计算视觉历史

在这里插入图片描述

  1. 16世纪最早的相机:暗箱

  2. 1963年第一篇计算机视觉博士论文「Block world-Larry Roberts」,视觉世界简化为简单的几何形状,识别它们,重建这些形状。

  3. 1996年MIT暑期项目「The Summer Vision Project」目的是构建视觉系统的重要组成部分。

  4. 1970s 的 MIT 视觉科学家 David Marr 编写了《VISION》,内容有计算机视觉的理解、处理开发、识别算法,他提出了视觉表现的阶段,如原始草图的零交叉点,圆点,边缘,条形,末端,虚拟线,组,曲线边界等概念:

  5. 1973年后对于如何识别和表示对象,斯坦福科学家提出「广义圆柱体」和「圆形结构」,每个对象都是由简单的几何图形单位组成。

  6. 1987年 David Lowe 尝试用 线 和 边缘 来构建识别。

  7. 1997年 Shi & Malik 提出,若识别太难了,就先做目标分割,就是把一张图片的像素点归类到有意义的区域。

  8. 2001年此时的机器学习也快速发展了(尤其是统计学习方法),出现了SVM(支持向量机模型)、boosting、图模型等方法。Viola & Jones 发表了使用 AdaBoost 算法进行实时面部检测的论文 「Face Detection」,而后2006年富士推出可以实时面部检测的数码相机

  9. 1999 年 David Lowe 发表 “SIFT” & Object Recognition,提出 SIFT 特征匹配,思路是先在目标上确认关键特征,再把这些特征与相似的目标进行匹配,来完成目标识别。从90年代到2000年的思想就是基于特征的目标识别。

  10. 2006年 Lazebnik, Schmid & Ponce 发表「Spatial Pyramid Matching」,图片里的各种特征描述了不同场景,空间金字塔匹配算法的思想就是从图片的各部分各像素抽取特征,并把他们放在一起作为一个特征描述符,然后在特征描述符上做一个支持向量机。

  11. 2005年后来的研究 方向梯度直方图 和 可变形部件模型,目的是将特征放在一起后,如何辨认人体姿态。

  12. 21世纪早期,数码相机快速发展,图片质量提高,也真正有了标注的数据集,它能够衡量目标识别的成果。数据集 PASCAL Visual Object Challenge 有 20 个类别,每个种类有成千上万张图片,供团队开发算法来和数据测试集做对抗训练,来看检测效果有没有优化。

  13. 而后普林斯顿和斯坦福提出怎么识别大部分物体,这个问题也是由机器学习中的一个现象驱动的,机器学习算法在训练过程中很可能会过拟合(只对现有的这些数据完美拟合,但对未知数据不一定完美)。部分原因是可视化的数据非常复杂(像是记住了每道题),从而模型维数比较高,输入是高维的模型,并且还有一堆参数要调优,当我们的训练数据量不够时很快就会产生过拟合现象,这样就无法很好的泛化。

因此有了两方面动力:① 识别万物;② 克服机器学习的瓶颈-过拟合问题。

  1. 针对上述问题开展了 ImageNet 项目,在网络上收集了上亿张图片,用 WordNet 字典来排序,这个字典有上万个物体类别,不得不用 Amazon Mechanical Turk 平台来排序、清洗数据、给每张图片打上标签,最终得到的 ImageNet 有 1500 万甚至 4000 万图片分成了 22000 多类的物体或场景。它将目标检测算法的发展推到了新高度。

  2. 2009年为了推动基准测试的进展,ImageNet 开始组织了 ImageNet 大规模视觉识别竞赛,筛选了更严格的测试集,140万目标图像,有1000种目标类别,分类识别来测试计算机视觉算法。
    下图为图像分类结果,纵轴为比赛结果的错误率,2012年的错误率下降的非常显著,这一年获头奖的算法是一种卷积神经网络模型。

5.2 计算机视觉近代技术发展

卷积神经网络(Convolutional Neural Networks,CNN)已成为图像识别中最重要的模型之一。

2010年的 NEC-UIUC 仍然用到了层次结构、检测边缘、不变特征。在2012年才有重大突破,多伦多的博士生和导师创造了7层的 CNN,称为 SuperVision 现在叫做 AlexNet。

2014年谷歌的 GoogLeNet 和牛津大学的VGG有19层网络。

2015年微软亚洲研究院发表了残差网络,有152层。

CNN早在1998年由 Yann LeCun 团队在贝尔实验室发明的,他们使用 CNN 进行数字识别,用于识别手写支票和邮件地址,当时的 CNN 和后续的很多典型 CNN 模型结构是相似的,输入是原始像素,有很多卷积层和下采样以及全连接层。

随着计算机算力的提升,像 GPU 这种图像处理单元超高的并行计算能力引入,人们开发出了更大的CNN模型和架构。

在算力的支撑下,只扩大模型的规模,沿用经典的方法和算法就能有很好的结果,这种增加计算的思想有着很重要的地位。还有数据的创新,现在有了很多标记的数据,我们可以实现更强大的模型。

后来也有很多创新的 CNN 结构引入,帮助模型可以在更大更深的情况下,也可以很好地训练和对抗过拟合。

对视觉智能的探索远远超出了图像识别的范围,如图像语义分割、知觉分组他们没有给整张图片打上标签,我们要理解的是每个像素。这些任务是3D重构、动作识别、增强现实、虚拟现实等重要的支撑。

如老师 Johnson 在2015CVPR发表的「Image Retrieval using Scene Graphs」,视觉基因组这个数据集,不仅框出物体还要描述图像,作为整个大图形语义相关的概念,不仅包括对象的身份,还包括对象关系、对象属性、动作等,视觉系统可以做很多事情。

当看到上方的图片时人们可以丰富的描述这个场景,借助于他们的储备知识和过往经验又可以详细描述每个人的身份历程等。

这是典型的计算机视觉任务「看图说话 / image captioning」,它以一种非常丰富而深刻的方式去理解一张图片的故事,也是目前依旧在不断推进的研究领域之一。

6. 拓展学习

  1. 「2023最新CS231NPPT」,
  2. 「密歇根EECS498:深度学习与计算机视觉课程(2019)」

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Uibot (RPA设计软件)网页表单填写————课前材料四

微信群发助手机器人的小项目友友们可以参考小北的课前材料二博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~) 紧接着小北的前两篇博客,友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#x…

USB micro输入口中三个问题详解——差分信号、自恢复保险丝SMD1210P050TF、电容滤波

前言:本文对USB micro输入口中遇见的三个问题进行详解:差分信号、自恢复保险丝SMD1210P050TF、电容滤波 目录: 差分信号 自恢复保险丝SMD1210P050TF 电容滤波 如下图,USB为U-F-M5DD-Y-1型号(9个引脚,除…

【AIGC-文本/图片生成视频系列-9】MagicVideo-V2: 多阶段高美感视频生成

最近得益于扩散模型的快速发展,文本到视频(T2V)模型的激增。 今天要介绍的是字节的MagicVideo-V2,一个新颖的多阶段 T2V 框架,它集成了文本到图像 (T2I)、图像到视频 (I2V)、视频到视频 (V2V) 和视频帧插值 (VFI) 模块…

LeetCode讲解篇之78. 子集

文章目录 题目描述题解思路题解代码 题目描述 题解思路 初始化一个start变量记录当前从哪里开始遍历搜索nums 搜索过程的数字组合加入结果集 然后从start下标开始遍历nums,更新start,递归搜索 直到搜索完毕,返回结果集 题解代码 class …

LabVIEW通过视频识别开发布氏硬度机自动化测量系统

LabVIEW通过视频识别开发布氏硬度机自动化测量系统 概述: 在当前的工业检测与自动化领域,对于精确测量技术的需求日益增长。特别是在材料硬度测试领域,布氏硬度机的自动化测量出现在越来越多的使用中。展示了一个基于LabVIEW开发的布氏硬度…

自定义C#类库(.dll文件)

环境配置 操作系统:Windows 10 开发工具:Visual Studio 2022 .Net桌面开发环境: 开发步骤 (一)创建C#类库项目 (二)配置项目名称和项目路径 (三)选择所使用的框架&a…

聊聊websocket那些事

前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 一、什么是websocket? WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议。 它是 HTML5 中的一种新特性,能够实现 Web 应用程序和服务器之间的实时通信,…

大量的视频如何批量随机分割的方法:批量剪辑不求人

在处理大量视频文件时,经常要进行随机分割,满足不同的需求。制作短视频、片段集锦等,批量随机分割视频都是一个高效的方法。下面来看云炫AI智剪如何操作的吧。 分割后的视频缩略图展示,被分割的视频自动分类保存在对应的文件夹中。…

Editplus配置Java运行环境

目录 找工具(图1) 编译Java:-d classes是在文件classes编译(图2) 运行Java:-classpath classes是在文件classes运行(图3) 编译和运行Java (图4-5) 找工具…

张载为往圣继绝学,唯一的错是不够强大

“自古雄才多磨难,从来纨绔少伟男。” 张载,人称“横渠先生”。他在横渠镇,授徒讲学,恢复古礼,试验井田,写书《正蒙》。张载讲学关中,弟子多为关中人,其学派被称作关学。 张载自学…

YOLOv5源码中的参数超详细解析(7)— yolo.py

前言:Hello大家好,我是小哥谈。YOLOv5是一种先进的目标检测算法,它可以实现快速和准确的目标检测。yolo.py是YOLOv5项目中的一个Python文件,用于实现目标检测算法。该文件包含了YOLOv5模型的定义、训练和推理过程。本节课就结合源码对yolo.py文件进行逐行解析~!🌈 前期…

C++I/O流——(4)文件输入/输出(第一节)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 含泪播种的人一定能含笑收获&#xff…

8 - MySQL数据读写分离|MySQL多实例

MySQL数据读写分离|MySQL多实例 MySQL数据读写分离数据读写分离如何实现数据的读写分离提供数据读写分离服务的软件(中间件)maxscale 软件提供的读写分离服务的工作过程配置数据读写分离结构 提供数据存储服务 MySQL多实例 MySQL数据读写分离…

二分-补题

文章目录 造海船描述输入描述输出描述样例输入 1样例输出 1提示题解 寻找第一个1题目描述输入描述输出描述测试用例题解 查找数字是否出现描述输入描述输出描述样例输入 1样例输出 1题解 字典找数描述输入描述输出描述样例输入 1样例输出 1题解 寻找第一个偶数题目描述输入描述…

关于 setData 同步异步的问题

小程序官方文档中的回答解释: 所以大概意思就是: 1.setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新,比如下面的例子: const a 1 this.setData({b: a ? a : , }) console.log(that.data.b) // 1 2. setData在视图层的操作是异步,…

自定义白平衡调节的步骤 白平衡怎么设置好 白平衡和色温的关系 用什么软件调节白平衡

不管是拍摄视频/图片,还是视频/图片后期处理,白平衡调节都是很重要的环节,比如在氛围感很好咖啡厅内拍一张照,但是拍出来的人物脸色蜡黄,就是因为白平衡没设置好,下面就说说自定义白平衡调节的步骤&#xf…

java: 5-6 break

文章目录 1. break1.1 介绍1.2 语法和流程图1.3 入门练习1.4 细节说明1.5 练习 【老韩视频p137-】 1. break 看个需求:随机生成 1-100 的一个数,直到生成了 97 这个数,看看你一共用了几次? 【思路分析:循环,但是循环的次数不知道…

大厂咋做支付系统的核对?

核对是保障资金安全的重要机制。 时效角度,主要有: (准)实时核对 准确性不如离线核对,且需相应实时核对平台建设 离线核对(如 T1 核对) 主要问题是发现问题的时机较为后置,部分场景…

Java基础之并发篇(二)

1、前言 本篇主要基于Java基础之并发篇(一)继续梳理java中关于并发相关的基础只是。本篇基于网络整理,和自己编辑。在不断的完善补充哦。 2、synchronized 的原理是什么? synchronized是 Java 内置的关键字,它提供了一种独占的…

【复现】大华 DSS 数字监控系统 SQL 注入漏洞_18

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 大华DSS是大华的大型监控管理应用平台,支持几乎所有涉及监控等方面的操作,支持多级跨平台联网等操作。 可…