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

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

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

深度学习与计算机视觉 斯坦福CS231n

Day2

 

让神经网络进行思考

 

  1. 分类的难点

  设定图片是一张巨大的数字表单(300*100*3(3代表红绿蓝三色道0-255))的三维数组(这些数字的反映的是亮度以及每个像素点三基色分别所占的权值)

  1. 视点的变换问题-->摄像机的旋转和移动(比如同一张图,不同的观察角度下的识别)-->设定多个分类器,得到多个训练结果的模板(基本上一个分类器对应一个结果模板)。同时检测(for循环),选择一个最相似的。
  2. 光线问题
  3. 识别物体形态的变换
  4. 遮挡问题
  5. 背景杂斑问题(识别物体与背景颜色纹理都很相近)
  6. 种类演变问题

 

【最初的方法:
1.检测边缘并勾画边界,根据边缘结构和连结方式分类(耳朵)-》不可扩展,特征不明显-->数据驱动
2.训练一个模型,这个模型是一个类,这个类去进行分类】

 

 

 

2.近邻算法分类器

  使用一部分测试数据用来评估分类器的好坏

<1> 一般将X定为图像像素数据,Y定为标签。然后对每一个测试图像使用FOR循环获取图像X的测试集。遍历类的时候,需要考虑测试时间性能,在训练方法内投入的计算和在测试方法内投入的计算这之间需要我们权衡。训练数据集规模变大的时候,算法减慢的速度是线性的。近邻算法分类器具有即时性,但造价昂贵。

 

【image-->text
1.卷积神经网络CNN
2.循环神经网络RNN-排序(时间序列)-->在CNN中,每个神经元只能向上一层传导(前向神经网络);而在RNN中,神经元可以直接作用到自身(即第M层神经元在T时刻的输入,除了自身M-1层神经元的输出,还包括了T-1时刻的输出)

参考:https://www.zhihu.com/question/34681168】

 

<2>距离的定义:可以看做是一种超参数

      A.曼哈顿距离算法(L1):十字距离,不是直线距离。是直角边+直角边,而不是斜边。

  “想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个曼哈顿距离。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)

(1)二维平面两点a(x1,y1)b(x2,y2)间的曼哈顿距离

  

(2)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离

  

      B.欧氏距离(L2):两点间距离公式,斜边。

  欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式。

(1)二维平面上两点a(x1,y1)b(x2,y2)间的欧氏距离:

  

(2)三维空间两点a(x1,y1,z1)b(x2,y2,z2)间的欧氏距离:

  

(3)两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:

  

  也可以用表示成向量运算的形式:

 

 

<3>验证方式:

K折交叉验证把数据集分成两部分,第一部分用于构建模型,第二部分用于验证模型;并且,验证是一个循环反复进行的过程。

可以解释为:初始数据采样分割成K个子样本,每次交叉验证中将某个子样本作为验证模型的数据,其他K-1个样本合集作为训练集;交叉验证重复K次,使得每个子样本验证一次,然后平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这种方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次模型效果。

 

<4>近邻算法分类器的缺点

(1)效率很低

(2)效果不是很好,当样本不平衡时,如果一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的 K 个邻居中大容量类的样本占多数。

 

<5>TIPS

  1. 不同的方法会有不同的泛化结构。
  2. 不应该只相信测试集,防止过拟合。
  3. 噪声和异常值一样带有随机性。
  4. 不同的K值所存在的覆盖问题:K值较小意味着只有与输入实例较近的训练实例才会对预测结果起作用,容易发生过拟合;如果 K 值较大,优点是可以减少学习的估计误差,缺点是学习的近似误差增大,这时与输入实例较远的训练实例也会对预测起作用,是预测发生错误。
  5. 算法中的分类决策规则往往是多数表决(投票),即由输入实例的 K 个最临近的训练实例中的多数类决定输入实例的类别。
  6. 距离度量一般采用 Lp 距离,当p=2时,即为欧氏距离,在度量之前,应该将每个属性的值规范化,这样有助于防止具有较大初始值域的属性比具有较小初始值域的属性的权重过大。

 

  1. 线性分类

(1)参数多态方法:定义函数f(x,W)(输入像素值,输出类别)=Wx+b(b是偏置参数),根据特定程序集上的梯度,斜率和位置,分类器进行移动进行分类。

【对于W的认识:

1.W的每一行都与图像进行点乘
2.W有关注或者不关注不同的空间位置的权利,权重小的像素点不参与。
3.序列化方法把像素变成一列,要把图片改成一样的大小,压缩成方形图片,就可以转换为在空间上对齐的列。
4.基本上所有的分数都是一个所有的像素点值的加权和。计算不同空间的颜色和。类似模版匹配。显示的颜色有正权重。】

 

  1. 对于线性分类来说什么样的测试集会是难以分类的?

1.计算特定位置混合的颜色很难。

2.不同的纹理

  1. 损失函数

损失函数是一种能够定量的测量每一个W在数据集上表现得有多差的方法。

通过这种函数,我们不需要控制W的初始值。

 

[展开全文]

visual genome 视觉基因组

[展开全文]

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. 到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可以给手绘的线稿进行自动上色,并且可以规划不同区域的不同颜色进行定制上色。

 
[展开全文]

 

 
 
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
[展开全文]

【损失函数和优化】

怎么得到线性函数里的W

【多分类SVM】

 

[展开全文]

损失函数

L = 1/N * L(f, yi)

 

[展开全文]

【linear classification】

CIFAR-10,32*32*3,3个色彩通道。红色蓝色绿色

bia terms,偏置

【问题】

1、f = W*x + b,其中W是一个模板,问题是,在线性分类器中,每个类别学习一个单独模板。

2、要构造一个使其失效的数据集很容易

 线性边界

3、两个同类的物体出现在同一画面里,没办法被识别到那一类

 

 

 

 

[展开全文]

相关课程

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

授课教师

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