CS231n系列课程Lecture9: Understanding and Visualizing Convolutional Neural Networks

来源:互联网 发布:mac地址作用 编辑:程序博客网 时间:2024/05/22 12:39

贴出第九课的视频链接: http://pan.baidu.com/s/1kVOGFg7 密码: b3bx,小伙伴有兴趣还是可以下载视频和PPT再进行仔细研究的,LZ学识有限对于有些方面理解不是很透彻,如果有理解不正确的地方还是请小伙伴们指正。

这节可主要讲的是对于神经网络方面的理解和可视化,所以是很酷炫的一节课,可以看到许许多多有趣的图片。

理解卷积神经网络也是个大门类,也没有想象中的那么简单。本节可主要会可视化最能激活神经元的块,可视化权重,可视化表达空间,还有遮挡实验,人类做的一些比较实验,还会讲到一些反卷积的方法(单个反向传播),再图片上优化(优化)。好像任务有点多。。。

这里写图片描述

这是图片经过Pool5之后显示的最能激活神经元的块,上面也都用白框进行标注,还写出了其概率的大小。
这里写图片描述

可视化卷积核(原始权重),这个就只能看出来依稀的边缘信息,都是线条,一般都是可视化第一层,后续层因为不是图片直接输入。是经过卷积后的feature map在进行特征提取,所以会很抽象,很难理解,所以一般很少可视化后续层的权重。

这里写图片描述

这是对表示的可视化,t-SNE是可以对高维数据进行可视化,根据内部的一些非特征进行聚类,具体的可以看论文。

这里写图片描述

下面就是对遮挡问题的实验:我们可以看到这是对遮挡问题的一个实验,红色部分是代表对这一类的得分比较高,可以看到如果遮挡了小狗的头部,那么对于小狗的分类的得分显著降低,而遮挡其它部分不会对分类的得分产生特别明显的变化。第二幅图并是不特别明显,遮挡左侧边缘对分类结果的影响比较明显。最后一幅则会出现一个比较奇怪的现象,如果遮挡的部分是左侧那个男士的头部,那么分类器会更加确认这是条狗,这可能有些不可思议,甚至难以理解,但事实确实如此。

这里写图片描述

下面我们简要介绍一下反卷积的方法:这里丢出一个问题,如果输入卷积神经网络一张图片,我们怎么计算任意神经元的梯度?

这里写图片描述

解决方法是:首先我们要先选定一层神经网络,把感兴趣的一些神经元的梯度设置为1,剩下的神经元设置为0,backprop到图片。和上面输入的小猫咪确实有很大的差距,但是我们可以隐隐约约看出来小猫咪的大概轮廓还是存在的。

这里写图片描述

假如我们进行”Guided backpropagation”进行代替的话,那么小猫咪的样子更加明显,如下图所示:嘿(●ˇ∀ˇ●),还是很可爱哦!

这里写图片描述

下面我们举一个具体的例子:这边我们可以稍微回忆一下ReLU这个激活函数:

fl+1i=relu(fli)=max(fli,0)

如果输入是小于0的数,那么激活函数都会把这个值设置成0。那么我们可以看a)这一块,在经过前向传播后,会产生一个feature map,我们可以把感兴趣的右下角部分不改变,其余部分都设置成0,那么再进行反向传播的时候主要做贡献的特征也是右下角的特征。剩下也是以此类推。

这里写图片描述

下一个问题:对图片的优化

那么问题又来了:我们能够找到一张图片使得一些分类的得分最大化吗?

这里写图片描述

首先,我们先把一张全黑的图像,也就是全0的图像放进卷积神经网络当中,第二步:设置得分向量的梯度[0, 0, …, 1, …, 0],然后反向投影给图片;第三步,对图像做一个小更新,第四步,再次让图片传到网络中,重复步骤2。最后使得对于类别c的得分最高。在PPT当中对每一步都有图示,这边由于篇幅有限,就不展开来一步步解释了,应该对着PPT都能够看懂。

这里写图片描述

下面又提出了一个问题,如果给定了一个CNN编码,那有可能重建出原始的图片吗?看下面图就是知道从原理上来说是可能的,但是我们可以看到层数越高,越抽象,恢复的图像和原始的图像差距也会更大。

这里写图片描述

课程中还介绍了Google的Deep Dream和NeuralStyle这些都有特别酷炫的效果,因为没有什么特别需要解释的内容
,小伙伴们感兴趣可以自己尝试下。

我们可以对任何图片进行优化,而不针对特定的分类,那么我们能否骗过卷积神经网络呢?答案是可以的,看下面的图片,人类根本无法分辨出到底是虾米,但是卷积神经网络却给出了如此之高的得分,这也是卷积神经网络的一个bug吧,我们可以简单回顾一下我们是怎么计算出这个分类结果的。测试图片通过卷积神经网络,实际上也就是对不同像素进行滤波。在测试时,权重是不再进行迭代更新的,而是利用训练好的权重,然后对测试的图片进行加权求结果(简化理解应该就可以这样认为)那么,只要人为的设定好一些比较好的像素点,那么完全可以通过Sigmod激活函数或者Softmax得到很高的得分,然后和预测的类别没有半毛钱关系。。。所以说电脑是很笨的。

这里写图片描述

这里LZ要扯一句了,最近阿法狗又把柯洁打败了,下棋本是修身养性之事,非得让人工智能插上一足并非不可,但人与机器对战本就是不公平的,一个阿法狗凝聚多少人的智慧,后囊团简直强大,而且体能脑力对于机器人来说没有消耗一说。对于人工智能或者机器学习来说,人类对于这些发明或者研究的宗旨都是更好的服务于人类,而不是让人类恐慌,或者失去本来的竞技乐趣。举个极端的例子,总不能让赛车和人类进行赛跑吧,过去了就过去了,没必要在纠结这些了。。。

好啦,这节课基本上内容也讲完了,还有一些小细节就请小伙伴们自己看看PPT啦O(∩_∩)O

阅读全文
0 0
原创粉丝点击