美文网首页
Lecture 1 课程介绍&资源整合

Lecture 1 课程介绍&资源整合

作者: HRain | 来源:发表于2018-12-16 22:18 被阅读27次

一、课程介绍

官网介绍:计算机视觉已经在我们的社会中无处不在,应用于搜索、图像理解、应用程序、绘图、医学、无人驾驶飞机和自动驾驶汽车。这些应用程序的核心许多都是视觉识别任务,例如图像分类、定位和检测。神经网络(又名“深度学习”)方法的最新发展极大地提高了这些最先进的视觉识别系统的性能。本课程深入探讨深度学习架构的细节,重点是学习这些任务的端到端模型,尤其是图像分类。在为期10周的课程中,学生将学习如何实施,训练和调试他们自己的神经网络,并详细了解计算机视觉的前沿研究。最终任务将涉及训练数百万参数的卷积神经网络并将其应用于最大图像分类数据集(ImageNet)。我们将专注于教授如何设置图像识别问题、学习算法(例如反向传播)、培训和微调网络的实用工程技巧,并指导学生完成动手作业和最终课程项目。本课程的大部分背景和材料将来自ImageNet挑战赛

CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络。该课程是斯坦福大学计算机视觉实验室推出的课程。本系列笔记针对的是2017年春版本(4-6月),由斯坦福大学人工智能实验室主任李飞飞及其两位博士生Justin Johnson和Serena Yeung主讲。

官方资源:点击这里    讲义汉化(2016冬季版):点击这里    官方GitHub:点击这里                                           进入官方资源页面后,按下图所示操作即可:

图1 官方资源使用说明

视频地址:官方YouTube(无字幕)网易云课堂(中英字幕)B站(中英字幕)慕课(中英字幕)

选读教材: 《Deep Learning》by Goodfellow, Bengio, and Courville

- 授课视频14课。每节课时约1小时左右,每节课一份PPT。

- 客座讲座2课。每节讲座约1小时30分左右。

- 授课知识详解笔记共16份。光看课程视频是不够的,深入理解课程笔记才能比较扎实地学习到知识。

- 课程作业3次。其中每次作业中又包含多个小作业,完成作业能确保对于课程关键知识的深入理解和实现。

- 课程项目1个。这个更多是面向斯坦福的学生,组队实现课程项目。

- 拓展阅读若干。课程推荐的拓展阅读大多是领域内的经典著作节选或论文,推荐想要深入学习的同学阅读。

- 相关课程:CS131、CS224n(深度学习与自然语言处理NLP相关)、CS231a(全面的计算机视觉课程,包括图像处理、相机原理、3D重建、目标识别、场景理解、机器人视觉等。)、CS231n(主要围绕计算机视觉的算法比如CNN)以及CS331、CS431等前沿CV课程。

课程大纲

第一讲:课程简介。计算机视觉概述、历史回顾、课程逻辑顺序

第二讲:图像分类。数据驱动方法、K-最近邻算法、线性分类I

第三讲:损失函数和优化。线性分类II、损失函数、优化

第四讲:介绍神经网络。反向传播算法、神经网络

第五讲:卷积神经网络。卷积神经网络的历史、卷积神经网络详述、层的排列与尺寸设置、经典案例

第六讲:训练神经网络(Part1)。激活函数、数据预处理、批量归一化、权重初始化、监控学习过程、超参数调优

第七讲:训练神经网络(Part2)。更新原则、正则化、迁移学习、模型集成

第八讲:深度学习软件。深度学习硬件、深度学习框架

第九讲:卷积神经网络架构。AlexNet、VGG、GoogLeNet、ResNet 等

第十讲:循环神经网络。RNN、LSTM、GRU、自然语言模型、图像标注、视觉问答、Soft Attention 模型

第十一讲:图像识别与分割。分割、定位、识别

第十二讲:可视化和理解CNN。表征可视化、对抗实例、DeepDream和风格迁移

第十三讲:生成模型。Pixel RNN/CNN、变分自编码器、生成对抗网络

第十四讲:深度增强学习。方法梯度、硬性关注、Q-学习、评价器

