深度学习讲座笔记:Deep Learning for Computer Vision - Andrej Karpathy at Bay Area Deep Learning School
2016-09-26 21:02
661 查看
视频地址:
Day 1:
http://v.youku.com/v_show/id_XMTczNzYxNjg5Ng==Day 2:
http://v.youku.com/v_show/id_XMTczODc2ODE3Mg==Andrej的演讲
Andrej Karpathy这次演讲是Day 1 的第2个演讲,题为深度学习在图像处理方面的应用,阐述了卷积神经网络架构的设计,以及ILSVR历年竞赛的情况以及最近在图像处理这方面的进展,并且给出了一些如何开展这方面研究工作的实用建议。1 迁移学习
迁移学习(Transfer Learning)是将在一种应用上训练好的网络用于另一类应用(如将ImageNet上进行多种物体种类分类的训练网络专用于建筑物细分类应用)。由于深度学习的准确率和样本数量有关,因此新的应用只有小的数据集,可将训练好的网络作为特征提取器(feature extractor),只训练部分的全连接层;而如果新的应用的数据集是中等规模的数据集,那么可以进一步训练全连接层和部分的卷积层。实践这种概念的一个好方式,就是使用Imagenet上面目前最佳表现的网络,如去年的冠军ResNet。使用Keras架构(https://keras.io/)可以直接调用如ResNet,并且可以直接使用已经训练好的网络参数。[align=center]
[/align]
2 ConvNetJS
[align=justify] ConvNetJS 是一个基于javascript的浏览器形式的深度学习界面,可以直接进行深度神经网络的运行,不需要安装依赖库,也不需要GPU。这个项目就是Andrej Karpathy自己做的。目前ConvNetJS可以实现以下功能:[/align][align=justify]Common Neural Network modules (fully connected layers, non-linearities)[/align]
[align=justify]Classification (SVM/Softmax) and Regression (L2) cost functions[/align]
[align=justify]Ability to specify and train Convolutional Networks that process images[/align]
[align=justify][/align]
An experimental Reinforcement Learning module, based on Deep Q Learning
PPT上给出了一个示例链接:http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html。这是一个利用卷积神经网络解决CIFAR-10数据集识别的demo。在这个demo上,可以修改网络的参数,并且观看训练收敛的过程,这个demo比较神奇的地方是直接有网络可视化(Network Visualization),可以看到网络的响应图。另外最下面还有测试集的识别案例,可以直观看到当前网络的识别结果。打开这个页面,网络就会自动开始训练,运行几分钟一般准确率只能达到0.3左右,不过可以点击“Pause”暂停训练,并点击“load
a pretrained network”载入一个已经训练好的约0.8准确率的网络。
ConvNetJS还有另外几个示例,也是可以在线修改一些参数,并且观看训练的结果,非常直观,易于上手。
3 Deep Visualization Toolbox
在PPT上,Andrej展示了Jason Yosinski等做的深度神经网可视化的一个视频,这个工具的地址是http://yosinski.com/deepvis,需要基于Caffe运行,运行的界面如下图所示。实际上,这个软件可以直接接摄像头实时运行,因此在可视化方面相当直观。从这些图示中,可以观察到某层某个通道对于图像中的哪些特征(从左向右由明变暗或由暗变明)或者一些全局抽象特征(花、狗脸等)响应更为灵敏(从Preferred Inputs中可以看出),这些信息有时候能够反映出最大响应的9幅图像中所不能够反映出来的信息。[align=center]Deep Visualization Toolbox界面[/align]
[align=center]
[/align]
[align=center]视频中展示的一个例子:从右侧最大响应的9幅图片看起来绿框中的通道似乎对T恤衫反应灵敏,但是实际上该通道是对皱褶反应更灵敏(从Preferred Input上可以看出),而直观的实验是Jason将自己T恤衫的右侧抹平,左右侧的响应就出现了不一致(红框)[/align]
4 ILSVRC历年的获胜架构
[align=justify]Andrej接着讲了ILSVRC历年的网络 AlexNet, ZFNet, VGG, GoogleNet, ResNet。[/align][align=justify]
[/align]
5 ARXIV-sanity
[align=justify]arxiv是目前一个非常流行的发表pre-pub论文的网站,但是自己时不时搜索很麻烦。Andrej建立了一个小网站http://www.arxiv-sanity.com/,从Arxiv上搜索目前有关于神经网络和图像处理的文章。个人可以建立一个自己的账号,选择若干篇感兴趣的论文,arxiv-sanity就能够训练出一个推荐器,自动推荐相关的论文。[/align][align=justify]
[/align]
6 利用CNN提取特征,搭配不同的后处理,实现不同的功能
这一部分PPT也算是迁移学习的一种应用,Andrej认为目前很多的应用都可以拆分为CNN+?,比如Image Classification(CNN+全连接层)、Image Captioning(CNN+RNN)、Localization(CNN+全连接层)、Reinforcement Learning(CNN+全连接层)、Segmentation(CNN+反卷积层)、Autoencoders(CNN+反卷积层)、Detection(CNN+1X1卷积)、Dense ImageCaptioning(CNN+1X1卷积+RNN)。
[align=justify]
[/align]
7 经验之谈
[align=justify] 在演讲的末尾,Andrej根据他的实践给出了一些建议,但是发现最近大家越来越认同一个观点,如果有现成的已经证明能够得到比较好结果的网络结构、参数以及一些非参数处理手段,那么就尽量用现成的解决问题,而不是自己盲目的花好几周时间去训练一个新的网络和架构。[/align][align=justify]
[/align]
[align=justify]
[/align]
[align=justify]
[/align]
[align=justify]
[/align]
相关文章推荐
- [深度学习论文笔记][Image Classification] Rethinking the Inception Architecture for Computer Vision
- Deep Learning Features at Scale for Visual Place Recognition 用于地点识别的大规模深度学习算法
- [深度学习论文笔记][Scene Classification] Learning Deep Features for Scene Recognition using Places Database
- 深度学习论文笔记 [图像处理] Deep Residual Learning for Image Recognition
- [深度学习论文笔记][Image Classification] Deep Residual Learning for Image Recognition
- [机器学习入门] 李宏毅机器学习笔记-10 (Tips for Deep Learning;深度学习小贴士)
- [深度学习]Deep Residual Learning for Image Recognition(ResNet,残差网络)阅读笔记
- 李菲菲课程笔记:Deep Learning for Computer Vision – Introduction to Convolution Neural Networks
- Joint Deep Learning For Pedestrian Detection(论文笔记-深度学习:行人检测)
- 深度学习 Deep Learning UFLDL 最新 Tutorial 学习笔记 1:Linear Regression
- 深度学习 Deep LearningUFLDL 最新Tutorial 学习笔记 2:Logistic Regression
- [CAFFE]DIY Deep Learning for Vision: A Tutorial With Caffe 报告笔记
- 深度学习,A fast learning algorithm for deep belief nets
- 深度学习笔记(一)空间金字塔池化阅读笔记Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- 中文译文:Minerva-一种可扩展的高效的深度学习训练平台(Minerva - A Scalable and Highly Efficient Training Platform for Deep Learning)
- 开始学习深度学习和循环神经网络Some starting points for deep learning and RNNs
- Deep Reinforcement Learning for Dialogue Generation-关于生成对话的深度强化学习
- 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
- [Paper 学习笔记]PCANet: A Simple Deep Learning Baseline for Image Classification?
- 深度学习用于基于内容的图像检索 Deep Learning for Content-Based Image Retrieval