本文带你一张图看懂CNN。

CNN是什么?美国有线电视新闻网吗?

每一个对AI抱有憧憬的小白,在开始的时候都会遇到CNN(卷积神经网络)这个词。

但每次,当小白们想了解CNN到底是怎么回事,为什么就能聪明的识别人脸、听辨声音的时候,就懵了,只好理解为玄学:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能

 

好吧,维基百科解决不了的问题,有人给解决了。

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_02

 

这个名叫CNN解释器在线交互可视化工具,把CNN拆开了揉碎了,告诉小白们CNN究竟是怎么一回事,为什么可以辨识物品。

它用TensorFlow.js加载了一个10层的预训练模型,相当于在你的浏览器上跑一个CNN模型,只需要打开电脑,就能了解CNN究竟是怎么回事。

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_03

 

而且,这个网页工具还可以实现交互,只要点击其中任何一个格子——就是CNN中的“神经元”,就能显示它的输入是哪些、经过了怎样细微的变化。

甚至,连每一次卷积运算都能看得清。

看清卷积

这个CNN解释器的使用方式也非常简单:鼠标戳戳戳就好了。

单击神经元,进入弹性解释视图,就可以看到卷积核滑动的过程的动画模拟:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_04

 

点击一个正在卷积的过程图,就可以看到更具体的过程:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_05

 

可以看到底层的卷积运算过程,3×3的卷积核是如何经过运算被变成1个数字的。

看清ReLU和最大池化层

点击一个ReLU层的神经元,可以看具体过程,ReLU函数是这样工作的:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_06

 

点击一个池化神经元,也可以看具体最大池化层是怎样工作的:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_07

 

看清CNN是怎么输出预测的

点击最右侧的输出神经元,进入弹性解释视图:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_08

 

可以查看Softmax函数的详情:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_09

 

识别「狸克」试试?

CNN解释器默认有10张图片,你也可以增加自己的自定义图片。

比如这个:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_10

 

芝士焗灯笼椒?灯笼椒披萨?还是什么鬼?

复制图片链接或者上传图片之后,它经过了10层处理,得出结论:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_11

 

是灯笼椒,但也可能是臭虫。

但是,只能归类于右侧原有的10个品类里,比如放一只狸克:

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_12

 

就会被识别成espresso。

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_13

 

佐治亚理工中国博士出品

最后,这个CNN解释器的作者是一位中国小哥,佐治亚理工的Zijie Wang,去年刚开始读机器学习博士,本科毕业于威斯康星大学麦迪逊分校,是一位GPA 3.95/4.00的大学霸。

中国博士把整个 CNN 都给可视化了,每次卷积 ReLU 池化都清楚_人工智能_14

 

他也曾经做过一些其他有趣的数据可视化项目,比如威斯康星大学麦迪逊分校的中国本科生都来自哪里:

 

传送门

CNN解释器:https://poloclub.github.io/cnn-explainer/

GitHub:https://github.com/poloclub/cnn-explainer

论文:

​https://arxiv.org/abs/2004.15004​

—完—