第十五讲:Song Han、Ian Goodfellow 教授客座讲授。深度学习的方法和硬件、对抗样本和对抗训练

(此外还有第16讲,主要是学生推导和讨论)

二、计算机视觉概述与历史回顾

图2 计算机视觉与其他学科的关系

       计算机视觉( CV, Computer Vision)和很多学科都有关联。既然是计算机视觉首先就需要物理学上的光学成像、图像处理、图像构成原理等;然后需要生物学、心理学,了解动物的大脑视觉处理过程;然后需要计算机科学,了解图像、算法、系统架构等;还需要数学,了解信息检索、机器学习;最后还会用到的工程学上的机器人科学。

视觉的历史

        视觉的历史可追溯到5亿4千3百万年以前,那时生物都在海洋中游荡甚至没有眼睛。大约在5亿4千万年前,出现物种大爆炸,一千万年间物种从几种爆发到上千种,研究发现是因为生物出现了眼睛可以促进生物的进化。如今的智慧生物大脑中约有一半的神经元是和视觉有关的。

计算机视觉的历史

        最早的相机是18世纪文艺复兴的暗箱,利用小孔成像(1545年就有记载)的原理。

        1959年,Hubel & Wiesel 通过观察猫大脑的电流信号发现视觉处理始于视觉世界的简单结构,面向边缘,沿着视觉处理途径移动,信息在变化,大脑也建立了复杂的视觉信息,直到可以识别更复杂的视觉世界。

        计算机视觉从1963年开始,源自计算机视觉领域的第一篇论文,Block world by Larry Roberts,视觉世界被简化为简单的几何形状,目的是识别它,重建几何形状。

        1966年,有一个著名的MIT暑期项目,目的是解决视觉识别系统中的大部分问题。50年后,已成为全世界数千人研究的领域,并仍然处理一些根本的问题,虽然至今无法真正理解视觉的原理,但已经是AI中发展迅速的领域之一。

        1970年,David Marr在《Vision》一书中,阐明为了拍摄一副图像,并获得视觉世界的最终全面的3D表现,我们必须经历几个过程,第一部分是原始草图,大部分边缘,断点和虚拟线条,曲线,边界等都被用其他元素来表示,视觉处理的早期阶段有很多关于像边缘的简单结构,之后下一步是“2.5维草图”,我们开始将表面,深度信息,层或视觉场景的不连续性拼凑在一起,最终将所有内容放在一起,并在表面和体积图等分层组织了一个3D模型。这种理想化的思维影响了计算机视觉领域几十年。

        1979年的“广义圆柱体”和1973年的“图形结构”都是识别和表示图形的方法,基本思想都是每个对象都由简单几何图单位构成,将复杂结构转换为简单结构。

        1987年,David Lowe 尝试用线条和边缘重建图形,大多都是线条构成的。

        然而上面的这些尝试都没有促进计算机视觉的大幅度发展,没有应用价值,直到人们意识到既然目标识别很难,可以先将图片分割,即把一张图片的像素点归类到有意义的区域。可能事先不知道是什么图案,但是把像素点提取出来后,会发现原来是某个形状,这个过程就是图像分割。2000年左右,由于机器学习的快速发展,面部识别优先发展,并且效果显著。比如2001年Viola & Jones 的 Face Detection, 能够实现准实时面部检测。之后2006年就出现了带有面部检测功能的相机。

        关于如何更好地目标识别,一个非常有影响的方法是基于特征匹配的目标识别。1999年,David Lowe 的“SIFT” & Object Recognition 通过观察目标的某些特征可以在环境改变时几乎保持不变的特性,所有首要任务是获取目标的特征,然后去匹配与目标相近的图片,比用图片本身直接匹配效果要好得多。还有2006年Lazebnik,Schmid & Ponce空间金字塔匹配,可以从图片中获取各种背景信息;2005年Dalal & Triggs的梯度直方图方法和2009年Felzenswalb,McAllester,Ramanan的可变形部件模型,都是把特征放到一起研究在图片中合理的设计和辨别人体姿势。

