您的位置:首页 > 其它

深度学习讲座笔记: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 Image
Captioning(CNN+1X1卷积+RNN)。



[align=justify]
[/align]

7 经验之谈

[align=justify]    在演讲的末尾,Andrej根据他的实践给出了一些建议,但是发现最近大家越来越认同一个观点,如果有现成的已经证明能够得到比较好结果的网络结构、参数以及一些非参数处理手段,那么就尽量用现成的解决问题,而不是自己盲目的花好几周时间去训练一个新的网络和架构。[/align]
[align=justify]
[/align]



[align=justify]
[/align]
[align=justify]
[/align]







[align=justify]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