首页 AI学术青年与开发者社区

【中文字幕】2017春季CS231n 斯坦福深度视觉识别课

开课时间:2017年11月10日
开课时长:讲座共有6个lecture,3个 Guest Talk,已完结。加入小组即可立即观看(完全免费):https://ai.yanxishe.com/page/groupDetail/19。
免费课 基础入门
现价: 免费
该课程已关闭

计算图表示一个函数:

节点表示操作

求取计算图中变量的梯度

链式法则求取

上游梯度和本地梯度

梯度值累加

列举了两个例子

变量梯度的大小和变量的大小一致,也就是帝梯度的维度与变量是相同的。

[展开全文]
readilen · 2018-12-05 · 4.1 反向传播 0

The critical steps of the development of object recognition:

1.image segmentation

Reducing the complex structure of the object to simple structure

2.face detection

ML:SVM、boosting

Adaboost——face detection

3.feature matching

SIFT feature-The idea is that to match 

some features tend to remain diagnostic and invariant to changes(某些特征能够在变化中具有表现性和不变性)

the task of object recognition is identifying these critical features(关键的特征) on the object and then match the features to a similar object

4.recognize holistic scenes——spatial pyramid matching(algorithm)

There are features in the images that can give us clues about which type of scene it is.

5.object recognition

The comman data set of deep learning:

1.MNIST

2.PASCAL Visual Object Challenge

3.ImageNet

4.COCO

 

 

 

 

 

 

[展开全文]

 

 
 
G
M
T
 
 
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
 
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
 
 
 
 
 
 
 
 
 
Text-to-speech function is limited to 200 characters
 
 
Options : History : Feedback : Donate Close
[展开全文]

challenges:

  • viewpoint variantion
  • illumination(照明)
  • deformation(可变形性)
  • occlusion(遮挡)
  • background clutter(物体和背景难以区分)
Data-Driven Approach
NN-L1 distance
KNN-take vote(the larger value of k, the more smooth of decision boundaries)
 
 
 

 

[展开全文]

KNN

L1distance(Manhattan):depends on the choice of coordinates system, when changing the coordinate frame, that would actually change the L1 distance between the points.

L2distance(Euclidean): it's the same thing whatever the coordinate frame is.

For the input features, if the individual entries in the vector have some important meaning for the task, then L1 may fit.

But if it's just a generic vector in some place, then the L2 maybe more natural.

In KNN, there are two major choices that we should select: 

 the K value

the distance metric

hyperparameters:the choices about the algorithm that we set rather than learn:

How do you actually make these choices for your problem and for your data?

setting hyperparameters:

  • split data into train、val and test;train the algorithm with many different choices of hyperparameters on the training set. And evaluate on the validation set, the choose the set of hyperparameters  which performs best on val. Then take the best performing classifer on val and run it once on the test set.
  • cross-validation(useful to small dataset): Take some test set to use very end. Spliting the training data into many folds. Try each fold as validation and average the results.

 

 

 

 

[展开全文]

1. 到2016年为止,我们的世界85%都是以像素形式呈现的。而像素数据就好像暗物质,虽然无法具体的描述出来,但是可以用数学模型来进行推断和模拟。在Youtube上面,平均每60秒就有150小时的视频上传,这意味着大量像素数据需要被标记、分类以及索引等等操作以便广告商或者用户检索等功能的相关应用扩展。

 

80%都是视频。

 

2.随着互联网逐渐成为人类获取信息的主要载体以及视觉传感器(如智能手机、行车记录仪等设备)数量的增多,计算机视觉逐渐走入人们的视线,计算机视觉和很多领域都密切相连,跨学科。属于深度学习的一个超集(即深度学习也属于计算机视觉的一个子集,即在计算机视觉领域的一个发展子方向)