图3 "SIFT"特征匹配

       然而直到2006年才出现用于衡量目标识别成果的有标注的图片数据集,一个是PASCAL Visual Object Challenge,有20个图像类别,每个类别都有大量图片,很多团队开发算法和测试数据集做对抗训练,准确率逐年上升;另外一个是 ImageNet,促使这个项目产生的原因有两个,一是单纯想知道算法能不能实现检测世界上的大部分物体;另一个是机器学习中的现象,很多机器学习算法比如SVM、图模型、AdaBoost都会在训练过程出现过拟合,原因是可视图像数据复杂维度过高,又有大量参数需要调优,当训练数据不够时就会出现过拟合,所以需要大量数据。这个项目有世界上几乎所有物体,22000个类别,1.4亿张图片。是一个庞大的目标检测数据集。

        2009年开始,ImageNet 团队开始组织比赛来检验计算机识别算法,使用严格筛选的1000个类别14万张图片来作为测试数据集,只要算法识识别目标输出5个概率最高的物体其中有正确的目标即认为挑战成功。2010年到2015年识别错误率逐年降低,2015年识别准确率已经超过人类。其中2012年,识别错误率降低接近10%,这是因为卷积神经网络(CNN)的出现。CNN也是本系列课程要研究的内容。

三、课程内容介绍

        第一个重点问题是图像分类。生活中存在许多与图像分类有关的视觉识别问题,例如目标检测(object detection) 、图像摘要生成(Image captioning)等。目标检测要在图片中用方框标识出各类物体所在的位置,图像摘要生成要理解图片生成一些句子。

        第二个重点是卷积神经网络是目标识别(object recognition)中最重要的工具。过去几年获奖的方法,基本都包含了很多分层,首先计算一些特征,然后计算局部特征、一些池化操作,再经过多层处理,然后将结果描述符传递给线性SVM。2012年的CNN使用了7层卷积神经网络,2014年的VGG有19层网络,2015年微软研究院提出的残差网络有152层。所以现在的工作基本都是微调CNN使其性能更优异。

        然而CNN是在1998年,贝尔实验室的 LeCun 首次使用,用于自动识别手写支票以及邮局识别地址。和2012年Krizhevsky 获奖的结构非常类似,都输入原始像素,然后有很多卷积层和子采样以及全连接层。之所以2012年以后才会极大应用,原因一是硬件的进步,计算能力大大提高,尤其是GPU的使用;原因二是数据集越来越庞大。

        第三个重点是对视觉智能(visual intelligence )的追求远超过目标识别。人类可以在很短的时间理解一幅图片的内容,但是计算机视觉还远不能实现。比如去识别动作、识别3D物体、目标识别的同时获取各个目标间的关系、以及图片上的故事等。

课程理念:

- 彻底而详细   了解如何从头开始编写,调试和训练卷积神经网络,完整实现正向传播和反向传播步骤。要对算法的深层机理有深刻的了解,明白神经网络内部如何工作、架构的设置会有什么影响、网络如何训练和测试以及结果的好坏。

- 务实    专注于训练这些大规模网络的实用技术,以及GPU(例如分布式优化、CPU与GPU之间的差异等)。会使用一些先进的软件工具,如Caffe,TensorFlow和(PY)Torch。

- 最先进   大多数材料都来自研究界过去1 - 3年的成果。

- 有趣    一些有趣的主题,如图像摘要(使用RNN)还有DeepDream,NeuralStyle等使用神经网络生成著名画家的绘画风格。

先修条件

精通Python,熟悉C / C ++:所有课程作业都用Python完成并使用numpy;一些深度学习库是用C ++编写的,要能看懂。 

微积分,线性代数基础: 明白求导、矩阵运算等。

计算机图像基础:CS131、CS231a等,没学过也没关系。

机器学习基础:CS229,一些重点课上会再讲。

总结

1、课程介绍、资源整合、课程先修条件等;

2、计算机视觉历史回顾

相关文章

网友评论

      本文标题:Lecture 1 课程介绍&资源整合

      本文链接:https://www.haomeiwen.com/subject/btfxkqtx.html