(2023版)斯坦福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/624489.shtml

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

相关文章

NLP论文阅读记录 - 2022 | WOS 用于摘要法律文本的有效深度学习方法

文章目录 前言0、论文摘要一、Introduction1.1目标问题 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 Effective deep learning approaches for summarization of legal texts(22&#x…

Linux -- Nginx服务基础

4.1Nginx服务基础 Nginx(发音为[engine x])专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消 耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求),正因 为如此,…

vscode中关于python的一些常用配置

文章目录 python cv2 提示配置第一步 配置提示信息第二部 重启vs 可能还不行,那就重新安装以下opencv-python 配置pytest还是如上,将下入的位置打开编写测试用例 配置跨文件import在工作目录中新建一个.env文件输入内容如下打开.vscode中的setting.json …

目标识别跟踪模块Tofu3

Tofu系列提供了适应不同目标、不同速率的识别跟踪模块产品系列,主要包括Tofu3,4,5,S和其他零配件,可以适配BT.656,Cameralink,网络等不同接口和协议的热红外、可见光视频。 Tofu3 是多波段视频物体识别跟踪…

GL Logger和CANFDLog-OTL-128两款记录仪都是如何实现高效的报文录制的?

GL Logger是Vector推出的记录CAN/CAN FD、LIN、FlexRay和MOST数据通信的工具。以GL2400为例带着大家一步步地实现路试过程中通过整车OBD口进行CAN/CANFD报文的录制。 Step1 设备配置 设备配置即设备录制方式、录制内容、设备休眠唤醒策略等。 ▷ 打开Vector Logger Configurat…

UML-用例图

提示:用例图是软件建模的开始,软件建模中的其他图形都将以用例图为依据。用例图列举了系统所需要实现的所有功能,除了用于软件开发的需求分析阶段,也可用于软件的系统测试阶段。 UML-用例图 一、用例图的基础知识1.用例图的构成元…

使用numpy处理图片——滤镜

大纲 3维数组切分打平重组法深度切分法 3维数组堆叠 我们在用手机拍照片时,往往会对照片进行滤镜处理,从而让照片更加美观。本文我们将实现几种滤镜效果——去除所有像素中的某一种原色,形成只有红绿、红蓝和绿蓝原色的照片。 为了突出色彩丰…

定制服务器有什么优势优点?

定制服务器是指在根据用户的需求和业务特点,专门设计和制造的服务器。与标准服务器相比,定制服务器具有以下优势和优点: 更好的性能:定制服务器可以针对特定应用进行优化,从而提高服务器的性能。由于定制服务器不需要…

Win和Mac系统重置系统方法

注意:重置系统前,请备份好系统盘资料到其他盘符!重置系统将会删除应用和系统设置,甚至用户文件,还原为出厂设置模式。 Windows重置系统操作方法。(目前支持WIN8,WIN10,WIN11&#x…

Linux系统使用docker部署Geoserver(简单粗暴,复制即用)

1、拉取镜像 docker pull kartoza/geoserver:2.20.32、创建数据挂载目录 # 统一管理Docker容器的数据文件,geoserver mkdir -p /mydata/geoserver# 创建geoserver的挂载数据目录 mkdir -p /mydata/geoserver/data_dir# 创建geoserver的挂载数据目录,存放shp数据 m…

【数据库原理】(24)数据库安全性策略

数据库安全性是数据库管理系统(DBMS)中一个至关重要的方面。它指的是保护数据库免受非授权访问和恶意操作,包括数据泄露、修改、破坏等。 多层安全模型 在典型的计算机系统安全模型中,安全措施被设置在不同层级: 应用…

Unity ComputeShader 使用GPU快速计算复杂问题

Unity ComputeShader 使用GPU快速计算复杂问题 前言项目创建ComputeShader编写CompturShader创建Unity代码场景布置运行场景 参考 前言 遇到一个问题,需要大量的计算,在Unity中直接写会长时间的阻塞主线程,正好使用ComputeShader让GPU来帮我…

海格里斯HEGERLS仓储货架生产厂家|载荷1.5T运行速度1.7~2m/s的智能四向穿梭车系统

四向穿梭车立体库是近年来出现的一种智能型密集系统,通过使用四向穿梭车在货架的水平和纵向轨道上运行来搬运货物,一台四向穿梭车就能完成货物的搬运工作,大大提高了工作效率。同时配合提升机、自动化仓库管理系统(WMS)和仓库调度系统(WCS)&a…

使用WAF防御网络上的隐蔽威胁之SSRF攻击

服务器端请求伪造(SSRF)攻击是一种常见的网络安全威胁,它允许攻击者诱使服务器执行恶意请求。与跨站请求伪造(CSRF)相比,SSRF攻击针对的是服务器而不是用户。了解SSRF攻击的工作原理、如何防御它&#xff0…

手写OpenFeign(简易版)

Remoting组件实现 1. 前言2. 原理说明3. 远程调用组件实现---自定义注解3.1 添加Spring依赖3.2 编写EnableRemoting注解3.3 编写RemoteClient注解3.4 编写GetMapping注解 4. 远程调用组件实现---生成代理类4.1 编写自定义BeanDefinition注册器4.2 编写自定义包扫描器4.3 编写Fa…

JVM初识

什么是JVM? JVM全称是Java Virtual Machine,中文译名Java虚拟机。 JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 JVM的功能 jvm的功能主要分为三部分: 解释和运行 对字节码文件中的指令,实…

vue实现导出+ 样式修改

1.安装插件 npm xlsx-style ^0.18.5 npm install xlsx -S ^0.8.13 2. 修改代码 node_modules里面找到 以下位置xlsx.js 搜索 write_ws_xml_data 替换成以下代码 function write_ws_xml_data(ws, opts, idx, wb) {var o [], r [], range safe_decode_range(ws[!ref]…

搭建储能监控云平台:实现能源管理的智能化

搭建储能监控云平台:实现能源管理的智能化 在全球能源变革的大背景下,储能技术的重要性日益凸显。储能监控云平台作为能源管理的智能解决方案,可以为企业提供全方位的储能系统监控与数据分析,提高能源利用率,降低能源成…

QFN封装对国产双轴半自动划片机的性能有哪些要求?

1. 高精度切割:QFN封装要求芯片的尺寸和形状误差要尽可能小,因此对国产双轴半自动划片机的切割精度提出了高要求。高精度的切割能够提高封装的良品率和稳定性。 2. 快速和稳定:QFN封装生产需要快速、稳定的生产过程,因此对国产双轴…

Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

Jenkins部署完毕,如果不安装插件的话,那它就是一个光杆司令,啥事也做不了! 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI/CD必要插件。 但是问题来了,jenkins下载插件速度非常慢&#xff0c…