深度学习和机器学习的差别深度学习是机器学习的更高级的算法 (深度学习不是算法,是一种层次化分解任务的思想—>传统机器学习一步一步进行,具有算法的步骤;而深度学习则是多层次处理,对数据进行每一步特征提取具有整体性所有层都是一个整体,就像编译型,传统就像解释型,原始信息不易丢失(传话),避免多层的噪声引入),比之机器学习具备多层架构的感知器,正确率更高,如果这样看,可以说机器学习是深度学习的超集】—>【与本课程相联系的—在ImageNet 竞赛中,2012年后,基本所有夺冠模型都使用了使用了卷积神经网络,取代了以前特征提取+向量机的方法】

 

 

3.计算机视觉的历史:

 (1).五亿四千万年前,寒武纪生命大爆发,Andrew Parker:这一切都源于眼睛的出现。

 (2).文艺复兴时期:达芬奇发明的camero obscura,照相暗盒。现代视觉工程技术的开端。“复制这个世界”,但此时人们对视觉的需求不涉及理解

 (3).哈佛的研究:清醒但是被麻醉的猫,用一根电极探针插入猫的基础视觉皮质层—整个视觉处理流程的前期开端(在后脑勺部位。50%的大脑参与了视觉处理),记录神经元的活动。每次换幻灯片的动作会使得神经元被激活,生成了一个边缘刺激神经元的激活,每一列神经元按序排列,对特定的有反应。此时人们开始尝试理解视觉,并意识到视觉处理的前期是对简单的结构形状和边缘结构(由一些允许变形的“弹簧”连接。)进行处理和解析。(方块世界)

(4).David Marr:视觉是分层的。第一层是边缘结构(原始草图);第二层是2.5D—将2D视觉成像处理为3D真实世界模型(即遮挡问题等)。此时人们研究的方向转为研究如何重建一个3D模型,以便我们识别。

(5).在1997年,VIOLA JONES FACE DETECTOR实现人脸检测(富士2006数码相机),虽然这个模型没有用到深度学习,但是运用了特征学习的思想,算法试图寻找黑白的过滤器特征值(向量在此变换下缩放的比例)。人们开始处理彩色图像,将图片分割成有意义的几部分,将像素进行分组。此时人们研究的重点从建立3D建模跳到了我们识别的是什么。

(6).Kunihiko Fukushima: (邦彦福岛)提出了Neocognitron模型—现代神经网络架构的开端

          Yann Lecun 反向传播和学习策略     识别手写数字:边缘结构—滤波—池化等

 

Neocognitron模型的优化:竞赛中也有人使用了Neocognitron模型,但是在顺序和量级两个方面进行了优化。不同的在于运用了 1.摩尔定律。解决算法太慢等问题  2.大数据。高性能架构的执行力,解决过拟合overfitting(为了得到一致假设而使假设变得过度严格,没有从带干扰的观察中找到事物真正的规律。除了学习的全局特征,如果样本存在太多局部特征则会使得预测不准确。于是机器无法正确识别符合概念定义的“正确”样本的几率也会上升,也就是所谓的“泛化性”变差,这是过拟合会造成的最大问题.)的问题。】

 

4.仍在研究中的技术:密集检测、动作场景方面、3D方面

 

 

5.愿景:

 

1.Neural Style

 

Github:https://github.com/jcjohnson/neural-style

这个项目是对论文“A Neural Algorithm of Artistic Style”用深度学习框架Torch7 的一个实现。该论文提出一种采用卷积神经网络将一幅图像的内容与另一幅图像的风格进行组合的改进算法。例如将梵高《星夜》的艺术风格转移到斯坦福大学校园夜景的照片中.

 

2.Show and Tell

 

GitHub:https://github.com/tensorflow/models/tree/master/im2txt

这是 论文Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge 用TensorFlow实现的 image-to-text 图片说明生成模型.即给机器一张图片,生成解释的文字。

 

 

3.Neural Doodle

 

Github:https://github.com/alexjc/neural-doodle

基于Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis中的 Neural Patches 算法,根据文章Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks,使用深度神经网络把你的二流涂鸦变成艺术一般的作品的一个实现。

 

 

