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

news2024/11/17 10:44:49

在这里插入图片描述

前言

  • 📚 笔记专栏:斯坦福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.coloradmin.cn/o/1385336.html

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

相关文章

设计3题目:各种排序算法及性能分析

1、设计3目的 掌握各种内排序算法设计及其执行绝对时间,并对其时间性能进行比较。 2、设计3正文 2.1 实验内容 内容:编写一个程序,随机产生n个1-99的正整数序列,分别采用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速…

什么是MongoDB

概念: MongoDB 是一个文档数据库(以 JSON 为数据模型),由 C 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中…

白光LED驱动芯片的典型应用电路

小型白光LED驱动器LM2751 LM2751是美国国家半导体(NS)公司推出的一款小型白光LED驱动器,采用10PINLLP无铅封装,内置固定频率的电荷泵,在输入电压为2.8V~5.5V的情况下,可稳压输出4.5V或5.0V电压…

【树莓派】网线远程连接电脑和树莓派,实现SSH连接

目录 1、硬件连接; 2、电脑端: 3、查找树莓派的IP地址 4、开启树莓派的SSH接口 5、putty 6、命令行 参考文章 通过网线连接笔记本与树莓派 开启SSH和VNC功能 无显示器安装树莓派 实现:打开putty输入树莓派地址使用ssh方式登陆&…

【XR806开发板试用】单总线协议驱动DHT11温湿度传感器

1.昨天刚收到极速社区寄来的全志XR806开发板,之前用过很多全志的SOC芯片,但是像这种无线芯片还是第一次用。这次打算使用XR806芯片驱动一下DHT11温湿度传感器。 2.代码如下: #include "common/framework/platform_init.h" #inclu…

【计算机网络】TCP原理 | 可靠性机制分析(四)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】 本专栏旨在分享学习计算机网络的一点学习心得,欢迎大家在评论区交流讨论💌 这里写目录标题 &#x1…

软信天成:数据安全管理解决方案分享

近年来,随着数据环境日趋复杂多变和潜在的数据隐私泄露风险潜伏,如何确保企业数据安全已成为众多企业亟待面对与妥善处理的重要问题。 为了应对这一严峻的现实挑战,软信天成凭借专业的知识体系和丰富的实战经验积累,总结出了一套…

【web服务搭建实验】之nginx基础学习

目录 一、nginx的简介二、nginx安装实验虚拟主机的配置web服务器的主流实现方式-LAMP和LNMP 一、nginx的简介 Nginx是一款轻量级HTTP服务器,同时也是代理邮箱服务器,具备反向代理,通用代理的功能。支持多个系统,和不同操作系统。…

如何注释 PDF?注释PDF文件方法详情介绍

大多数使用 PDF 文档的用户都熟悉处理这种格式的文件时出现的困难。有些人仍然认为注释 PDF 的唯一方法是打印文档,使用笔或荧光笔然后扫描回来。 您可能需要向 PDF 添加注释、添加注释、覆盖一些文本或几何对象。经理、部门负责人在编辑公司内的合同、订单、发票或…

lvgl简介

LVGL(Light and Versatile Graphics Library)是一个开源的图形用户界面库,旨在提供轻量级、可移植、灵活和易于使用的图形用户界面解决方案。 它适用于嵌入式系统,可以在不同的操作系统、微控制器和图形加速器上运行。LVGL的核心…

power shell 有哪些常用命令?

PowerShell是一种命令行外壳和脚本语言,它基于.NET Framework并专为系统管理员设计。下面是一些常用的PowerShell命令: Get-Process:获取运行的进程列表。Get-Service:获取运行的服务列表。Get-EventLog:获取事件日志…

基于uniapp的在线课程教学系统

介绍 项目背景: 随着互联网的快速发展,在线教育已经成为一种流行的学习方式。针对这一趋势,我们决定开发一个基于UniApp的在线课程教学系统。该系统旨在为学生提供方便快捷的在线学习体验,同时也为教师提供一个高效管理课程的平台…

【java八股文】之计算机网络系列篇

1、TCP/IP和UDP模型 TCP/IP分层(4层):应用层,传输层,网络层,数据链路层 网络的七层架构 (7层):应用层,表示层,会话层,传输层&#xff…

M-A352AD10高精度三轴加速度计

一般描述 M-A352是一种三轴数字输出加速度计,具有超低噪声、高稳定性、低功耗等特点,采用了夸特的精细处理技术。. 多功能M-A352具有高精度和耐久性,非常适合广泛的具有挑战性的应用,如SHM、地震观测、工业设备的状态监测和工业…

面试题:说一下API网关的作用?企业如何应用API网关?

文章目录 一、API网关的用处1、Open API2、微服务网关3、API服务管理平台 二、API网关在企业架构中的地位三、企业中如何应用API网关四、API网关有哪些竞争方案五、API网关解决方案六、企业怎么选择API网关1、性能与可用性2、可扩展性、可维护性3、需求匹配度4、是否开源&#…

良心推荐!几款收藏的神级IDEA插件分享

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 文章目录 CodeGlanceGsonFormatPOJO to JsonRainbow BracketsTranslationLombokMaven HelperAlibaba Java Code GuidelinesGenerateAllSetterMybatisXChinese (Simplified…

有哪些品牌的超声波清洗机是值得入手的?超声波清洗机推荐

作为一个既对生活品质有追求,又只想躺平的懒人,一直在努力尝试让轻松的生活少一点绊脚石,而其中最重要的一个,就是清洗眼镜清洗日常生活的一些小物件,讲真,洗这些东西有时候就跟下班回家的KPI一样。白天不累…

Linux 内核大转变:是否将迈入现代 C++ 的时代?

Linux开发者 H. Peter Anvin 在邮件列表中重启了关于 Linux内核C代码转换为C的讨论,并陈述了自己的观点。说之前先看一下这个话题的历史背景。 早在2018年4月1日,Andrew Pinski提议将 Linux 内核源码转为 C,在文中写道之所以引入是由于以下优…

安全生产管理平台——革新传统安全生产管理方式,重塑企业安全文化

安全生产管理在现代企业中占据着至关重要的地位。传统的安全生产管理方式虽然在一定程度上能够保障企业的生产安全,但随着企业规模的不断扩大和生产环境的日益复杂,其局限性也愈发凸显。而安全生产管理平台的出现,正是为了解决这一问题。 平台…

相信我,努力真的有用!

2023年对很多人来说都是异常艰辛的一年,大环境下的每个人都面对着或多或少的挑战,在这一年的时间里,身边的朋友陆陆续续的跳槽、创业、再就业,结婚,生娃,回老家,每个人渐渐的在时代面前或妥协或…