4.Open Face

 

Github: https://github.com/cmusatyalab/openface

OpenFace 是一个使用深度神经网络,用 Python 和 Torch 实现人脸识别的项目。神经网络模型基于 论文FaceNet: A Unified Embedding for Face Recognition and Clustering,Torch7 让网络可以在 CPU 或 CUDA 上运行。

 

5.PaintsChainer

http://paintschainer.preferred.tech/

 

Github: https://github.com/pfnet/PaintsChainer

PaintsChainer可以给手绘的线稿进行自动上色,并且可以规划不同区域的不同颜色进行定制上色。

 
[展开全文]

1. 到2016年为止,我们的世界85%都是以像素形式呈现的。而像素数据就好像暗物质,虽然无法具体的描述出来,但是可以用数学模型来进行推断和模拟。在Youtube上面,平均每60秒就有150小时的视频上传,这意味着大量像素数据需要被标记、分类以及索引等等操作以便广告商或者用户检索等功能的相关应用扩展。

 

 

2.随着互联网逐渐成为人类获取信息的主要载体以及视觉传感器(如智能手机、行车记录仪等设备)数量的增多,计算机视觉逐渐走入人们的视线,计算机视觉和很多领域都密切相连,跨学科。属于深度学习的一个超集(即深度学习也属于计算机视觉的一个子集,即在计算机视觉领域的一个发展子方向)

深度学习和机器学习的差别深度学习是机器学习的更高级的算法 (深度学习不是算法,是一种层次化分解任务的思想—>传统机器学习一步一步进行,具有算法的步骤;而深度学习则是多层次处理,对数据进行每一步特征提取具有整体性所有层都是一个整体,就像编译型,传统就像解释型,原始信息不易丢失(传话),避免多层的噪声引入),比之机器学习具备多层架构的感知器,正确率更高,如果这样看,可以说机器学习是深度学习的超集】—>【与本课程相联系的—在ImageNet 竞赛中,2012年后,基本所有夺冠模型都使用了使用了卷积神经网络,取代了以前特征提取+向量机的方法】

 

 

3.计算机视觉的历史:

 (1).五亿四千万年前,寒武纪生命大爆发,Andrew Parker:这一切都源于眼睛的出现。

 (2).文艺复兴时期:达芬奇发明的camero obscura,照相暗盒。现代视觉工程技术的开端。“复制这个世界”,但此时人们对视觉的需求不涉及理解

 (3).哈佛的研究:清醒但是被麻醉的猫,用一根电极探针插入猫的基础视觉皮质层—整个视觉处理流程的前期开端(在后脑勺部位。50%的大脑参与了视觉处理),记录神经元的活动。每次换幻灯片的动作会使得神经元被激活,生成了一个边缘刺激神经元的激活,每一列神经元按序排列,对特定的有反应。此时人们开始尝试理解视觉,并意识到视觉处理的前期是对简单的结构形状和边缘结构(由一些允许变形的“弹簧”连接。)进行处理和解析。(方块世界)

(4).David Marr:视觉是分层的。第一层是边缘结构(原始草图);第二层是2.5D—将2D视觉成像处理为3D真实世界模型(即遮挡问题等)。此时人们研究的方向转为研究如何重建一个3D模型,以便我们识别。

(5).在1997年,VIOLA JONES FACE DETECTOR实现人脸检测(富士2006数码相机),虽然这个模型没有用到深度学习,但是运用了特征学习的思想,算法试图寻找黑白的过滤器特征值(向量在此变换下缩放的比例)。人们开始处理彩色图像,将图片分割成有意义的几部分,将像素进行分组。此时人们研究的重点从建立3D建模跳到了我们识别的是什么。

(6).Kunihiko Fukushima: (邦彦福岛)提出了Neocognitron模型—现代神经网络架构的开端

          Yann Lecun 反向传播和学习策略     识别手写数字:边缘结构—滤波—池化等

 

Neocognitron模型的优化:竞赛中也有人使用了Neocognitron模型,但是在顺序和量级两个方面进行了优化。不同的在于运用了 1.摩尔定律。解决算法太慢等问题  2.大数据。高性能架构的执行力,解决过拟合overfitting(为了得到一致假设而使假设变得过度严格,没有从带干扰的观察中找到事物真正的规律。除了学习的全局特征,如果样本存在太多局部特征则会使得预测不准确。于是机器无法正确识别符合概念定义的“正确”样本的几率也会上升,也就是所谓的“泛化性”变差,这是过拟合会造成的最大问题.)的问题。】

 

4.仍在研究中的技术:密集检测、动作场景方面、3D方面

 

 

5.愿景:

 

1.Neural Style

 

Github:https://github.com/jcjohnson/neural-style

这个项目是对论文“A Neural Algorithm of Artistic Style”用深度学习框架Torch7 的一个实现。该论文提出一种采用卷积神经网络将一幅图像的内容与另一幅图像的风格进行组合的改进算法。例如将梵高《星夜》的艺术风格转移到斯坦福大学校园夜景的照片中.

 

2.Show and Tell

 

GitHub:https://github.com/tensorflow/models/tree/master/im2txt

这是 论文Show and Tell: Lessons learned from the 2015 MSCOCO Image Captioning Challenge 用TensorFlow实现的 image-to-text 图片说明生成模型.即给机器一张图片,生成解释的文字。

 

 

3.Neural Doodle

 

Github:https://github.com/alexjc/neural-doodle

基于Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis中的 Neural Patches 算法,根据文章Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks,使用深度神经网络把你的二流涂鸦变成艺术一般的作品的一个实现。

 

 

4.Open Face

 

Github: https://github.com/cmusatyalab/openface

OpenFace 是一个使用深度神经网络,用 Python 和 Torch 实现人脸识别的项目。神经网络模型基于 论文FaceNet: A Unified Embedding for Face Recognition and Clustering,Torch7 让网络可以在 CPU 或 CUDA 上运行。

 

5.PaintsChainer

http://paintschainer.preferred.tech/

 

Github: https://github.com/pfnet/PaintsChainer

PaintsChainer可以给手绘的线稿进行自动上色,并且可以规划不同区域的不同颜色进行定制上色。

 
[展开全文]

1.W1乘以x的一个矩阵,然后我们得到这个中间变量,这个0和W取最大值的非线性函数,将线性层的最大值作为输出

2.神经网络就是由简单函数构成的一组函数,在顶层堆叠在一起,我们用一种层次化的方式将它们堆叠起来为了形成一个更复杂的非线性函数,这就是简单的多阶段分层计算,我们实现它的主要手段就是矩阵乘法,我们只是将多个线性层堆在顶层和其他非线性函数结合在一起

3.对每个计算节点,你会发现,方法都是类似的,计算图里的节点相互连接,我们需要输入或是信号x传入神经元,所有x输入量,比如x0,x1,x2等,采用比如赋予权重W的方法,叠加汇合到一起,也就是说我们做了某种类型的运算,再把所有的结果整合起来,我们得到一个激活函数,我们将激活函数应用在神经元的端部,得到的值作为输出,最后将该值传输到和相关联的神经元

4.全连接神经网络层:每一层都是矩阵相乘计算,之前我们叫的是两层神经网络,具体来讲我们有两个线性层,针对每个线性层我们做了一次矩阵乘法,我们称之为两个全连接层,我们也会称为单隐藏层神经网络

5.当我们做正向运算时,正向的通过神经网络,神经网络中的节点,主要进行神经元各种运算,你可以认为每一个隐藏层是一个向量,一组神经元的集合,利用矩阵乘法来计算神经元的值,所以通过一次矩阵乘法我们得出了该层所有神经元输出结果

[展开全文]

相关课程

开课日期:直播已结束,可回看开始
智能驾驶 基础入门 87051
开课日期:开始
机器学习 基础入门 111844

授课教师

暂无教师
微信扫码分享课程